所以我有一个Excel文件,其中第一列是捐赠者,然后有成对的列,分别代表10年的金额和日期,如下所示:
Donor Name 2019 Amt 2019 Date 2018 Amt 2018 Date 2017 Amt 2017 Date
------------- -------- ---------- -------- ---------- -------- ----------
Someone Here 50 08/21/2019
Someone Else 150 06/15/2019 75 05/04/2018
Another One 125 03/03/2017
我正在寻找的是:
Donor Name Amount Date
------------ ------ ----------
Someone Here 50 08/21/2019
Someone Else 150 06/15/2019
Someone Else 75 05/04/2018
Another One 125 03/03/2017
当我只取消透视Donor名称以外的列时,我会为每个条目获得成对的记录。它更接近我要寻找的内容,但不确定如何将其转换为上面的内容。也许轮换不是答案?
答案 0 :(得分:1)
您需要取消透视这些列,然后将其向后旋转。
1)取消Donor Name
= Table.UnpivotOtherColumns(#"Changed Type", {"Donor Name "}, "Attribute", "Value")
2)用空格分隔符或前4个字符分隔Attribute
列(稍后需要年份值)。确保标头名称中没有开头或结尾空格。
= Table.SplitColumn(#"Unpivoted Other Columns", "Attribute",
Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv),
{"Attribute.1", "Attribute.2", "Attribute.3"})
3)删除Attribute.3
列,但保留Attribute.1
列,以防同一捐赠者的数据跨越数年(在本示例中为Someone Else
)
= Table.RemoveColumns(#"Split Column by Delimiter",{"Attribute.3"})
4)向后旋转。根据{{1}}
旋转Attribute.2
Value
5)(可选)= Table.Pivot(#"Removed Columns",
List.Distinct(#"Removed Columns"[Attribute.2]), "Attribute.2", "Value")
列,该列包含年份信息,现在可以根据需要删除
Attribute.1