Lọc và trích xuất các ID trùng trong bảng dữ liệu (5 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

italia.com.vn

Thành viên mới
Tham gia
11/11/14
Bài viết
4
Được thích
0
Em chào các anh chị,

Em là thành viên mới, kiến thức về Excel rất ít. Em có một file dưới đây, mong mọi người giải đáp hộ.
+ Trong file Excel thì các ID trùng nhau thì các giá trị ở ô hàng ngang gồm CODE, THƯƠNG HIỆU, SIZE sẽ giống hệt nhau, chỉ khác là cột QUAN sẽ khác. Bởi vì bảng này là tổng hợp của 2 kho hàng ạ.

+ Giờ em muốn lọc các ID trùng nhau ở bảng 1, và xuất ra chỉ 1 ID ra bảng 2, nhưng ở cột QUAN (Quantity) thì sẽ là tổng của 2 ID đó.
Em đã đính kèm ở File ạ, mong các cao thủ giúp em trường hợp này.

Em xin cảm ơn và chúc mọi người sức khỏe.
 

File đính kèm

Lần chỉnh sửa cuối:
Em chào các anh chị,

Em là thành viên mới, kiến thức về Excel rất ít. Em có một file dưới đây, mong mọi người giải đáp hộ.
+ Trong file Excel thì các ID trùng nhau thì các giá trị ở ô hàng ngang gồm CODE, THƯƠNG HIỆU, SIZE sẽ giống hệt nhau, chỉ khác là SIZE sẽ khác. Bởi vì bảng này là tổng hợp của 2 kho hàng ạ.

+ Giờ em muốn lọc các ID trùng nhau ở bảng 1, và xuất ra chỉ 1 ID ra bảng 2, nhưng ở cột QUAN (Quantity) thì sẽ là tổng của 2 ID đó.
Em đã đính kèm ở File ạ, mong các cao thủ giúp em trường hợp này.

Em xin cảm ơn và chúc mọi người sức khỏe.

Dùng pivot table nhé bạn
 

File đính kèm

Máy móc tốt thì xài cái này, dài nữa thì xài Advanced Filter hoặc bạn kêu mấy anh đẹp zai trên GPE viết code dictionary cho nha!
 

File đính kèm

Em chào các anh chị,

Em là thành viên mới, kiến thức về Excel rất ít. Em có một file dưới đây, mong mọi người giải đáp hộ.
+ Trong file Excel thì các ID trùng nhau thì các giá trị ở ô hàng ngang gồm CODE, THƯƠNG HIỆU, SIZE sẽ giống hệt nhau, chỉ khác là cột QUAN sẽ khác. Bởi vì bảng này là tổng hợp của 2 kho hàng ạ.

+ Giờ em muốn lọc các ID trùng nhau ở bảng 1, và xuất ra chỉ 1 ID ra bảng 2, nhưng ở cột QUAN (Quantity) thì sẽ là tổng của 2 ID đó.
Em đã đính kèm ở File ạ, mong các cao thủ giúp em trường hợp này.

Em xin cảm ơn và chúc mọi người sức khỏe.


Hơi giống file của mình chút!
Cũng bon chen chút xem đúng ý bạn không nhé
 

File đính kèm

Máy móc tốt thì xài cái này, dài nữa thì xài Advanced Filter hoặc bạn kêu mấy anh đẹp zai trên GPE viết code dictionary cho nha!

Bạn cho mình hỏi thêm về công thức tạo trong
=IFERROR(INDEX($A$3:$A$905,MATCH(0,INDEX(COUNTIF($H$2:H2,$A$3:$A$905),0),0)),"")
Nếu áp dụng trong file của mình tại sheet 1 tại địa chỉ ô Q10
Theo đường link http://www.mediafire.com/download/fmjxpp95vbxkdr8/Tonghopluongt1.rar
Do file qua nặng nên không thể tải bình thường được.
 
Máy móc tốt thì xài cái này, dài nữa thì xài Advanced Filter hoặc bạn kêu mấy anh đẹp zai trên GPE viết code dictionary cho nha!


'=IFERROR(INDEX($A$3:$A$905,MATCH(0,INDEX(COUNTIF($H$2:H2,$A$3:$A$905),0),0)),"")

Đối với công thức này làm thế nào thì mình biết là nó kết thúc hết các mã.
Nếu như không dùng advance Filter ah?
 
'=IFERROR(INDEX($A$3:$A$905,MATCH(0,INDEX(COUNTIF($H$2:H2,$A$3:$A$905),0),0)),"")

Đối với công thức này làm thế nào thì mình biết là nó kết thúc hết các mã.
Nếu như không dùng advance Filter ah?
Bạn thử bỏ iferror đi xem sao, khi nào có lỗi là hết mã, rồi bẫy iferror vào lại nhé
 
Bạn thử bỏ iferror đi xem sao, khi nào có lỗi là hết mã, rồi bẫy iferror vào lại nhé
Không có vân đề gì khi cho iferror vào.
Nhưng cái file của mình nó lọc thì nó lại không pải duy nhất và nó sổ ra toàn bộ một loạt mã giống hệt nhau đứng gần nhau.
Mà công thức cũng giống trên. nên mình cũng không hiểu vì sao?
 
Không có vân đề gì khi cho iferror vào.
Nhưng cái file của mình nó lọc thì nó lại không pải duy nhất và nó sổ ra toàn bộ một loạt mã giống hệt nhau đứng gần nhau.
Mà công thức cũng giống trên. nên mình cũng không hiểu vì sao?
Mã:
Sub Dic()
Dim Sarr, Arr, i, j, Tmp
Sarr = Range([A3], [A6500].End(3)).Resize(, 5).Value2
ReDim Arr(1 To UBound(Sarr, 1), 1 To 5)
With CreateObject("Scripting.Dictionary")
    For i = 1 To UBound(Sarr, 1)
        Tmp = Sarr(i, 1) & Sarr(i, 2) & Sarr(i, 3) & Sarr(i, 4)
        If Not .exists(Tmp) Then
            k = k + 1
            .Add Tmp, k
            For j = 1 To 4
                Arr(k, j) = Sarr(i, j)
                Arr(k, 5) = Sarr(i, 5)
            Next
        Else
            Arr(.Item(Tmp), 5) = Arr(.Item(Tmp), 5) + Sarr(i, 5)
        End If
    Next
    [H3:L5000].ClearContents
End With
If k Then
    [H3].Resize(UBound(Sarr, 1), 5).Value = Arr
End If
End Sub
chắc bạn vô tình sửa You can change a part ... rồi. Vẫn công thức tương tự, bạn sang ô khác, đảm bảo sẽ hết
 
Tại ba cột (P; Q; R)này mình có sử dụng công thức để lấy mã tắt duy nhất và sử dụng công thức trên mà ko được
Mình gửi lại file nên các bạn xem hộ mình nhé.
Ành mà đoạn code trên dùng cho công thức đó ah, Mih thấy BácHOam at troi dau co dung sub dđộhoamavà cong thức của bác hoa mat troi hình như chậm thì phải, tại mỗi lần mình mở nó. hay làm việc với công thức thì có báo che đô caluting
 

File đính kèm

Tại ba cột (P; Q; R)này mình có sử dụng công thức để lấy mã tắt duy nhất và sử dụng công thức trên mà ko được
Mình gửi lại file nên các bạn xem hộ mình nhé.
Ành mà đoạn code trên dùng cho công thức đó ah, Mih thấy BácHOam at troi dau co dung sub dđộhoamavà cong thức của bác hoa mat troi hình như chậm thì phải, tại mỗi lần mình mở nó. hay làm việc với công thức thì có báo che đô caluting
Sai ở chỗ màu xanh này
Mã:
=IFERROR(INDEX($G$10:$G$255,MATCH(0,INDEX(COUNTIF([COLOR=#0000ff]$P$9:P9[/COLOR],$G$10:$G$255),0),0),0),"")
Công thức đánh ở P10 thì đoạn dó phải là P9, trong file đang để P8 báo sai là đúng rồi.
mà bạn hỏi quá nhiều bài nên rất loạn, ở bài về lọc duy nhất bạn đã đưa vấn đề này và được anh Nghĩa giải quyết rồi mà nhỉ bằng cách lọc Advanced Filter.
Đoạn code trên cho bài mà có tổng quantity đó
 
Sai ở chỗ màu xanh này
Mã:
=IFERROR(INDEX($G$10:$G$255,MATCH(0,INDEX(COUNTIF([COLOR=#0000ff]$P$9:P9[/COLOR],$G$10:$G$255),0),0),0),"")
Công thức đánh ở P10 thì đoạn dó phải là P9, trong file đang để P8 báo sai là đúng rồi.
mà bạn hỏi quá nhiều bài nên rất loạn, ở bài về lọc duy nhất bạn đã đưa vấn đề này và được anh Nghĩa giải quyết rồi mà nhỉ bằng cách lọc Advanced Filter.
Đoạn code trên cho bài mà có tổng quantity đó
ah, tại em nghĩ là theo điều kiện mã tắt mà
Thannks BẠn.
Mình đang tìm công thức đó lên hỏi hơi nhiều mục --=0
hi.
cảm ơn bạn nhiều, nhưng mình không hiểu vì sao ko lấy điều kiện là mã tắt mà chỉ lấy hơn một ô chứ?
Nếu bạn rảnh giải đáp luôn cho mình công thức nhé }}}}}
 
ah, tại em nghĩ là theo điều kiện mã tắt mà
Thannks BẠn.
Mình đang tìm công thức đó lên hỏi hơi nhiều mục --=0
hi.
cảm ơn bạn nhiều, nhưng mình không hiểu vì sao ko lấy điều kiện là mã tắt mà chỉ lấy hơn một ô chứ?
nếu thế bạn nên gửi lại file của bạn xem sao vì cùng file đó mình dùng công thức của Bác Hoa mặt trời còi bình thường mà
Nếu bạn rảnh giải đáp luôn cho mình công thức nhé }}}}}
Sorry mình hiểu nhầm ý. Bạn so sánh vị trí kết quả thứ hai của công thức đúng và công thức sai, rồi F9 vùng cần xem mình nghĩ sẽ ok thhooi
Mã:
Sub Loc()
    Dim Sarr, Arr, i, k, t
    t = Timer
    Sarr = Sheet1.Range("G10:G" & Sheet1.Range("G50000").End(xlUp).Row)
    ReDim Arr(1 To UBound(Sarr, 1), 1 To 1)
    With CreateObject("Scripting.Dictionary")
        For i = 1 To UBound(Sarr, 1)
            If Not .exists(Sarr(i, 1)) Then
                .Add Sarr(i, 1), ""
                k = k + 1
                Arr(k, 1) = Sarr(i, 1)
            End If
        Next
        [P10:P50000].ClearContents
    End With
        If k Then
            [P10].Resize(k - 1, 1).Value = Arr
        End If
        Debug.Print Timer - t
End Sub
Công thức mảng đó khá nặng, hoặc dùng pivot cho lành bạn ah, nhanh hơn. Công thức để tham khảo thôi
 
Lần chỉnh sửa cuối:
[GPECODE=vb]
Công thức mảng đó khá nặng, hoặc dùng pivot cho lành bạn ah, nhanh hơn. Công thức để tham khảo thôi
[/GPECODE]
Nếu ko nhấn phím ctrl+shift+enter cũng là dạng công thức mảng sao.
Theo mình được biết thì công thức mảng phải có ba phím trên đồng thời
chứ Thực ra mình không biết dùng pivot. Nên mới hỏi công thức chứ.
Thanks bạn nhiều.}}}}}
Bạn có gặp trường hợp đang gõ chứ thì bị nhảy lên đầu dòng không
 
Web KT

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

Back
Top Bottom