phuchuy9999
Thành viên mới

- Tham gia
- 5/11/17
- Bài viết
- 38
- Được thích
- 5
- Giới tính
- Nam
Tính theo tổng số lượng hay là từng số lượng 1.Chào các anh chị cao thủ, em đang cần trích xuất top 10 mã hàng bán chạy nhất theo số lượng bán ra, chú ý là bảng dữ liệu bán hàng cập nhật thêm mỗi ngày chứ ko phải tổng kết cuối năm.Mong các anh chị xem qua và hỗ trợ giúp em
View attachment 195009
em cần tính theo tổng số lượng đã bán ra , ví dụ 1 mã hàng sẽ bán nhiều lần và mỗi lần số lượng khác nhau, em cần biết 10 mã hàng có tổng số lượng bán nhiều nhấtTính theo tổng số lượng hay là từng số lượng 1.
Thêm 1 cột phụ nhé bạn:em cần tính theo tổng số lượng đã bán ra , ví dụ 1 mã hàng sẽ bán nhiều lần và mỗi lần số lượng khác nhau, em cần biết 10 mã hàng có tổng số lượng bán nhiều nhất
Cảm ơn anh/chị đã nhiệt tình hỗ trợThêm 1 cột phụ nhé bạn:
Thằng B00015 có tổng số lượng = 30 sao không lọt vào top 10?Thêm 1 cột phụ nhé bạn:
anh/chị cho em hỏi , sao top 8 9 đều cùng 1 mã spThêm 1 cột phụ nhé bạn:
anh/chị xem giúp em có cách nào hoàn thiện hơn koanh/chị cho em hỏi , sao top 8 9 đều cùng 1 mã sp
anh cho em hỏi nếu dùng pivot table thì mình nên làm thế nào để dữ liệu luôn đồng bộ theo dữ liệu bán hàng cập nhật mỗi ngàyThằng B00015 có tổng số lượng = 30 sao không lọt vào top 10?
Bài này dùng PivotTable mới cho kết quả chính xác được
File đã sửa và cập nhật cả pivot bạn xem thử.anh/chị cho em hỏi , sao top 8 9 đều cùng 1 mã sp
Cũng tùy ý tác giả hay cấp trênThằng B00015 có tổng số lượng = 30 sao không lọt vào top 10?
Bài này dùng PivotTable mới cho kết quả chính xác được
cảm ơn anh/chị đã hỗ trợ thêmFile đã sửa và cập nhật cả pivot bạn xem thử.
em đã thử bỏ ô tham chiếu A5 trong ngoặc ROW thấy vẫn hoạt động được , ko biết có ảnh hưởng gì đến kết quả ko anh/chịFile đã sửa và cập nhật cả pivot bạn xem thử.
bỏ A5 mà còn row() cũng đượcem đã thử bỏ ô tham chiếu A5 trong ngoặc ROW thấy vẫn hoạt động được , ko biết có ảnh hưởng gì đến kết quả ko anh/chị
Góp vui thêm công thức không dùng bảng phụ:Chào các anh chị cao thủ, em đang cần trích xuất top 10 mã hàng bán chạy nhất theo số lượng bán ra, chú ý là bảng dữ liệu bán hàng cập nhật thêm mỗi ngày chứ ko phải tổng kết cuối năm.Mong các anh chị xem qua và hỗ trợ giúp em
View attachment 195009
K2=OFFSET($D$1,ROUND(1/MOD(AGGREGATE(14,6,(SUMIF($D$2:$D$31,$D$2:$D$31,$E$2:$E$31)+1/$C$2:$C$31)/(COUNTIF(OFFSET($D$2,,,$C$2:$C$31),$D$2:$D$31)=1),$J2),1),),)
Gửi bạn file theo cách làm của tôi, nếu bạn muốn cập nhật data mỗi ngày, bạn vô PivotTable Tools => Analyze => Refresh hoặc Change Data Source nhé.anh cho em hỏi nếu dùng pivot table thì mình nên làm thế nào để dữ liệu luôn đồng bộ theo dữ liệu bán hàng cập nhật mỗi ngày
cảm ơn bạnGửi bạn file theo cách làm của tôi, nếu bạn muốn cập nhật data mỗi ngày, bạn vô PivotTable Tools => Analyze => Refresh hoặc Change Data Source nhé.
cảm ơn bạnGóp vui thêm công thức không dùng bảng phụ:
Xem file kèm.Mã:K2=OFFSET($D$1,ROUND(1/MOD(AGGREGATE(14,6,(SUMIF($D$2:$D$31,$D$2:$D$31,$E$2:$E$31)+1/$C$2:$C$31)/(COUNTIF(OFFSET($D$2,,,$C$2:$C$31),$D$2:$D$31)=1),$J2),1),),)
hihi ^o^
Góp vui thêm công thức không dùng bảng phụ:
Xem file kèm.Mã:K2=OFFSET($D$1,ROUND(1/MOD(AGGREGATE(14,6,(SUMIF($D$2:$D$31,$D$2:$D$31,$E$2:$E$31)+1/$C$2:$C$31)/(COUNTIF(OFFSET($D$2,,,$C$2:$C$31),$D$2:$D$31)=1),$J2),1),),)
hihi ^o^
Anh Tuân lần này bị "thầy chấm điểm" trừ rồi vì ra kết quả sai với đề bài.Kết quả không chính xác. Công thức nếu đùng thì kết quả hiển thị phải là:
1 A00002 7,800,000.00
2 A00003 7,000,000.00
3 A00007 3,800,000.00
4 A00008 3,600,000.00
5 B00013 2,850,000.00
6 B00014 2,800,000.00
7 B00012 2,600,000.00
8 A00004 2,250,000.00
9 A00005 1,800,000.00
10 A00006 1,200,000.00
Lâu lâu anh em mình đều bị như vậy cả!em đang cần trích xuất top 10 mã hàng bán chạy nhất theo số lượng bán ra,
Chúc anh ngày vui.Nếu căn cứ vào số lượng bán để đánh giá cáo thấp thì kết quả là:
1 A00002 130.00
2 A00003 100.00
3 B00014 80.00 (cùng số 80 nhưng sẽ xuống sắp dưới)
4 A00008 80.00 (cùng số 80 nhưng sẽ xuống sắp dưới)
5 A00006 80.00 (cùng số 80 nhưng sẽ lên trên)
6 A00005 60.00
7 A00004 45.00
8 B00012 40.00
9 A00007 40.00
10 B00015 30.00 (cùng số 30 nhưng sẽ xuống sắp dưới)
11 B00013 30.00 (cùng số 30 nhưng sẽ lên trên)
Kết quả không chính xác. Công thức nếu đùng thì kết quả hiển thị phải là:
1 A00002 7,800,000.00
2 A00003 7,000,000.00
3 A00007 3,800,000.00
4 A00008 3,600,000.00
5 B00013 2,850,000.00
6 B00014 2,800,000.00
7 B00012 2,600,000.00
8 A00004 2,250,000.00
9 A00005 1,800,000.00
10 A00006 1,200,000.00
Sub Top_10()
With CreateObject("ADODB.Connection")
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended properties=Excel 12.0"
Range("K2").CopyFromRecordset .Execute("Select Top 10 Masp, sum(SoLuong), Sum(ThanhTien) from [Sheet1$] Group by Masp order by sum(SoLuong) desc,Sum(ThanhTien) desc")
End With
End Sub
Anh Tuân lần này bị "thầy chấm điểm" trừ rồi vì ra kết quả sai với đề bài.
Lâu lâu anh em mình đều bị như vậy cả!
Riêng công thức còn sắp thứ tự dòng xuất hiện trước hay sau nữa
Chúc anh ngày vui.
hihi ^o^
Cảm ơn anh đã giúp cho anh em diễn đàn nói chung, và cho công ty Lâm Thanh (Saigon) nói riêng.Hihi. Mình quên không chú ý phần sắp xếp cả theo mã hàng. Vậy alf công thức của Mộng Thường 2001 chính xác rồi nhé. Công thức siêu đấy.
Nếu bạn nào muốn dùng SQL thì công thức sẽ là:
=bs_Sql("SELECT TOP 10 RECNO(),[MÃ SP], SUM([SỐ LƯỢNG]) FROM DT GROUP BY [MÃ SP] ORDER BY SUM([SỐ LƯỢNG]) DESC, [MÃ SP] ")
cảm ơn anh chịAnh Tuân lần này bị "thầy chấm điểm" trừ rồi vì ra kết quả sai với đề bài.
Lâu lâu anh em mình đều bị như vậy cả!
Riêng công thức còn sắp thứ tự dòng xuất hiện trước hay sau nữa
Chúc anh ngày vui.
hihi ^o^
cảm ôn công thức của anh/ chị, e được dịp mở mang tầm mắtGóp vui thêm công thức không dùng bảng phụ:
Xem file kèm.Mã:K2=OFFSET($D$1,ROUND(1/MOD(AGGREGATE(14,6,(SUMIF($D$2:$D$31,$D$2:$D$31,$E$2:$E$31)+1/$C$2:$C$31)/(COUNTIF(OFFSET($D$2,,,$C$2:$C$31),$D$2:$D$31)=1),$J2),1),),)
hihi ^o^
Dùng ADO nó sẽ ra như sau:
View attachment 195149
Mã:Sub Top_10() With CreateObject("ADODB.Connection") .Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.FullName & ";Extended properties=Excel 12.0" Range("K2").CopyFromRecordset .Execute("Select Top 10 Masp, sum(SoLuong), Sum(ThanhTien) from [Sheet1$] Group by Masp order by sum(SoLuong) desc,Sum(ThanhTien) desc") End With End Sub
Bạn gửi file của bạn tôi xem thử nhé.cái này có viết thêm code nào khác trong file nữa không anh, sao em chạy code báo lỗi (màu vàng) tại dòng Range("K2").CopyFromRecordset .Execute("Select Top 10 Masp, sum(SoLuong), Sum(ThanhTien) from [Sheet1$] Group by Masp order by sum(SoLuong) desc,Sum(ThanhTien) desc")
Em thử trên file mẫu của chủ bài đăng này luôn mà không được anhBạn gửi file của bạn tôi xem thử nhé.
Bạn chụp hình lỗi hiển thị lên đây cho tôi xem thử nhé.Em thử trên file mẫu của chủ bài đăng này luôn mà không được anh
Sửa lại dòng tiêu đề theo code là được.Em thử trên file mẫu của chủ bài đăng này luôn mà không được anh
STT | Masp | Soluong | Dongia | ThanhTien |
Bạn chụp hình lỗi hiển thị lên đây cho tôi xem thử nhé.
Sửa lại dòng tiêu đề theo code là được.
STT Masp Soluong Dongia ThanhTien