如何将 Excel 中的数据列表转换为参考表?

如何将 Excel 中的数据列表转换为参考表?

在 Excel 中,我有以下内容(类似 csv 的摘录):

groupname  origin    destination  speed winner
client1    paris    newyork      100 bob
client1    paris    tokyo        200 joe
client1    paris    london       100 
client1    tokyo    paris        213 kok
client1    tokyo    newyork      234 lok
client1    newyork  paris        233

我怎样才能将上述内容转换为 Client1 的速度表?

         paris    newyork    london    tokyo
paris             100, bob        100       200, joe
newyork  233
london
tokyo    213, kok      234, lok

我不知道该如何称呼它,但这与旧地图上的距离表非常相似。

因为我想报告结果表中的值,所以我不确定数据透视表是否是正确的选择。谢谢!

答案1

我会使用 Power Query 插件来解决这个问题。需要几个步骤才能实现,还需要使用 Power Query 语言 (M) 进行一些编码来调用 Table.Pivot 函数(该函数未在 Power Query UI 中显示)。

我已经构建了一个原型,您可以查看或下载它 - 我的 One Drive 中的“Power Query 演示 - 将行透视为列.xlsx”:

https://onedrive.live.com/redir?resid=4FA287BBC10EC562%21398

基本上,我的技巧是添加一个计算列来合并 Speed 和 Winner(例如 100,bob),并删除原始的 Speed 和 Winner 列。然后我使用 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/

答案2

您可以使用数据透视表快速完成此操作。只需选择所有数据(包括列标题)并单击Pivot Table功能Insert区即可。选择数据透视表的位置后,只需将字段拖放到数据透视表字段列表中,如下所示:

Report Filter: groupname
Row Labels: origin
Column Labels: destination
Values: speed ('Sum of' is what you want)

就这样就大功告成了。您只需client1从位于数据透视表上方的报告过滤器中进行选择即可。

在此处输入图片描述

您还可以更改数据透视表设置,以便不显示总计行和总计列。

相关内容