尝试在Excel中使用第一列对第二列中的值进行分组来转置两列表


1

我在Microsoft Excel 2016中有两列表,该表仅在第一列中列出费用类别,在第二列中列出费用金额。费用类别不是唯一的,并且会重复多次。

我要查找的输出将具有唯一的费用类别作为列标题,并在该特定费用类别下列出所有费用值。

我尝试使用Excel查询进行此操作。经过两个默认查询步骤后,我的第一步是按“类别”列对行进行分组,在本例中,新列名设置为“ CategoryValues”,并且该列中的操作为“所有行”。这将在第一列中生成具有唯一类别的表,并在第二列中生成对表的引用。下一步是转置表格并将第一行提升为标题。经过这两个步骤后,我得到了具有唯一标题的唯一类别,每列的第一行数据包含对另一个表的表引用,其中第一列是唯一类别,并且值仅在该类别中。

图片1

此外,我可以单击一个表引用,这将使我进入上述表的特定类别。第一列可以删除,剩下的是单一类别列,其中的值列为行。

图片2

这正是我要实现的目标,但涉及所有类别。

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编程来完成。
罗恩·罗森菲尔德

Answers:


0

将此非常好的引用应用于您的Q,这是我的版本。假设所述数据在A1:B21中。

  1. 选择A列并将其复制到D列(空列)。使用数据>删除重复项,以从列表中获取唯一值。我们进入D1:D7:

D1 ---> Category D2 ---> Toll D3 ---> DEF D4 ---> Fax D5 ---> Scale D6 ---> Adv. Fee D7 ---> Oil

  1. 然后选择唯一值,复制。然后在F1上单击鼠标右键,然后选择“移调”。(它将复制的列数据粘贴为行。.因此,在F1:K1中,我们将得到:

F1 ---> Toll G1 ---> DEF H1 ---> Fax I1 ---> Scale J1 ---> Adv. Fee K1 ---> Oil

  1. 在F2中,然后按Ctrl + Shift + Enter:

=IFERROR(INDEX($B:$B,SMALL(IF($A:$A=F$1,ROW($B:$B)-MIN(ROW($B:$B))+1),$E2)),"")

  1. 然后将其拖动到K9。完成。

希望能帮助到你.. (:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.