我在Microsoft Excel 2016中有两列表,该表仅在第一列中列出费用类别,在第二列中列出费用金额。费用类别不是唯一的,并且会重复多次。
我要查找的输出将具有唯一的费用类别作为列标题,并在该特定费用类别下列出所有费用值。
我尝试使用Excel查询进行此操作。经过两个默认查询步骤后,我的第一步是按“类别”列对行进行分组,在本例中,新列名设置为“ CategoryValues”,并且该列中的操作为“所有行”。这将在第一列中生成具有唯一类别的表,并在第二列中生成对表的引用。下一步是转置表格并将第一行提升为标题。经过这两个步骤后,我得到了具有唯一标题的唯一类别,每列的第一行数据包含对另一个表的表引用,其中第一列是唯一类别,并且值仅在该类别中。
此外,我可以单击一个表引用,这将使我进入上述表的特定类别。第一列可以删除,剩下的是单一类别列,其中的值列为行。
这正是我要实现的目标,但涉及所有类别。
let
Source = Excel.Workbook(File.Contents("C:\Users\Pancake\Documents\TestQuery.xlsx"), null, true),
TblExpenses_Table = Source{[Item="TblExpenses",Kind="Table"]}[Data],
#"Grouped Rows" = Table.Group(TblExpenses_Table, {"Category"}, {{"CategoryValues", each _, type table}}),
#"Transposed Table" = Table.Transpose(#"Grouped Rows"),
#"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
#"Adv Fee" = #"Promoted Headers"{0}[Adv. Fee],
#"Removed Columns" = Table.RemoveColumns(#"Adv Fee",{"Category"})
in
#"Removed Columns"
这是一个示例数据
Category Amount
Toll 3.65
Toll 4.8
Toll 120.35
Toll 10
DEF 23.32
DEF 15
Toll 13.25
Toll 122.35
DEF 8.66
Fax 2
Fax 2
Scale 11
Scale 2
Toll 3.5
Adv. Fee 0.99
Adv. Fee 12.95
Oil 17.98
Fax 2
Fax 5
DEF 30
我不知道如何使用Power Query进行此操作,但是可以通过VBA编程来完成。
—
罗恩·罗森菲尔德