haphambk74
Thành viên mới
- Tham gia
- 6/9/12
- Bài viết
- 37
- Được thích
- 4
Dùng pivotable cho lẹ và tổng hợp được nhiều tiêu chíMình có 1 bảng dữ liệu có nhiều hàng trùng nhau muốn nhờ các bạn dùng vba tổng hợp giúp, xin cảm ơn nhiều ạ
file đính kèm GB3-1
Bài này nên đăng tại chuyên mục lập trình chứ bạn.dùng vba tổng hợp
mình thích kiểu như dùng consolidate trong excel có sẵn, nhưng cái đó chỉ được 2 cột trùng nhau. Pivot thì mình chưa dùng bao giờ, bạn gửi cho mình xem thử được ko, thanksDùng pivotable cho lẹ và tổng hợp được nhiều tiêu chí
oh, cái này cũng hay nhưng mình muốn chỗ grain là bằng tổng các hàng trùng nhau được không?Bạn chọn remove duplicate là được nhé. Nếu như kết quả bạn muốn như bên dưới.View attachment 275471
Ý bạn là như thế này ah?View attachment 275475
cutting-length | cutting-width | grain | material | Code N.1 | Code N.2 | Code N.3 | label |
2216 | 262 | 3 | 201 | mat sau - GB3 | |||
2216 | 1200 | 3 | 201 | mat sau - GB3 | |||
2216 | 818 | 3 | 201 | mat truoc - GB3 | |||
2216 | 163 | 2 | 201 | mat truoc - GB3 | |||
2216 | 179 | 2 | 201 | mat truoc - GB3 | |||
1200 | 296 | 6 | 201 | op ben - GB3 | |||
2216 | 382 | 2 | 619EV | 276. mat ghe duoi - GB3 | |||
2216 | 155 | 2 | 619EV | 276. mat ghe duoi - GB3 | |||
2248 | 554 | 3 | 619EV | mat ghe - GB3 | |||
2248 | 59 | 3 | 619EV | vien ghe - GB3 | |||
538 | 59 | 6 | 619EV | vien ghe - GB3 |
bảng bạn với bảng mình giống nhau ấy, chẳng qua trong piivot table mình count cột grain bên phần value nên nó để sau cùng, còn dữ liệu vẫn vậy mà. Bạn pivot xong son sánh lại nhé.
cutting-length cutting-width grain material Code N.1 Code N.2 Code N.3 label 2216 262 3201 mat sau - GB3 2216 1200 3201 mat sau - GB3 2216 818 3201 mat truoc - GB3 2216 163 2201 mat truoc - GB3 2216 179 2201 mat truoc - GB3 1200 296 6201 op ben - GB3 2216 382 2619EV 276. mat ghe duoi - GB3 2216 155 2619EV 276. mat ghe duoi - GB3 2248 554 3619EV mat ghe - GB3 2248 59 3619EV vien ghe - GB3 538 59 6619EV vien ghe - GB3
mình muốn tổng hợp kiểu ntn, cột grain bằng tổng các hàng trùng nhau
Bạn thử code sau nhé:
cutting-length cutting-width grain material Code N.1 Code N.2 Code N.3 label 2216 262 3201 mat sau - GB3 2216 1200 3201 mat sau - GB3 2216 818 3201 mat truoc - GB3 2216 163 2201 mat truoc - GB3 2216 179 2201 mat truoc - GB3 1200 296 6201 op ben - GB3 2216 382 2619EV 276. mat ghe duoi - GB3 2216 155 2619EV 276. mat ghe duoi - GB3 2248 554 3619EV mat ghe - GB3 2248 59 3619EV vien ghe - GB3 538 59 6619EV vien ghe - GB3
mình muốn tổng hợp kiểu ntn, cột grain bằng tổng các hàng trùng nhau
Sub LayDL_HLMT()
With CreateObject("ADODB.Connection")
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No"""
Sheet2.Range("A2").CopyFromRecordset .Execute("Select F1,F2,Sum(Val(F3)),F4,F5,F6,F7,F8 From [Sheet1$A2:H] Group by F1,F2,F4,F5,F6,F7,F8")
End With
End Sub
Bạn thử code sau nhé:
Mã:Sub LayDL_HLMT() With CreateObject("ADODB.Connection") .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No""" Sheet2.Range("A2").CopyFromRecordset .Execute("Select F1,F2,Sum(Val(F3)),F4,F5,F6,F7,F8 From [Sheet1$A2:H] Group by F1,F2,F4,F5,F6,F7,F8") End With End Sub
Vậy bạn thử code sau thử nhé:View attachment 275485
mình thử chạy nó báo lỗi ntn, bạn xem lại hộ nhé
Sub LayDL_HLMT()
With CreateObject("ADODB.Connection")
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No"""
Sheet2.Range("A2").CopyFromRecordset .Execute("Select F1,F2,count(F3),F4,F5,F6,F7,F8 From [Sheet1$A2:H] Group by F1,F2,F4,F5,F6,F7,F8")
End With
End Sub
Vậy bạn thử code sau thử nhé:
Mã:Sub LayDL_HLMT() With CreateObject("ADODB.Connection") .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0 Xml;HDR=No""" Sheet2.Range("A2").CopyFromRecordset .Execute("Select F1,F2,count(F3),F4,F5,F6,F7,F8 From [Sheet1$A2:H] Group by F1,F2,F4,F5,F6,F7,F8") End With End Sub
0 | |||||||
0 | material | Code N.1 | Code N.2 | Code N.3 | label | ||
538 | 59 | 7 | 619EV | vien ghe - GB3 | |||
1200 | 296 | 7 | 201 | op ben - GB3 | |||
2216 | 155 | 3 | 619EV | 276. mat ghe duoi - GB3 | |||
2216 | 163 | 3 | 201 | mat truoc - GB3 | |||
2216 | 179 | 3 | 201 | mat truoc - GB3 | |||
2216 | 262 | 4 | 201 | mat sau - GB3 | |||
2216 | 382 | 3 | 619EV | 276. mat ghe duoi - GB3 | |||
2216 | 818 | 4 | 201 | mat truoc - GB3 | |||
2216 | 1200 | 4 | 201 | mat sau - GB3 | |||
2248 | 59 | 4 | 619EV | vien ghe - GB3 | |||
2248 | 554 | 4 | 619EV | mat ghe - GB3 | |||
Bạn nói mình nghe thử là những dòng trên cái nào bị trùng nhé.
0 0material Code N.1 Code N.2 Code N.3 label 538 59 7619EV vien ghe - GB3 1200 296 7201 op ben - GB3 2216 155 3619EV 276. mat ghe duoi - GB3 2216 163 3201 mat truoc - GB3 2216 179 3201 mat truoc - GB3 2216 262 4201 mat sau - GB3 2216 382 3619EV 276. mat ghe duoi - GB3 2216 818 4201 mat truoc - GB3 2216 1200 4201 mat sau - GB3 2248 59 4619EV vien ghe - GB3 2248 554 4619EV mat ghe - GB3
Kết quả ra ntn bị nhiều hơn số lượng thực tế 1 đơn vị, bạn xem lại dùm nhé
số lượng đúng ở cột cuối bạn nhéBạn nói mình nghe thử là những dòng trên cái nào bị trùng nhé.
0 | ||||||||
0 | material | Code N.1 | Code N.2 | Code N.3 | label | số lượng đúng | ||
538 | 59 | 7 | 619EV | vien ghe - GB3 | 6 | |||
1200 | 296 | 7 | 201 | op ben - GB3 | 6 | |||
2216 | 155 | 3 | 619EV | 276. mat ghe duoi - GB3 | 2 | |||
2216 | 163 | 3 | 201 | mat truoc - GB3 | 2 | |||
2216 | 179 | 3 | 201 | mat truoc - GB3 | 2 | |||
2216 | 262 | 4 | 201 | mat sau - GB3 | 3 | |||
2216 | 382 | 3 | 619EV | 276. mat ghe duoi - GB3 | 2 | |||
2216 | 818 | 4 | 201 | mat truoc - GB3 | 3 | |||
2216 | 1200 | 4 | 201 | mat sau - GB3 | 3 | |||
2248 | 59 | 4 | 619EV | vien ghe - GB3 | 3 | |||
2248 | 554 | 4 | 619EV | mat ghe - GB3 | 3 | |||
Tôi nghĩ bạn đã đổi code hoặc dữ liệu của bạn không phải như file mẫu. Tôi chạy code thì nó ra kết quả như sau:số lượng đúng ở cột cuối bạn nhé
0 0material Code N.1 Code N.2 Code N.3 label số lượng đúng 538 59 7619EV vien ghe - GB3 6 1200 296 7201 op ben - GB3 6 2216 155 3619EV 276. mat ghe duoi - GB3 2 2216 163 3201 mat truoc - GB3 2 2216 179 3201 mat truoc - GB3 2 2216 262 4201 mat sau - GB3 3 2216 382 3619EV 276. mat ghe duoi - GB3 2 2216 818 4201 mat truoc - GB3 3 2216 1200 4201 mat sau - GB3 3 2248 59 4619EV vien ghe - GB3 3 2248 554 4619EV mat ghe - GB3 3