计算列通常为数据表中的每一行生成新值;自定义表达式通常控制图表如何分组和计算;聚合则把多行数据汇总成一个结果。三者解决的问题和计算粒度不同。
计算列适合什么场景?
当每条记录都需要一个新属性时,可以使用计算列,例如根据实际值和目标值计算偏差、把连续数值划分为等级,或根据日期生成月份字段。

计算列会成为数据表的一部分,可供多个图表、筛选和后续表达式使用。创建后应检查数据类型、空值和异常输入。
自定义表达式适合什么场景?
自定义表达式更常用于图表轴、颜色或其他属性,决定当前图表如何计算和展示数据。例如按产品显示平均值、计算占比,或使用 OVER 表达式比较当前数据切片与其他切片。

表达式结果会受到图表分割方式、筛选和聚合粒度影响。同一个表达式放在不同图表中,结果可能不同。
什么是聚合?
求和、平均值、计数、最小值和最大值都是常见聚合。聚合把当前数据切片中的多行记录汇总为一个图形标记或表格单元格。
选择聚合前先明确指标含义。例如良率不能简单平均已经汇总过的百分比,通常应回到分子和分母重新计算。
怎样选择?
- 每行都要得到稳定的新字段:计算列。
- 只需要控制某张图表的计算:自定义表达式。
- 需要把多行汇总成指标:聚合。
- 需要复杂算法或外部脚本:再考虑数据函数。
常见问题
为什么图表总计与明细计算列相加不一致?
检查筛选、空值、聚合方式和计算顺序。先聚合再计算与先逐行计算再聚合可能得到不同结果。
如何验证表达式?
先用小范围数据和表图表核对,确认每个分组结果,再应用到完整数据。计算新列时可使用预览检查表达式和原始列值。
Spotfire 入门系列