Tìm kiếm và tự nhân bản

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

HUYBOY

Thành viên chính thức
Tham gia
5/4/20
Bài viết
77
Được thích
3
Dear Anh Chị

Em xin nhờ AC hỗ trợ em với ạ,

Em có Bảng 1 là bảng dữ liệu, bảng 2 là muốn tìm và trả về tương ứng, nhưng với điều kiện những cái nào mà trùng thì tự nhân bản lên và cho giá trị tương ứng, để ra được kết quả như cột 3 ạ

Em đội ơn các AC ạ
 

File đính kèm

  • Tim gia tri.xlsx
    8.8 KB · Đọc: 15
Dear Anh Chị

Em xin nhờ AC hỗ trợ em với ạ,

Em có Bảng 1 là bảng dữ liệu, bảng 2 là muốn tìm và trả về tương ứng, nhưng với điều kiện những cái nào mà trùng thì tự nhân bản lên và cho giá trị tương ứng, để ra được kết quả như cột 3 ạ

Em đội ơn các AC ạ
hóa ra chat GPT cũng hiểu AC là gì, và nó trả lời câu hỏi như sau nhé, tại sao thì tôi không biết (Đang thử nghiệm thôi)

Chào bạn!

Có thể bạn muốn tìm cách tính tổng số lần xuất hiện của các giá trị trong bảng 1 trong bảng 2 và trả về kết quả trong bảng 3.

Nếu đúng như vậy, bạn có thể sử dụng hàm COUNTIF hoặc SUMIF trong Microsoft Excel để thực hiện việc này.

Ví dụ, nếu tên cột của bảng 1 là "A" và tên cột của bảng 2 là "B", bạn có thể sử dụng công thức sau trong cột C của bảng 3:

=COUNTIF(B:B, A1)

Trong đó, A1 là ô đầu tiên của cột A của bảng 1 và B:B là phạm vi của cột B của bảng 2.

Sau đó, kéo xuống công thức để áp dụng cho các ô còn lại trong cột C.

Mong rằng điều này sẽ giúp bạn!
 
Upvote 0
Ai đó giúp em với ạ. Con GPT nó cũng ko làm dc ý ạ
 
Upvote 0
Bạn thử món này cho lạ miệng xíu nè!
 

File đính kèm

  • UDF.rar
    13.2 KB · Đọc: 5
Upvote 0
Cho em hỏi em làm sao để kéo đc như bác vâyh ạ?
 
Upvote 0
Đó là hàm mảng UDF;
Bạn có thể thấy những nhược điểm của nó, 1 khi biết các hàm trong E365, như: . . . . . .

Nội dung hàm:

PHP:
Function TKiem(CSDL As Range, Tim As Range)
 Dim Arr(), Cls As Range
 Dim J As Long, W As Integer, Rws As Long
  
 Rws = CSDL.Rows.Count
 ReDim aKQ(1 To Rws, 1 To 3) As String
 Arr() = CSDL.Value
 For Each Cls In Tim
    For J = 1 To UBound(Arr())
        If Arr(J, 2) = Cls.Value Then
            W = W + 1:              aKQ(W, 1) = Str(W)
            aKQ(W, 2) = Arr(J, 2):  aKQ(W, 3) = Str(Arr(J, 3))
        End If
    Next J
 Next Cls
 TKiem = aKQ()
End Function
 
Lần chỉnh sửa cuối:
Upvote 0
Bác có thể inbox cho em xin zalo để em hỏi cách sử dụng dc ko ạ? Em gõ hàm mà ko ra ạ
 
Upvote 0
Thêm 1 cách khác tham khảo. Bạn nên sửa các chữ AC đi nhìn cho nó đỡ tức mắt
Mã:
Option Explicit
Sub ABC()
    Dim Dic As Object, aData(), aTimKiem(), Res(), i&, S, n&, K&
    Set Dic = CreateObject("scripting.dictionary")
    With Sheets("Sheet1")
        aData = .Range("B2:D8").Value
        aTimKiem = .Range("H2:I4").Value
        ReDim Res(1 To UBound(aData), 1 To 3)
        For i = 1 To UBound(aData)
            Dic(aData(i, 2)) = Dic(aData(i, 2)) & "," & i
        Next
        For i = 1 To UBound(aTimKiem)
            If Dic.exists(aTimKiem(i, 2)) = True Then
                S = Split(Dic(aTimKiem(i, 2)), ",")
                For n = 1 To UBound(S)
                    K = K + 1
                    Res(K, 1) = K
                    Res(K, 2) = aData(CLng(S(n)), 2)
                    Res(K, 3) = aData(CLng(S(n)), 3)
                Next
            End If
        Next
        .Range("O2").Resize(1000, 3).ClearContents
        .Range("O2").Resize(K, 3).Value = Res
    End With
End Sub
 
Upvote 0
Đó là hàm mảng, dù là tự tạo, cho nên:
Bạn rà chuột vô vùng ô có màu sẽ thấy trên thanh công thức cách thức đưa các tham biến cho hàm
. . . .
 
Lần chỉnh sửa cuối:
Upvote 0
Dạ. Em xin rút kinh nghiệm ạ. Cảm ơn các Anh đã giúp đỡ em ạ.
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom