
本文将指导您如何在TIBCO Spotfire中创建一个计算列,该列基于特定条件对其他列的值进行求和。我们将使用Sum()和Over()函数,结合条件判断,实现对满足条件的数据进行聚合,并将结果应用于同一项目代码下的所有资源名称。通过本文的学习,您将掌握Spotfire中条件聚合计算列的创建方法。
在 Spotfire 中创建条件计算列
在数据分析过程中,经常需要在满足特定条件的情况下计算总和或其他聚合值。Spotfire 提供了强大的计算列功能,可以轻松实现此类需求。以下步骤演示了如何基于条件在 Spotfire 中创建计算列。
步骤 1:打开 Spotfire 并加载数据
首先,打开 TIBCO Spotfire 并加载包含所需数据的数据表。确保数据表中包含用于条件判断的列(例如,Count_SAM)和需要求和的列(例如,FTE_Nov),以及用于分组的列(例如,Project)。
步骤 2:创建计算列
- 在 Spotfire 菜单栏中,选择“插入”->“计算列”。
- 在“计算列”对话框中,输入新列的名称,例如“ConditionalSum”。
- 在表达式编辑器中,输入以下表达式:
Sum([FTE_Nov] * [Count_SAM]) over ([Project])
表达式解释:
- Sum([FTE_Nov] * [Count_SAM]): 这部分计算 FTE_Nov 和 Count_SAM 的乘积之和。由于 Count_SAM 只有 0 或 1 两种值,所以实际上只有当 Count_SAM 等于 1 时,FTE_Nov 的值才会被加到总和中。
- Over ([Project]): 这部分指定了计算的范围。Over ([Project]) 表示计算是在每个 Project 组内进行的。换句话说,对于每个 Project,计算 FTE_Nov 和 Count_SAM 的乘积之和。
步骤 3:确认并应用计算列
点击“确定”按钮,Spotfire 将创建名为“ConditionalSum”的新列。该列将显示每个 Project 中,Count_SAM 等于 1 的 FTE_Nov 的总和,并将此总和应用于同一 Project 下的所有行。
示例:
假设数据如下:
| Project | Resource Name | FTE_Nov | Count_SAM |
|---|---|---|---|
| Project A | Resource 1 | 0.3 | 1 |
| Project A | Resource 2 | 0.6 | 0 |
| Project A | Resource 3 | 0.0 | 0 |
| Project A | Resource 4 | 0.0 | 0 |
| Project B | Resource 5 | 0.2 | 1 |
| Project B | Resource 6 | 0.0 | 0 |
应用上述计算列后,结果如下:
| Project | Resource Name | FTE_Nov | Count_SAM | ConditionalSum |
|---|---|---|---|---|
| Project A | Resource 1 | 0.3 | 1 | 0.3 |
| Project A | Resource 2 | 0.6 | 0 | 0.3 |
| Project A | Resource 3 | 0.0 | 0 | 0.3 |
| Project A | Resource 4 | 0.0 | 0 | 0.3 |
| Project B | Resource 5 | 0.2 | 1 | 0.2 |
| Project B | Resource 6 | 0.0 | 0 | 0.2 |
可以看到,对于 Project A,Count_SAM 等于 1 的 FTE_Nov 的总和为 0.3,该值被应用于 Project A 下的所有资源名称。对于 Project B,Count_SAM 等于 1 的 FTE_Nov 的总和为 0.2,该值被应用于 Project B 下的所有资源名称。
注意事项:
- 确保用于条件判断的列(例如,Count_SAM)只有 0 或 1 两种值,或者可以根据实际情况调整表达式。
- Over() 函数中的分组列(例如,Project)决定了计算的范围,请根据实际需求选择合适的分组列。
- 如果需要更复杂的条件判断,可以使用 If() 函数嵌套在 Sum() 函数中。
总结:
通过使用 Sum() 和 Over() 函数,结合条件判断,可以在 Spotfire 中轻松创建基于条件的计算列。这种方法可以灵活地应用于各种数据分析场景,帮助您更好地理解和分析数据。










