【问题标题】:Create calculated fields in crosstab在交叉表中创建计算字段
【发布时间】:2018-04-04 22:23:16
【问题描述】:

我有一个供应商和订单接受状态之间的交叉表,其中包含一个数字的最大值。

我需要创建一个公式,例如: IF ACCEPTED > MISSING THEN "GOOD" ELSE "BAD"

你能帮忙看看语法吗?

这是我使用建议的公式得到的,这是我应该得到的

ORDER   |   ACCEP   |   MISSING |   SHOULDBE    |   NOW     |       
-------------------------------------------------------------------------------
61010   |   6       |   0       |   GOOD        |   GOOD    |   FORMULAOK   
61011   |   3       |   12      |   BAD         |   BAD     |   FORMULAOK   
63239   |   9       |   11      |   BAD         |   BAD     |   FORMULAOK   
66749   |   0       |           |   BAD         |   GOOD    |   FORMULAnotOK    
76824   |   2       |   1       |   GOOD        |   BAD     |   FORMULAnotOK 

【问题讨论】:

  • 您的数据中有一个名为 NOW 的列。但是您还没有告诉我们该公式是什么,因此我们无法就要更改的内容向您提供反馈。请编辑您的问题以包含您当前使用的代码。此外,订单 66749 的值需要公式来解释空值(提示:使用 isnull() 函数)。

标签: tableau-api crosstab


【解决方案1】:

使用 SUM()INT() 函数进行条件检查,将布尔值转换为数字并将数字相加以获得总计数。那么它只是一个比较。

IF SUM(INT([ACCEPTANCESTATUS]="ACCEPTED")) > SUM(INT([ACCEPTANCESTATUS]="MISSING")) 
   THEN "GOOD" ELSE "BAD" END

【讨论】:

  • 感谢它仍然无法正常工作.. 请参阅上表的示例(抱歉,我在格式化文本时遇到了困难,不知道如何上传文件......)
【解决方案2】:

你的数据已经被透视了,你可以只写一个计算字段,完全符合你的伪代码:

IF SUM([ACCEP]) > SUM([MISSING]=) 
THEN "GOOD" 
ELSE "BAD" 
END

如果您希望为每一行计算值(而不是聚合),您可以删除 sum 元素。

【讨论】:

  • 我需要在 Revision 字段上计算 Max 函数,而不是总和。而且我不知道如何在公式中定义要聚合的字段..
  • 您是否尝试将公式从 SUM 切换到 MAX?您能详细解释一下“要聚合的字段是哪个字段”是什么意思吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-08
  • 2022-01-13
  • 1970-01-01
  • 2017-07-20
相关资源
最近更新 更多