Excel Pivot

时间:2009-03-19 17:02:25

标签: excel pivot crosstab

我是一个excel newb,想知道excel是否具有内置功能以执行以下操作。

转动此数据:

Name  | Activity          | Option
Bob   | Monday Activities | Golf
Bob   | Tuesday Activities| Kayak
Marge | Monday Activities | Spa
John  | Tuesday Activities| Soccer
Liz   | Tuesday Activities| Spa

分为:

Name  | Monday Activities | Tuesday Activities
Bob   | Golf              | Kayak
Marge | Spa               |
John  |                   | Soccer
Liz   |                   | Spa

2 个答案:

答案 0 :(得分:1)

Excel将在其数据透视表功能中支持您所寻找的功能,该功能可将您提供的格式的数据转换为自定义的用户定义表格或图表。

Instructions for Excel 2003

Instructions for Excel 2007

该表将支持列出第一列中的唯一名称和第一行中的唯一活动,但对于选项,Excel无法知道如何显示它们并尝试将它们转换为数字,因为它可能每个名称/活动组合可以存在多个选项。

最后,有些人可能会建议你使用Excel的转置功能。这是通过选择表并复制它来完成的。然后,您可以右键单击空单元格并选择选择性粘贴,然后选择转置。这只会翻转行的列,而不是您要查找的行。

我建议您使用数据透视表功能,但请考虑将选项值转换为数字。

祝你好运!

答案 1 :(得分:1)

数据透视表允许您操纵和显示数字数据,而不是“皮划艇”之类的字符串,因此,虽然您可以非常轻松地创建数据透视表,但它只会计算/总结皮划艇,足球等的实例,不显示值。

您可以重新格式化数据,以生成一些可以近似显示所需输出的内容:

Name    Activity    Golf    Kayak   Soccer  Spa
Bob Monday  1
Bob Tuesday 1
Marge Monday 1 John Tuesday 1
Liz Tuesday 1
(上面可能无法正确显示,但如果使用选择性粘贴>文本粘贴到Excel中则会正确显示)

然而,即使这样,您仍然必须使用= GETPIVOTDATA和其他公式的组合来获得满意的结果。由于非常可能将错误引入数据(拼写,尾随空格等),因此可能会非常混乱。考虑到这一点,你需要重新格式化数据(如果你这样做,你也可以根据需要进行格式化),我猜这对你来说可能没用多少。

实现所需要的VBA非常重要,并且在很大程度上取决于数据的确切布局以及已知或可从其他地方提取的信息,例如:活动,名称。如果数据集不是很大,那么重新格式化的努力可能比尝试编程解决方案要少。