【问题标题】:Pivot Table No calculation数据透视表 无计算
【发布时间】:2018-05-20 20:22:18
【问题描述】:

我有一个简单的数据集如下:

Name    Question    Answer
A       Allergy     Y
A       Cancer      N
A       Flu         N
B       Allergy     Y
B       Cancer      Y
B       Flu         N
C       Allergy     N
C       Flu         N

我想在表格中显示(在 excel 中)

      Allergy   Cancer Flu
A     Y            N   N
B     Y            Y   N
C     N                N

我想知道是否使用数据透视表是要走的路。如果没有,有没有办法使用我上面的格式显示数据?请注意,我上面介绍的数据集只是一个拥有百万条记录的数据库的简化版本。

我尝试在 Excel 中使用数据透视表,其中行中的名称、列中的问题和详细信息中的答案以及计算函数 Max。结果并没有像预期的那样发展。

请告知我应该如何调整结果以获得我想要的结果。我不需要执行任何计算,只需按原样显示结果即可。可能吗?

【问题讨论】:

  • 由于yn 是“布尔值”,它们在功能上等同于10。你能像这样切换它们并旋转它们吗?
  • 您是否尝试过谷歌搜索数据透视表教程?您有具体的编码问题吗?
  • @JNevill:好点。但是,有些答案不是二元的。我简化了答案。
  • 那是有道理的。我相信这可能与Pivot in Excel without aggregation, to show text, not numbers? 重复。不幸的是,如果没有那个权力枢纽,这里就没有很好的答案。个人会编写一些 VBA 来处理这个问题,但如果你对 VBA 不满意,它可能会变得很丑。
  • @JNevill:感谢您指出类似问题。所以答案是让它成为一个powerpivot。这确实很有帮助.. 非常感谢您为帮助新人获得卓越成就所做的努力,而不是仅仅批评它而没有任何建设性建议的人。

标签: excel pivot-table


【解决方案1】:

数据透视表需要值区域中的数字,因此在这种情况下它不是解决方案。

如果源数据表按名称升序排序,则可以通过公式得到结果。您可以使用数据透视表为从屏幕截图中的 E 列开始的结果表创建唯一名称列表。手动输入列标签,然后在F3中使用下面的公式,向下复制。

=VLOOKUP(G$2,INDEX($B:$B,MATCH($F3,$A:$A,0)):INDEX($C:$C,MATCH($F3,$A:$A,1)),2,FALSE)

【讨论】:

  • @teylin:有趣的解决方案......从来没有想过这样做,但它有效!谢谢!
【解决方案2】:

通过使用枢轴表,它是一个数字字段来放入值,否则它将计算每个类的发生次数。

所以我认为一个好的解决方案是为了让二元变量定义为如下:= 1如果是0否则

然后你会有这样的东西(偶然表):

【讨论】:

  • 谢谢响应。但是,真实数据库中的一些答案不是二进制文件,可以由是或否表示的。喜欢过敏什么样的过敏...... span>
  • 如果您可以分享您的简要样本,我将是尼斯 span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多