Xin giúp e về tìm kiếm lấy về nhiều giá trị

Liên hệ QC

Cám ơn bạn đã quan tâm trả lời.
Mình muốn lấy giá trị dựa vào mã đó cho sheet khác và dữ liệu hàng ngàn dòng mình không thể sort được.
Đây là 1 bài toán giống như dùng hàm index để trả về nhiều giá trị. Nhưng nó chỉ dò mỗi lần 1 mã.
Mình muốn dò hết mã này đến mã khác liên tục.

Không biết có ai giúp mình không?
P/s: Mình đã tìm gần 1 năm rồi.
 
Lần chỉnh sửa cuối:
Cám ơn bạn đã quan tâm trả lời.
Mình muốn lấy giá trị dựa vào mã đó cho sheet khác và dữ liệu hàng ngàn dòng mình không thể sort được.
Đây là 1 bài toán giống như dùng hàm index để trả về nhiều giá trị. Nhưng nó chỉ dò mỗi lần 1 mã.
Mình muốn dò hết mã này đến mã khác liên tục.

Không biết có ai giúp mình không?
P/s: Mình đã tìm gần 1 năm rồi.

Nếu tìm lâu quá mà không có công thức thì bạn chịu xài VBA không?
Bạn đưa file mà "Mình muốn lấy giá trị dựa vào mã đó cho sheet khác và dữ liệu hàng ngàn dòng " lên thử xem.
 
Lần chỉnh sửa cuối:
Cám ơn bạn đã quan tâm.

Bạn có thể làm giúp mình dựa vào tập tin đính kèm được không?

Nếu được mình cũng muốn thử. Tại vì dùng index cũng khá chậm.
Cám ơn bạn trước nha.
 
Lần chỉnh sửa cuối:
Cám ơn bạn đã quan tâm trả lời.
Mình muốn lấy giá trị dựa vào mã đó cho sheet khác và dữ liệu hàng ngàn dòng mình không thể sort được.
Đây là 1 bài toán giống như dùng hàm index để trả về nhiều giá trị. Nhưng nó chỉ dò mỗi lần 1 mã.
Mình muốn dò hết mã này đến mã khác liên tục.

Không biết có ai giúp mình không?
P/s: Mình đã tìm gần 1 năm rồi.

Cái chỗ màu đỏ không cần nêu bởi vì sau khi xem file bài #21 thì tôi biết chắc chắn bạn sẽ kêu tiếp.

Muốn nhanh thì ta vào đề luôn, gửi cái file đang làm thật ấy lên thôi.
 
Cám ơn bạn đã quan tâm.

Bạn có thể làm giúp mình dựa vào tập tin đính kèm được không?

Nếu được mình cũng muốn thử. Tại vì dùng index cũng khá chậm.
Cám ơn bạn trước nha.

Nó đây.......................................................................
 

File đính kèm

  • GPE_1.xlsm
    20.6 KB · Đọc: 41
Thật ra ban đầu ý của e là làm thế nào để làm được như sheet 4 (có đính kèm file bên dưới): tức là sắp xếp và liệt kê từng loại mặt hàng theo số hóa đơn, ngày tháng... mn chỉ e với >.<

Tôi thấy bạn nêu "liệt kê từng loại mặt hàng theo số hóa đơn", nhưng trong File của bạn không thấy sheet nào có cột số hóa đơn thì làm sao mà lọc ?????

Thứ 2 bạn cũng cần có 1 sheet làm mẫu hóa đơn để in hóa đơn cho khách hàng xong thì lưu dữ liệu vào sheet theo dõi hoặc khi cần xem hoặc in lại hóa đơn thì gõ số hoặc đơn lọc nó ra tại sheet này.
 
Xin chào các bạn,
Nhờ các bạn giúp đỡ Oanh Thơ giải quyết trường hợp trong tập tin gửi kèm với ạ.
 

File đính kèm

  • Tim kiem nhieu gia tri - Copy.xlsx
    154.2 KB · Đọc: 33
Xin chào các bạn,
Nhờ các bạn giúp đỡ Oanh Thơ giải quyết trường hợp trong tập tin gửi kèm với ạ.
Bạn thử cái này xem
PHP:
Sub LocNhieuDK()
    Dim ParkHangSeo As Object, Key As String
    Dim VietNam(), HanQuoc(), I As Long, K As Long
Set ParkHangSeo = CreateObject("Scripting.Dictionary")
With Sheets("Dulieu")
    VietNam = .Range("E2", .Range("E" & Rows.Count).End(3)).Resize(, 19).Value
End With
ReDim HanQuoc(1 To UBound(VietNam, 1), 1 To 5)
For I = 1 To UBound(VietNam, 1)
    Key = VietNam(I, 1) & "@@@" & VietNam(I, 19)
    If Not ParkHangSeo.Exists(Key) Then
        K = K + 1
        ParkHangSeo.Add Key, K
        HanQuoc(K, 1) = K
        HanQuoc(K, 2) = VietNam(I, 1)
        HanQuoc(K, 3) = VietNam(I, 18)
        HanQuoc(K, 4) = VietNam(I, 19)
        HanQuoc(K, 5) = "=RC[-2]*RC[-1]"
    Else
        HanQuoc(ParkHangSeo.Item(Key), 3) = HanQuoc(ParkHangSeo.Item(Key), 3) + VietNam(I, 18)
    End If
Next I
With Sheets("Ketqua")
    .Range("H3").Resize(K, 5) = HanQuoc
End With
Set ParkHangSeo = Nothing
End Sub
 
Bạn thử cái này xem
PHP:
Sub LocNhieuDK()
    Dim ParkHangSeo As Object, Key As String
    Dim VietNam(), HanQuoc(), I As Long, K As Long
Set ParkHangSeo = CreateObject("Scripting.Dictionary")
With Sheets("Dulieu")
    VietNam = .Range("E2", .Range("E" & Rows.Count).End(3)).Resize(, 19).Value
End With
ReDim HanQuoc(1 To UBound(VietNam, 1), 1 To 5)
For I = 1 To UBound(VietNam, 1)
    Key = VietNam(I, 1) & "@@@" & VietNam(I, 19)
    If Not ParkHangSeo.Exists(Key) Then
        K = K + 1
        ParkHangSeo.Add Key, K
        HanQuoc(K, 1) = K
        HanQuoc(K, 2) = VietNam(I, 1)
        HanQuoc(K, 3) = VietNam(I, 18)
        HanQuoc(K, 4) = VietNam(I, 19)
        HanQuoc(K, 5) = "=RC[-2]*RC[-1]"
    Else
        HanQuoc(ParkHangSeo.Item(Key), 3) = HanQuoc(ParkHangSeo.Item(Key), 3) + VietNam(I, 18)
    End If
Next I
With Sheets("Ketqua")
    .Range("H3").Resize(K, 5) = HanQuoc
End With
Set ParkHangSeo = Nothing
End Sub

Kết quả cuối cùng trả về HanQuoc kìa, không biết kết quả này là thắng hay thua nhỉ :D
 
Kết quả đúng ý mình rồi, c
Bạn thử cái này xem
PHP:
Sub LocNhieuDK()
    Dim ParkHangSeo As Object, Key As String
    Dim VietNam(), HanQuoc(), I As Long, K As Long
Set ParkHangSeo = CreateObject("Scripting.Dictionary")
With Sheets("Dulieu")
    VietNam = .Range("E2", .Range("E" & Rows.Count).End(3)).Resize(, 19).Value
End With
ReDim HanQuoc(1 To UBound(VietNam, 1), 1 To 5)
For I = 1 To UBound(VietNam, 1)
    Key = VietNam(I, 1) & "@@@" & VietNam(I, 19)
    If Not ParkHangSeo.Exists(Key) Then
        K = K + 1
        ParkHangSeo.Add Key, K
        HanQuoc(K, 1) = K
        HanQuoc(K, 2) = VietNam(I, 1)
        HanQuoc(K, 3) = VietNam(I, 18)
        HanQuoc(K, 4) = VietNam(I, 19)
        HanQuoc(K, 5) = "=RC[-2]*RC[-1]"
    Else
        HanQuoc(ParkHangSeo.Item(Key), 3) = HanQuoc(ParkHangSeo.Item(Key), 3) + VietNam(I, 18)
    End If
Next I
With Sheets("Ketqua")
    .Range("H3").Resize(K, 5) = HanQuoc
End With
Set ParkHangSeo = Nothing
End Sub

Kết quả đúng ý mình rồi, cảm ơn bạn nhiêu.
Bài này có bạn nào làm được bằng công thức cho mình tham khảo với.
 

File đính kèm

  • Tim kiem nhieu gia tri - Copy.xlsx
    274.5 KB · Đọc: 22

File đính kèm

  • Tim kiem nhieu gia tri - Copy.xlsx
    316.9 KB · Đọc: 10
Web KT
Back
Top Bottom