lọc ra những dữ liệu trùng nhau vào một dòng theo mã

Liên hệ QC

vinhthinhnd

Thành viên mới
Tham gia
15/10/18
Bài viết
5
Được thích
1
Các bác giúp em trường hợp này với ạ
em muốn các mã trùng nhau dữ liệu sẽ được thống kê thành một dòng tương ứng với mã đó. các dữ liệu ngăn cách nhau bằng dấu "+"
em dùng hàm vlookup nhưng nó chỉ được 1 giá trị thôi ạ
em cảm ơn ah.
 

File đính kèm

  • 2021-04-29_065856.jpg
    2021-04-29_065856.jpg
    30.1 KB · Đọc: 63
Các bác giúp em trường hợp này với ạ
em muốn các mã trùng nhau dữ liệu sẽ được thống kê thành một dòng tương ứng với mã đó. các dữ liệu ngăn cách nhau bằng dấu "+"
em dùng hàm vlookup nhưng nó chỉ được 1 giá trị thôi ạ
em cảm ơn ah.
Bài này dùng công thức thì hơi vất vả đó bạn, dùng VBA sẽ tiện hơn.
 
Công thức thì thêm cột phụ mới nhàn được
 
Dùng Dax sử dụng Concanetex là được.
 
Các bác giúp em trường hợp này với ạ
em muốn các mã trùng nhau dữ liệu sẽ được thống kê thành một dòng tương ứng với mã đó. các dữ liệu ngăn cách nhau bằng dấu "+"
em dùng hàm vlookup nhưng nó chỉ được 1 giá trị thôi ạ
em cảm ơn ah.
Bạn đưa file giả định lên, chắc sẽ có nhiều người giúp bạn.
 
em muốn các mã trùng nhau dữ liệu sẽ được thống kê thành một dòng tương ứng với mã đó. các dữ liệu ngăn cách nhau bằng dấu "+"
Nếu Excel của bạn có hàm TEXTJOIN , thử dùng công thức mảng:

=TEXTJOIN("+",TRUE,IF($A$2:$A$7=E2,$B$2:$B$7,""))

Có thể phải kết thúc bằng Ctrl+Shift+Enter.
 
Các bác giúp em trường hợp này với ạ
em muốn các mã trùng nhau dữ liệu sẽ được thống kê thành một dòng tương ứng với mã đó. các dữ liệu ngăn cách nhau bằng dấu "+"
Của bạn đây, không biết có đúng ý không. Hãy thêm dữ liệu vào và chạy code nhé!
Code học mót của các anh chị em trên Diễn đàn.
 

File đính kèm

  • Dung Dic.xlsm
    18.2 KB · Đọc: 20
Của bạn đây, không biết có đúng ý không. Hãy thêm dữ liệu vào và chạy code nhé!
Code học mót của các anh chị em trên Diễn đàn.
File này nếu thêm 1 điều kiện phân loại theo từng mức giá trị được không bạn (hình minh họa)
1622696232987.png
VD: gộp mỗi loại A, B , C thành 1 dòng duy nhất. Sau đó muốn biết có bao nhiêu bill nằm trong phân khúc giá nào (>100,000 <250,000 / >1,000,000...)
 
File này nếu thêm 1 điều kiện phân loại theo từng mức giá trị được không bạn (hình minh họa)
View attachment 259941
VD: gộp mỗi loại A, B , C thành 1 dòng duy nhất. Sau đó muốn biết có bao nhiêu bill nằm trong phân khúc giá nào (>100,000 <250,000 / >1,000,000...)
Của bạn đây. thêm dữ liệu vào chạy thử.
Sub TACH()
Dim dic As New Scripting.Dictionary
Dim i As Long
Dim j As Long
Dim t&
Dim Arr()
Dim KQ()
Dim d As Long
With Sheet1
d = .Range("A" & Rows.Count).End(xlUp).Row
Arr = .Range("A2:C" & d).Value
ReDim KQ(1 To UBound(Arr), 1 To 5)
For i = 1 To UBound(Arr)
DK = Arr(i, 1)
If Not dic.Exists(DK) Then
t = t + 1
dic.Add DK, t
KQ(t, 1) = DK
KQ(t, 2) = Arr(i, 2)
If Arr(i, 3) <= 500000 Then
KQ(t, 3) = KQ(t, 3) + 1
ElseIf Arr(i, 3) > 500000 And Arr(i, 3) <= 1000000 Then
KQ(t, 4) = KQ(t, 4) + 1
Else
KQ(t, 5) = KQ(t, 5) + 1
End If
Else
j = dic.Item(DK)
KQ(j, 2) = KQ(j, 2) & "+" & Arr(i, 2)
If Arr(i, 3) <= 500000 Then
KQ(t, 3) = KQ(t, 3) + 1
ElseIf Arr(i, 3) > 500000 And Arr(i, 3) <= 1000000 Then
KQ(t, 4) = KQ(t, 4) + 1
Else
KQ(t, 5) = KQ(t, 5) + 1
End If
End If
Next i
If t Then .[E2].Resize(t, 5) = KQ
End With
Set dic = Nothing
MsgBox " XONG RÔI, HAY GUI LOI C?M ON ÐÊN BQT DIÊN ÐAN NHÉ!"
End Sub
 

File đính kèm

  • Dung Dic.xlsm
    19.1 KB · Đọc: 10
Của bạn đây. thêm dữ liệu vào chạy thử.
Sub TACH()
Dim dic As New Scripting.Dictionary
Dim i As Long
Dim j As Long
Dim t&
Dim Arr()
Dim KQ()
Dim d As Long
With Sheet1
d = .Range("A" & Rows.Count).End(xlUp).Row
Arr = .Range("A2:C" & d).Value
ReDim KQ(1 To UBound(Arr), 1 To 5)
For i = 1 To UBound(Arr)
DK = Arr(i, 1)
If Not dic.Exists(DK) Then
t = t + 1
dic.Add DK, t
KQ(t, 1) = DK
KQ(t, 2) = Arr(i, 2)
If Arr(i, 3) <= 500000 Then
KQ(t, 3) = KQ(t, 3) + 1
ElseIf Arr(i, 3) > 500000 And Arr(i, 3) <= 1000000 Then
KQ(t, 4) = KQ(t, 4) + 1
Else
KQ(t, 5) = KQ(t, 5) + 1
End If
Else
j = dic.Item(DK)
KQ(j, 2) = KQ(j, 2) & "+" & Arr(i, 2)
If Arr(i, 3) <= 500000 Then
KQ(t, 3) = KQ(t, 3) + 1
ElseIf Arr(i, 3) > 500000 And Arr(i, 3) <= 1000000 Then
KQ(t, 4) = KQ(t, 4) + 1
Else
KQ(t, 5) = KQ(t, 5) + 1
End If
End If
Next i
If t Then .[E2].Resize(t, 5) = KQ
End With
Set dic = Nothing
MsgBox " XONG RÔI, HAY GUI LOI C?M ON ÐÊN BQT DIÊN ÐAN NHÉ!"
End Sub
cảm ơn bạn nhé.
 
Web KT
Back
Top Bottom