Tìm kiếm tổ hợp nhiều biến với bảng có hàng và cột biến đổi

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài
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:

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. --=0 --=0 --=0

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. :wallbash::wallbash::wallbash:
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 ạ.
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

  • Ketqua-1.png
    Ketqua-1.png
    145.2 KB · Đọc: 15
  • Mô tả2-Điều chỉnh yêu cầu-Sao tổ hợp và, thêm trọng số.png
    Mô tả2-Điều chỉnh yêu cầu-Sao tổ hợp và, thêm trọng số.png
    104.4 KB · Đọc: 18
  • TimKiemNhieuBien-v0.2.xlsx
    11.9 KB · Đọc: 3
Lần chỉnh sửa cuối:
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 ạ.
Bài đã được tự động gộp:



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ị
Trọng số được sử dụng như thế nào trong cách tính vậy bạn?
 
Trọng số được sử dụng như thế nào trong cách tính vậy bạn?
Chỉ tính tương đối thôi Anh/Chị ạ.
Ví dụ, Tổ hợp Phá Quân Đại Hao Thiên Hình Tuyệt là 1 tổ hợp xấu, nên tạm coi mỗi 1 sao -1. Cộng vào là -4.
Cái này do mình tự quy ước. Nếu sau có phần nhập riêng từng tham số thì tiện ạ.
 
Chỉ tính tương đối thôi Anh/Chị ạ.
Ví dụ, Tổ hợp Phá Quân Đại Hao Thiên Hình Tuyệt là 1 tổ hợp xấu, nên tạm coi mỗi 1 sao -1. Cộng vào là -4.
Cái này do mình tự quy ước. Nếu sau có phần nhập riêng từng tham số thì tiện ạ.
Đưa kết quả mong muốn vào file đính kèm đi bạn, kèm cùng trọng số luôn thể
 
Chỉ tính tương đối thôi Anh/Chị ạ.
Ví dụ, Tổ hợp Phá Quân Đại Hao Thiên Hình Tuyệt là 1 tổ hợp xấu, nên tạm coi mỗi 1 sao -1. Cộng vào là -4.
Cái này do mình tự quy ước. Nếu sau có phần nhập riêng từng tham số thì tiện ạ.
Trọng số được sử dụng như thế nào trong cách tính vậy bạn?
Trọng số chỉ sử dụng khi trả về kết quả
Đưa kết quả mong muốn vào file đính kèm đi bạn, kèm cùng trọng số luôn thể
À, í e là bảng trọng số chính là kết quả cuối mong muốn nhận được đó ạ. E nói lộn nó là kết quả, và là số duy nhất.
Ví dụ, nếu kết quả là -4 thì ta có tổ hợp 4 sao Phá Hao Hình Tuyệt đó ạ.
 
Trọng số chỉ sử dụng khi trả về kết quả

À, í e là bảng trọng số chính là kết quả cuối mong muốn nhận được đó ạ. E nói lộn nó là kết quả, và là số duy nhất.
Ví dụ, nếu kết quả là -4 thì ta có tổ hợp 4 sao Phá Hao Hình Tuyệt đó ạ.
Bàng, 2-1-c, thấy có phá quân, đại hao, thiên hình, tuyệt. Trong bảng 1 chỉ có phá quân, 3 sao còn lại không có.

Có lẽ bạn cần bổ sung thêm bảng 1 cho số liệu tương đối đầy đủ mới suy luận được
 
Bàng, 2-1-c, thấy có phá quân, đại hao, thiên hình, tuyệt. Trong bảng 1 chỉ có phá quân, 3 sao còn lại không có.

Có lẽ bạn cần bổ sung thêm bảng 1 cho số liệu tương đối đầy đủ mới suy luận được

Bản chất là khi an lá số nó sẽ tạo thành các tổ hợp. Trong đó tổ hợp liên quan đến sao Phá Quân thì e chỉ check với bảng đó thôi, nếu không có thì không thành cách, không xét. Dĩ nhiên là còn nhiều cách khác nữa, mình cần liệt kê sau này, quan trọng là cách để sinh ra kết quả như đang làm đó ạ.
E gửi kèm bảng đầy đủ, nó tách thành 4 tổ hợp bảng.
 

File đính kèm

  • Bang1-DayDu.xlsx
    10.5 KB · Đọc: 4
Bàng, 2-1-c, thấy có phá quân, đại hao, thiên hình, tuyệt. Trong bảng 1 chỉ có phá quân, 3 sao còn lại không có.

Có lẽ bạn cần bổ sung thêm bảng 1 cho số liệu tương đối đầy đủ mới suy luận được
Em xin bổ xung thông tin là nếu không tìm thấy chuỗi như yêu cầu thì trả về 0 ạ.
 
Bàng, 2-1-c, thấy có phá quân, đại hao, thiên hình, tuyệt. Trong bảng 1 chỉ có phá quân, 3 sao còn lại không có.

Có lẽ bạn cần bổ sung thêm bảng 1 cho số liệu tương đối đầy đủ mới suy luận được

Sau 1 thời gian nghiền ngẫm sâu hơn, e đưa ra yêu cầu bài toán tổng quan, có mô phỏng các bước, chỉ không biết cách chuyển đổi sang vba.
Vì dữ liệu là động, các bảng thay đổi nên không thể cập nhật các giá trị đầy đủ. Chỉ mô phỏng bằng 1 vài ví dụ mẫu.
Nhờ Anh/Chị rảnh xem giúp em, trân trọng cảm ơn.
 

File đính kèm

  • YeuCauBaiToanTongQuan-v0.1.xlsx
    11.3 KB · Đọc: 10
Sau 1 thời gian nghiền ngẫm sâu hơn, e đưa ra yêu cầu bài toán tổng quan, có mô phỏng các bước, chỉ không biết cách chuyển đổi sang vba.
Vì dữ liệu là động, các bảng thay đổi nên không thể cập nhật các giá trị đầy đủ. Chỉ mô phỏng bằng 1 vài ví dụ mẫu.
Nhờ Anh/Chị rảnh xem giúp em, trân trọng cảm ơn.
Theo hướng dẫn: Bước 3-3 tại R25 & ví dụ tại M30 là hoàn toàn chính xác chứ bạn?
 
Theo hướng dẫn: Bước 3-3 tại R25 & ví dụ tại M30 là hoàn toàn chính xác chứ bạn?
Dạ, vẫn chính xác đó ạ.
Vì bảng 1, mỗi giá trị chỉ xuất hiện duy nhất 1 lần trong bảng.
Chỉ có 1 phần e đang lăn tăn, là thuật toán tìm kiếm có làm được việc là chỉ tìm kiếm chuỗi tồn tại, không phụ thuộc vị trí chính xác trên cell,
Ví dụ chuỗi Phá Quân-Đại Hao-Thiên Hình-Tuyệt trong bảng 2 khi search trên Bảng 1 gặp Phá Quân-Thiên Hình-Tuyệt-Đại hao (các giá trị vị trí ngẫu nhiên ) thì vẫn được tính score?
 
Dạ, vẫn chính xác đó ạ.
Vì bảng 1, mỗi giá trị chỉ xuất hiện duy nhất 1 lần trong bảng.
Chỉ có 1 phần e đang lăn tăn, là thuật toán tìm kiếm có làm được việc là chỉ tìm kiếm chuỗi tồn tại, không phụ thuộc vị trí chính xác trên cell,
Ví dụ chuỗi Phá Quân-Đại Hao-Thiên Hình-Tuyệt trong bảng 2 khi search trên Bảng 1 gặp Phá Quân-Thiên Hình-Tuyệt-Đại hao (các giá trị vị trí ngẫu nhiên ) thì vẫn được tính score?
Làm rõ thêm:
R25: "Cùng Xn-khác row - trả về Bảng 2 kết quả 2"
M30: "Lộc Tồn nằm khác hàng, giá trị trả về giá trị =1 "

Cái "khác row" & "khác hàng" có ý nghĩa giống nhau hay là không
 
Làm rõ thêm:
R25: "Cùng Xn-khác row - trả về Bảng 2 kết quả 2"
M30: "Lộc Tồn nằm khác hàng, giá trị trả về giá trị =1 "

Cái "khác row" & "khác hàng" có ý nghĩa giống nhau hay là không
Dạ, row và hàng là 1 đó Anh/Chị (lỗi typing vừa tiếng Anh, vừa tiếng việt. Sorri Anh/Chị )
 
Dạ, row và hàng là 1 đó Anh/Chị (lỗi typing vừa tiếng Anh, vừa tiếng việt. Sorri Anh/Chị )
Nếu vậy điều kiện tại R25 và M30 là xung đột nhau, vì đầu vào là như nhau nhưng mỗi cái đề nghị 1 kết quả khác nhau

Hay là phải hiểu theo cách nào khác vậy bạn?
 
Nếu vậy điều kiện tại R25 và M30 là xung đột nhau, vì đầu vào là như nhau nhưng mỗi cái đề nghị 1 kết quả khác nhau

Hay là phải hiểu theo cách nào khác vậy bạn?
Kết quả là đúng ạ.
Có 2 điều quan trọng:
1- Chỉ xét cùng bảng X-n.
2- Việc cùng hàng và khác hàng sẽ quyết định kết quả trả về.

Đầu vào là như nhau, nhưng đang tách việc kiểm tra cùng hàng và khác hàng đó ạ.

Anh/Chị cứ làm đúng theo yêu cầu, là thoả yêu cầu bài toán.
 

File đính kèm

  • Mô tả-3.png
    Mô tả-3.png
    94 KB · Đọc: 4
Web KT
Back
Top Bottom