我怎样才能从第一个表中提取第二个表?我需要提取那些恰好有三项费用的标题(在以下示例中:f1 和 f3)。我尝试使用数据透视表,但无法生成第二个表。任何建议都将不胜感激!
更新:我很感谢 Mike Honey 提供的解决方案。但是,由于我对 Power Query 语言完全不熟悉,因此我正在寻找一种不使用插件的解决方案。
该问题与以下问题有某些相似之处:Excel 2007 将多行转置/合并为一行;如何在 Excel 中将多行的值合并为一行?; 和excel-2010-将数据从多列行移动到单行。但是,这个问题的不同之处在于,要求不仅仅是转置和聚合数据,而且只对恰好具有三个成本的标题执行此操作。
答案1
我会使用 Power Query 插件来解决这个问题。需要几个步骤才能实现,还需要用 Power Query 语言 (M) 编写一些代码来生成获取“cost1/2/3”列标题所需的“运行计数”,还需要更多 M 代码来调用 Table.Pivot 函数(该函数未在 Power Query UI 中显示)。
我已经构建了一个原型,您可以查看或下载它 - 我的 One Drive 中的“Power Query 演示 - 使用 Running Count.xlsx 将行透视为列”:
https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398
基本上,我的技术是添加一个计算列来获取“成本标题”,例如 cost1/2/3。为了实现这一点,我需要编写一个“运行计数”函数,以返回针对每个组(标题)重置的索引。
我从这篇博文的“年初至今销售额”下获得了“运行计数”功能的概要:
http://cwebbbi.wordpress.com/2013/10/18/implementing-common-calculations-in-power-query/
然后我使用 Table.Pivot 函数为目标列中的每个唯一值生成一列。
Table.Pivot 的文档在这里:
http://office.microsoft.com/en-au/excel-help/table-pivot-HA104111995.aspx?CTT=5&origin=HA104122363
使用 Table.Pivot 的另一个示例如下:
http://cwebbbi.wordpress.com/2013/11/25/pivoting-data-in-power-query/
最后我过滤掉了没有 cost3 的行。