boxmoe_header_banner_img

Hello! 欢迎来到悠悠畅享网!

文章导读

如何在 Tibco Spotfire 中创建基于条件的计算列


avatar
站长 2025年8月12日 2

如何在 Tibco Spotfire 中创建基于条件的计算列

本文将介绍如何在 Tibco Spotfire 中创建基于条件的计算列,以实现对特定项目下满足条件的 FTE_Nov 值进行求和,并将结果应用于该项目下的所有资源名称。我们将利用 Spotfire 的计算列功能和 OVER 函数,实现高效且准确的条件求和。

创建计算列的步骤

在 Tibco Spotfire 中,我们可以使用计算列功能来创建基于条件的汇总数据。以下步骤详细说明了如何基于 “Count_SAM” 等于 1 的条件,计算 “FTE_Nov” 的总和,并将其应用于相同项目代码下的所有资源名称。

  1. 打开 Spotfire 分析文件: 首先,确保您已加载包含 “FTE_Nov”、”Count_SAM” 和 “Project” 列的数据表。

  2. 创建计算列: 在 Spotfire 菜单中,选择 “插入” -> “计算列”。这将打开计算列对话框。

  3. 输入表达式: 在计算列对话框中,输入以下表达式:

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” 的值才会被保留,否则会被置为 0。
  • OVER ([Project]): OVER 函数指定了计算的范围。 在这里,我们指定按 “Project” 列进行分组。这意味着对于每个唯一的 “Project” 值,都会计算 “FTE_Nov * Count_SAM” 的总和。
  1. 命名计算列: 为计算列指定一个有意义的名称,例如 “总 FTE (Count_SAM = 1)”。

  2. 选择数据类型: 确保选择合适的数据类型,通常为 “Real” 或 “Decimal”,具体取决于 “FTE_Nov” 列的数据类型。

  3. 确认并应用: 点击 “确定” 按钮,Spotfire 将创建新的计算列。

示例说明

假设我们有如下数据(简化版):

Project Resource Name FTE_Nov Count_SAM
ProjectA Resource1 0.3 1
ProjectA Resource2 0.6 0
ProjectA Resource3 0.0 1
ProjectB Resource4 0.2 1
ProjectB Resource5 0.0 0

应用上述计算列后,结果如下:

Project Resource Name FTE_Nov Count_SAM 总 FTE (Count_SAM = 1)
ProjectA Resource1 0.3 1 0.3 + 0.0 = 0.3
ProjectA Resource2 0.6 0 0.3 + 0.0 = 0.3
ProjectA Resource3 0.0 1 0.3 + 0.0 = 0.3
ProjectB Resource4 0.2 1 0.2
ProjectB Resource5 0.0 0 0.2

可以看到,对于 ProjectA,只有 Resource1 和 Resource3 的 Count_SAM 为 1,它们的 FTE_Nov 分别为 0.3 和 0.0,因此总和为 0.3。 ProjectB 只有 Resource4 的 Count_SAM 为 1,FTE_Nov 为 0.2,所以总和为 0.2。

注意事项

  • 数据类型一致性: 确保 “FTE_Nov” 和 “Count_SAM” 列的数据类型正确,以便进行数值计算。
  • OVER 函数的灵活性: OVER 函数可以根据需要进行扩展,例如可以按多个列进行分组,或者使用不同的聚合函数
  • NULL 值处理: 如果 “FTE_Nov” 或 “Count_SAM” 列中包含 NULL 值,需要考虑如何处理这些值。可以使用 If(IsNotNull([Column]), [Column], 0) 来将 NULL 值替换为 0。

总结

通过使用 Spotfire 的计算列和 OVER 函数,我们可以轻松地创建基于条件的汇总数据,并将结果应用于相关的数据行。 这种方法可以有效地分析和可视化复杂的数据集,并从中提取有价值的见解。 请务必根据您的具体需求调整表达式,以获得最佳结果。



评论(已关闭)

评论已关闭