Xin các cao thủ giúp đỡ làm lại bảng dữ liệu bằng power query

Liên hệ QC

TomBui

Thành viên mới
Tham gia
26/6/16
Bài viết
15
Được thích
1
Em có một bảng tính gồm rất nhiều loại hàng, em muốn dùng power query để lọc ra những loại hàng đang làm và tính điểm chỉ tiêu. Các các giúp em với. Cám ơn mọi người trước!
Dưới đây là mẫu bảng em muốn thông qua power query để làm ra:
1655889704539.png
 

File đính kèm

  • Làm bảng tính.xlsx
    28.4 KB · Đọc: 28
Tôi làm đến đây và bạn làm tiếp:
HTML:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Filled Down" = Table.FillDown(Source,{"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Filled Down",{{"Độ dày (um)", type text}, {"Kích thước", type text}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước", "Loại"}, "Attribute", "Value"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Columns", "Mặt hàng", each [#"Một/Hai kính"] & "/" & [Loại pin] & "/" & [#"Độ dày (um)"] & "/" &[Kích thước]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Tổn hao", "Mặt hàng", "Loại", "Attribute", "Value"}),
    #"Grouped Rows" = Table.Group(#"Reordered Columns", {"Tổn hao", "Mặt hàng", "Loại"}, {{"Value", each List.Sum([Value]), type any}}),
    #"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each ([Loại] <> null and [Loại] <> "Tổn hao")),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Loại]), "Loại", "Value", List.Sum)
in
    #"Pivoted Column"
1655942371249.png
 
Tôi làm đến đây và bạn làm tiếp:
HTML:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Filled Down" = Table.FillDown(Source,{"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Filled Down",{{"Độ dày (um)", type text}, {"Kích thước", type text}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước", "Loại"}, "Attribute", "Value"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Columns", "Mặt hàng", each [#"Một/Hai kính"] & "/" & [Loại pin] & "/" & [#"Độ dày (um)"] & "/" &[Kích thước]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Tổn hao", "Mặt hàng", "Loại", "Attribute", "Value"}),
    #"Grouped Rows" = Table.Group(#"Reordered Columns", {"Tổn hao", "Mặt hàng", "Loại"}, {{"Value", each List.Sum([Value]), type any}}),
    #"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each ([Loại] <> null and [Loại] <> "Tổn hao")),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Loại]), "Loại", "Value", List.Sum)
in
    #"Pivoted Column"
View attachment 277774
Mình cũng mày mò làm được đến cột tổn hao rồi, chỉ là cột tỉ trọng và điểm số cần đặt công thức. Nhưng trong power query công thức không áp dụng giống bảng tính excel bên ngoài.
Ví dụ: Tỉ trọng = Số lượng hàng một kính/P4/180/166 : Sum(tất cả các loại hàng)
Nên mong muốn mọi người hỗ trợ thêm hai cột đó.
Trân trọng!
 
Ví dụ: Tỉ trọng = Số lượng hàng một kính/P4/180/166 : Sum(tất cả các loại hàng)
Thêm 3 câu
Mã:
    RemovedColumns1 = Table.RemoveColumns(#"Pivoted Column",{"Hàn hỏng", "Cắt hỏng", "Lỗi NVL"}),
    SumSL = List.Sum(RemovedColumns1[Số lượng đưa vào]),
    AddTyTrong = Table.AddColumn(RemovedColumns1,"TyTrong", each [Số lượng đưa vào]/ SumSL)
 
Thêm 3 câu
Mã:
    RemovedColumns1 = Table.RemoveColumns(#"Pivoted Column",{"Hàn hỏng", "Cắt hỏng", "Lỗi NVL"}),
    SumSL = List.Sum(RemovedColumns1[Số lượng đưa vào]),
    AddTyTrong = Table.AddColumn(RemovedColumns1,"TyTrong", each [Số lượng đưa vào]/ SumSL)
Bạn ơi, có thể gửi mình file excel mà bạn sửa được không? Mình làm cứ bị báo lỗi ở AddTytrong.
 
Hình trên là pivot, ý mình hỏi bạn ptm là có thể hoà ô được trong power query không ấy.
Sao mình làm kiểu gì nó cũng ra thế này, mà không ra số giống của bạn nhỉ?
Cái cột mục tiêu toàn ra 0.01

Tổn haoMặt hàngCắt hỏngHàn hỏngLỗi NVLMục tiêuSố lượng đưa vàoTổn haoTổng lỗi
Tổn hao pinHai kính/Đơn tinh/160/166---0.01---
Hai kính/Đơn tinh/160/182---0.01---
Hai kính/Đơn tinh/160/210-------
Hai kính/Đơn tinh/165/166---0.01---
Hai kính/Đơn tinh/165/182---0.01---
Hai kính/Đơn tinh/165/210---0.01---
Hai kính/Đơn tinh/170/166---0.01---
Hai kính/Đơn tinh/170/182---0.01---
Hai kính/Đơn tinh/170/210---0.01---
Hai kính/P4/180/166---0.01---
Một kính/Đơn tinh/160/16690.00924.00166.000.01368,380.000.011,180.00
Một kính/Đơn tinh/160/210-------
Một kính/Đơn tinh/165/1663,318.0026,140.003,920.000.0115,954,014.000.0133,378.00
Một kính/Đơn tinh/165/182---0.01---
Một kính/Đơn tinh/165/210---0.01---
Một kính/Đơn tinh/170/1666,908.0044,724.007,518.000.0136,769,646.000.0158,512.00
Một kính/Đơn tinh/170/182---0.01---
Một kính/Đơn tinh/170/210---0.01---
Một kính/Đơn tinh/175/210---0.01---
Một kính/P4/180/166---0.01---
Một kính/P5/182/166---0.01---
 
Sao mình làm kiểu gì nó cũng ra thế này, mà không ra số giống của bạn nhỉ?
Cái cột mục tiêu toàn ra 0.01

Tổn haoMặt hàngCắt hỏngHàn hỏngLỗi NVLMục tiêuSố lượng đưa vàoTổn haoTổng lỗi
Tổn hao pinHai kính/Đơn tinh/160/166---0.01---
Hai kính/Đơn tinh/160/182---0.01---
Hai kính/Đơn tinh/160/210-------
Hai kính/Đơn tinh/165/166---0.01---
Hai kính/Đơn tinh/165/182---0.01---
Hai kính/Đơn tinh/165/210---0.01---
Hai kính/Đơn tinh/170/166---0.01---
Hai kính/Đơn tinh/170/182---0.01---
Hai kính/Đơn tinh/170/210---0.01---
Hai kính/P4/180/166---0.01---
Một kính/Đơn tinh/160/16690.00924.00166.000.01368,380.000.011,180.00
Một kính/Đơn tinh/160/210-------
Một kính/Đơn tinh/165/1663,318.0026,140.003,920.000.0115,954,014.000.0133,378.00
Một kính/Đơn tinh/165/182---0.01---
Một kính/Đơn tinh/165/210---0.01---
Một kính/Đơn tinh/170/1666,908.0044,724.007,518.000.0136,769,646.000.0158,512.00
Một kính/Đơn tinh/170/182---0.01---
Một kính/Đơn tinh/170/210---0.01---
Một kính/Đơn tinh/175/210---0.01---
Một kính/P4/180/166---0.01---
Một kính/P5/182/166---0.01---
cái đó là do dữ liệu ảnh mẫu khác thời điểm với dữ liệu trong file excel nên số liệu khác nhau, file ảnh là trước đó tớ làm thủ công kết hợp với pivot. Tớ up lên ý muốn đưa dữ liệu về form mẫu như vậy.
 
cái đó là do dữ liệu ảnh mẫu khác thời điểm với dữ liệu trong file excel nên số liệu khác nhau, file ảnh là trước đó tớ làm thủ công kết hợp với pivot. Tớ up lên ý muốn đưa dữ liệu về form mẫu như vậy.
Query mình đang làm nó ra thế này?
Không hiểu sao đẩy được cái cột Loại nó thành chỉ tiêu ngang thế kia nhỉ?
Dạng như mình đang làm này là dùng Pivot tập hợp,
Chưa hiểu ý định của bạn làm gì mà đẩy nó kiểu pivot trên query luôn vậy.
1655966625945.png
Bài đã được tự động gộp:

Tôi làm đến đây và bạn làm tiếp:
HTML:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Filled Down" = Table.FillDown(Source,{"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Filled Down",{{"Độ dày (um)", type text}, {"Kích thước", type text}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước", "Loại"}, "Attribute", "Value"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Columns", "Mặt hàng", each [#"Một/Hai kính"] & "/" & [Loại pin] & "/" & [#"Độ dày (um)"] & "/" &[Kích thước]),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"Tổn hao", "Mặt hàng", "Loại", "Attribute", "Value"}),
    #"Grouped Rows" = Table.Group(#"Reordered Columns", {"Tổn hao", "Mặt hàng", "Loại"}, {{"Value", each List.Sum([Value]), type any}}),
    #"Filtered Rows" = Table.SelectRows(#"Grouped Rows", each ([Loại] <> null and [Loại] <> "Tổn hao")),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[Loại]), "Loại", "Value", List.Sum)
in
    #"Pivoted Column"
View attachment 277774
Em làm theo các bước của bác nhưng đến bước này hình như sai hay sao ấy ạ
 

File đính kèm

  • 1655967565698.png
    1655967565698.png
    299.6 KB · Đọc: 6
Lần chỉnh sửa cuối:
Em làm theo các bước của bác nhưng đến bước này hình như sai hay sao ấy ạ
Bước Unpivot của tôi là
Mã:
= Table.UnpivotOtherColumns(#"Changed Type", {"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước", "Loại"}, "Attribute", "Value")
Của bạn thiếu "Loại" nên Loại trở thành 1 atttribute


Mình làm được rồi cám ơn bạn. Hỏi thêm mình có thể hoà ô đầu tiên "Tỉ lệ tổn hao" như hình dưới trong power query không?
Không.
Thử tạo pivot table từ query mới tạo.

1655972202721.png
 
Bước Unpivot của tôi là
Mã:
= Table.UnpivotOtherColumns(#"Changed Type", {"Tổn hao", "Một/Hai kính", "Loại pin", "Độ dày (um)", "Kích thước", "Loại"}, "Attribute", "Value")
Của bạn thiếu "Loại" nên Loại trở thành 1 atttribute



Không.
Thử tạo pivot table từ query mới tạo.

View attachment 277786
Bác cho em hỏi thêm chút ạ,
Nếu để dạng cột như thế kia ở query lúc dùng pivot nó vẫn ra được ạ,
Em thấy để các chỉ tiêu số lượng đưa vào, hàn.... ở dạng 1 cột thì dùng được pivot chứ ạ.
 
Bác cho em hỏi thêm chút ạ,
Nếu để dạng cột như thế kia ở query lúc dùng pivot nó vẫn ra được ạ,
Em thấy để các chỉ tiêu số lượng đưa vào, hàn.... ở dạng 1 cột thì dùng được pivot chứ ạ.
Bạn thử xem. Tôi thấy rằng làm như vậy không tính được tỷ trọng và cột tính điểm
 
Query mình đang làm nó ra thế này?
Không hiểu sao đẩy được cái cột Loại nó thành chỉ tiêu ngang thế kia nhỉ?
Dạng như mình đang làm này là dùng Pivot tập hợp,
Chưa hiểu ý định của bạn làm gì mà đẩy nó kiểu pivot trên query luôn vậy.
View attachment 277780
Bài đã được tự động gộp:


Em làm theo các bước của bác nhưng đến bước này hình như sai hay sao ấy ạ
Mình làm theo hướng dẫn của bạn ptm ra được kết quả mà, bác xem file đính kèm nhé.
 

File đính kèm

  • Làm bảng tính.xlsx
    31 KB · Đọc: 7
Mình cũng đi theo hướng này,
Nhưng không hiểu sao bạn kia lại để dạng Pivot trong query
sau đó lại làm công thức ở query luôn,
Chưa hiểu mục đích chính là gì.
:)))))))
Thì bạn ấy tính toán luôn bằng Power query, cũng sao đâu, power query vẫn tính toán bình thường mà. Tuy nhiên theo ý kiến của tôi thì Power Query nó mạnh về ETL, còn tính toán thì nên là công việc của Power Pivot(Cái này trực quan và tùy biến nó dễ hơn)
 
Web KT
Back
Top Bottom