TIBCO Cloud™ Spotfire® Business Author 用户指南

计算表达式

根据计算列的表达式的设置方式,将在数据表中按行计算该表达式,或者在整个列中从上到下进行计算。表达式还可以合并这些计算。

为说明不同表达式设置的解释方式,我们使用下面包含四行的数据表。


表

该数据表包含四种水果种类的采购数据和销售数据。最右侧两列显示在两个不同水果摊销售的水果数量。

按行计算

在下图中,向数据表添加了两个计算列。所使用的表达式基于 Sales 列和 Purchase 列。第一列 [Sales]-[Purchase] 的表达式计算每种水果种类的绝对利润,第二列 [Sales]/[Purchase] 的表达式计算相对利润。

这些表达式按行进行计算。它们不包含任何聚合;Sales 列和 Purchase 列中的各个行值会插入到表达式中。例如,在最后一行中,[Sales]-[Purchase] 列显示 15 (40-25),[Sales]/[Purchase] 列显示 1.60 (40/25)。


各个行中的计算列

但是,如果在表达式中使用聚合,则必须记录聚合中包含哪些数据以了解计算中使用哪些值,这点很重要。

在下一个图像中,计算 Sum([Stand 1], [Stand 2]) 列和 Avg([Stand 1], [Stand 2]) 列。如果与这些表达式一样在括号内为聚合方法指定两个或更多列,则表达式将按行进行计算。

表达式 Sum([Stand 1], [Stand 2]) 计算每种水果种类的销售总数。例如,在最后一行中,总和为 37 (22+15)。另一个表达式 Avg([Stand 1], [Stand 2]) 计算每个水果摊每种水果种类的平均销售数量,例如 Conference pears 的计算结果为 18.50 ((22+15)/2)。



注: 表达式 [Stand 1]+[Stand 2] 将返回与表达式 Sum([Stand 1], [Stand 2]) 相同的结果。

在整个列中从上到下进行计算

如果仅在括号内为聚合指定一列,则会在整个列中从上到下计算该表达式。在以下添加的列中,表达式 Sum([Sales]) 意味着整个 Sales 列中的值会聚合成一个和值 (125=25+35+25+40)。然后会重复该和值,因为它是计算列中每个单元格值的表达式结果。

表达式 Avg([Sales]) 的工作方式与此相同 (31.25=(25+35+25+40)/4)。



按行计算与在整个列中从上到下进行计算相结合

在下图中,最右侧的计算列的表达式 [Sales]/Sum([Sales]) 将按行计算与在整个列中从上到下进行计算相结合。该表达式对总销售额中每种水果种类所占比重进行相对比较。例如,总销售额中 Conference pears 所占比重为 32% (40/125)。



注: 实际上,这是在设置以下 100% 堆叠条形图时使用的计算。

规范化条形图