nhé.
Bài này phong thủy nên tớ cũng đam mê. Có điều bảng bố trí xấu quá, nhìn muốn đập màn hình. Nội dung thì ghi tương tự, mà đọc chả thấy tương tự gì cả, không biết có phải copy xuống rồi ra trém gió với khách hẹn không đây?
Đi xem bói mà gặp thầy cho xem cái bảng này là xác định mất toi 1 ngày của cuộc đời mà chả được gì rồi. Lỗi tè le, không đáng tin tưởng tẹo nào.
View attachment 300101
Gửi Anh/Chị,
Sau một hồi ngó nghiêng thì e thấy yêu cầu đề bài của em vừa sót, vừa thiếu.
Kết quả của Anh/Chị là đúng với yêu cầu ban đầu của em.
Em xin được điều chỉnh lại, thêm giải thích là tổ hợp sao phải có đủ, và có trọng số. Nhờ Anh/Chị xử lý tiếp giúp em ạ.
Trân trọng cám ơn Anh/Chị
Bài đã được tự động gộp:
Dạ bản gốc có màu ạ. Tuy nhiên, vì để mô tả hàm excel thì em chỉ copy dữ liệu thô thôi ạ.Cố gắng làm bảng phải rõ ràng, phân chia riêng biệt, phong thủy phải có màu sắc phân biệt, càng nhiều màu càng làm khách hàng phân tâm và trém gió rẹt rẹt.
Trém trúng thì tốt, trém suỵt thì đừng hại nhau là được.
Và phải cố gắng để nó là lá số tử vi nhé, chứ lệch lạc sang lá số tử vong thì căng lắm.
Bài đã được tự động gộp:
Code dưới đây áp dụng cho số liệu file bài 1.
Kết quả điền vào vùng H7:H12
Bạn test lại xem kết quả trả về xem thế nào rồi tính tiếp
Mã:Option Explicit Sub xxx() Dim Nguon Dim DK Dim KQ Dim mCSD Dim cCSD Dim congSL Dim Tam Dim i, j, k, x, z, t Nguon = Sheet1.Range("C2:S4") DK = Sheet1.Range("C7:F12") ReDim KQ(1 To UBound(DK), 1 To 1) ReDim mCSD(1 To 200, UBound(Nguon)) '200: <-- thay doi theo so luong sao ReDim cCSD(UBound(Nguon)) With CreateObject("Scripting.Dictionary") For i = 1 To UBound(Nguon) For j = 1 To UBound(Nguon, 2) If Trim(Nguon(i, j)) <> "" Then Tam = Nguon(i, j) If InStr(Nguon(i, j), "(") Then Tam = Left(Nguon(i, j), Len(Nguon(i, j)) - 3) End If If .exists(Tam) = False Then k = .Count + 1 .Item(Tam) = k mCSD(k, 0) = mCSD(k, 0) + 1 mCSD(k, mCSD(k, 0)) = i End If End If Next j Next i For i = 1 To UBound(DK) congSL = 0 For j = 1 To UBound(DK, 2) If Trim(DK(i, j)) = "" Then Exit For congSL = congSL + 1 Tam = DK(i, j) If InStr(DK(i, j), "(") Then Tam = Left(DK(i, j), Len(DK(i, j)) - 3) End If If .exists(Tam) Then k = .Item(Tam) For z = 1 To mCSD(k, 0) t = mCSD(k, z) cCSD(t) = cCSD(t) + 1 cCSD(0) = cCSD(0) + 1 Next z End If Next j If cCSD(0) Then k = 2 For j = 1 To UBound(cCSD) If cCSD(j) = congSL Then k = 1 Exit For End If Next j For j = 0 To UBound(cCSD) cCSD(j) = 0 Next j KQ(i, 1) = k End If Next i End With With Sheet1.Range("H7").Resize(UBound(KQ), UBound(KQ, 2)) .Clear .Value = KQ .Borders.LineStyle = 1 End With End Sub
Dạ,
Em gửi kèm Anh/Chị kết quả. Dữ liệu xuất ra đúng với yêu cầu ban đầu, nhưng do yêu cầu ban đầu e thiết lập sai, em xin gửi lại.
E bổ xung là các sao phải gặp đồng thời, và thêm trọng số.
Cám ơn Anh/Chị
File đính kèm
Lần chỉnh sửa cuối: