首页 > 解决方案 > 压缩数据以将所有数据放在 ID 行

问题描述

我正在尝试使用某种管理数据在 Excel 中的表格中压缩数据。否则我可以尝试使用 VBA。数据表有一个 ID 列,一个指示子表的列,其余列根据数据是否来自该子表来填充。我不关心子表,我只想要同一行上的所有数据。
总是有相同数量的子表,并且子表总是在相同的列中有数据。

原件: Original_Table

想要: Final_Table

标签: exceldata-modeling

解决方案


我想出了一个解决方案,虽然不优雅。我删除了子表列(对象名称),然后我“取消透视数据”,这删除了空值,并给我留下了一个 ID #s(跟踪 ID)属性和值的表。

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Tracking #", type text}, {"Object Name", type text}, ... blah blah ... type any}}), #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"Object Name"}), #"Unpivoted Columns" = Table。 UnpivotOtherColumns(#"Removed Columns", {"Tracking #"}, "Attribute", "Value") in #"Unpivoted Columns"

然后回到 Excel 中,我复制了唯一的 ID 列和唯一的属性标题,并进行了匹配和查找。

=INDEX(Table1_2[Value],MATCH($G2&H$1,Table1_2[Column1],0))

(第 1 列是 ID # 和属性的连接;G2 = ID # 和 H1 = 属性。)


推荐阅读