spotfire - 交叉表 - 计算两个嵌套列之间的差异
问题描述
我有一个交叉表如下 -
A 列 B 列 C 列
+================+===========+===========+===========+===========+===========+===========+
| Store Location | Category1 | Category2 | Category1 | Category2 | Category1 | Category2 |
+================+===========+===========+===========+===========+===========+===========+
| Boston | 200 | 100 | 250 | 230 | 230 | 210 |
+----------------+-----------+-----------+-----------+-----------+-----------+-----------+
| New York | 180 | 150 | 310 | 270 | 240 | 220 |
+----------------+-----------+-----------+-----------+-----------+-----------+-----------+
| Stockholm | 190 | 140 | 180 | 160 | 220 | 210 |
+----------------+-----------+-----------+-----------+-----------+-----------+-----------+
| London | 170 | 140 | 340 | 310 | 420 | 380 |
+----------------+-----------+-----------+-----------+-----------+-----------+-----------+
我想计算每个列的两个类别之间的差异,如下所示 -
列A 列A 差异 列B 列B 差异 列C 列C 差异
+================+===========+===========+=====+===========+===========+====+===========+===========+====+
| Store Location | Category1 | Category2 | | Category1 | Category2 | | Category1 | Category2 | |
+================+===========+===========+=====+===========+===========+====+===========+===========+====+
| Boston | 200 | 100 | 100 | 250 | 230 | 20 | 230 | 210 | 20 |
+----------------+-----------+-----------+-----+-----------+-----------+----+-----------+-----------+----+
| New York | 180 | 150 | 30 | 310 | 270 | 40 | 240 | 220 | 20 |
+----------------+-----------+-----------+-----+-----------+-----------+----+-----------+-----------+----+
| Stockholm | 190 | 140 | 50 | 180 | 160 | 20 | 220 | 210 | 10 |
+----------------+-----------+-----------+-----+-----------+-----------+----+-----------+-----------+----+
| London | 170 | 140 | 30 | 340 | 310 | 30 | 420 | 380 | 40 |
+----------------+-----------+-----------+-----+-----------+-----------+----+-----------+-----------+----+
我的水平轴表达式如下 -
[Axis.Default.Names] NEST [CategoryName]
需要使用什么自定义表达式来获取它?感谢任何建议。
非常感谢。
解决方案
我还没有在交叉表中找到一个很好的方法来做到这一点。有一种方法,但根据类别列中有多少不同的值,它有点混乱,您需要提前知道这些值。基本上在单元格值轴中,您将为您希望在水平轴上呈现的每一列编写自定义表达式。每个轴都是这样的:
垂直轴:[Store Names]
水平轴:(Column Names)
<--写成这样,或者从轴上的下拉菜单中选择
价值观轴:
sum(if([category]="A", [sales])) as [Sum of A],
sum(if([category]="B", [sales])) as [Sum of B],
sum(if([category]="A", [sales])) - sum(if([category]="B", [sales]) as [delta A-B]
只要您在其中一个轴上有“(列名)”,您就可以在值轴上编写用逗号分隔的独立表达式,以支持您进入混合计算,这些计算不会统一应用于其他任何内容轴。这有点麻烦,当您的数据中意外弹出新值时可能会导致问题,但它确实有效。不幸的是,它在标记方面并不好。祝你好运。
推荐阅读
- c# - 使用 Freespire.xls 添加空白行导入 csv
- python - 如何在 Windows 中的 python 中终止进程之前保存对象?
- entity-framework - 将 RegEx 添加到 Linq 方法语法
- mongodb - db.createIndex() 和 db.createIndexes() 之间的哪种方法更适合在 MongoDB 中创建多个索引?
- maven - Maven Asciidoctor 插件和外部图像目录
- java - Java - 为运行我的应用程序的每个用户确定公共路径
- python - 在 python 代码下格式化不正确
- python - 使用powershell执行的批处理文件在远程机器上启动python
- angular - Angular6更新查询参数没有路由
- equation - 如何求解两个多项式方程组?