Tìm các sản phẩm có doanh thu cao nhất theo từng nhóm hàng (sử dụng Power Query)

Liên hệ QC
Tham gia
17/9/12
Bài viết
1,350
Được thích
1,571
Giới tính
Nữ
Chào các anh chị ạ
Hiện em có dữ liệu như file đính kèm
1717213303431.png
Dựa vào cột doanh thu em muốn tìm theo từng nhóm mỗi nhóm một vài mặt hàng có doanh thu lớn nhất, Số lượng mặt hàng cần lấy tại mỗi nhóm là khác nhau
1717213130749.png

Em đã giải bài toán này bằng hàm và cũng có tìm hiểu để thử giải bằng Power Query nhưng đoạn COUNTIFS với điều kiện >= doanh thu thì em chưa tìm được giải pháp. Kính mong anh chị em trong diễn đàn hỗ trợ em giải quyết bài toán này bằng Power Query ạ. Em xin chân thành cảm ơn
 

File đính kèm

  • Tìm TOP các sản phẩm có doanh thu cao nhất.xlsx
    169.7 KB · Đọc: 21
Có vẻ không ổn. Nhóm 1 liệt kê cả 2 SP F và G, trong khi 2 SP đó thuộc Top 3

1717947368556.png

Code bài 18 của bạn:
1717947529634.png
Nếu tôi làm bằng vòng lặp như bài 17 thì sửa rất ít
JavaScript:
let  
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    GrNum = {0..List.Count(TopTable[TOP])-1},    
    DataN = List.Transform (GrNum, (n) =>
    let
        Filter = Table.SelectRows(Source, each ([Nhóm sản phẩm] = TopTable[Nhóm]{n})),
        AddRank = Table.AddRankColumn(Filter,"Rank",{"Doanh thu",1},[RankKind = 0]),
        TopN = Table.SelectRows(AddRank,each [Rank] > TopTable[TOP]{n}),
        AddRank2 = Table.AddRankColumn(TopN,"Thứ hạng",{"Doanh thu",0},[RankKind = 0]),
        DelCol = Table.RemoveColumns(AddRank2,{"Rank"})
    in
        DelCol),
    Result =  Table.Combine(DataN)
in
    Result
 
Đúng đó anh. Nhưng cách giải của anh thì ngắn hơn thật.
Bạn có sửa code không? Nếu không sửa thì phải test kiểu 2 lớn nhất hạng 1, 2 lớn nhì hạng 3 cho thành 4 dòng. Khi đó số còn lại có bị lặp lại hay không (như hình bài 21). Tôi thườngsửa đủ kiểu dữ liệu để test chứ không chỉ test 1 dữ liệu mẫu.
Theo tôi thì tạo vòng lặp dễ hơn vì tôi làm 3 bước:
- Bước 1 tạo query hoàn chỉnh cho 1 nhóm. Tham số chạy cứng là giá trị nào đó. Kiểm tra kết quả
- Bước 2 cho code hoàn chỉnh đó vào vòng lặp
- Bước 3 sửa thông số nào liên quan đến biến chạy.
 
Web KT
Back
Top Bottom