问题描述
假设我有这样的数据:
类型 | 订单号 | 优先级 | 交付方式 |
---|---|---|---|
盒子 | 1 | 高 | UPS |
杂项 | 1 | 高 | UPS |
盒子 | 2 | 标准 | InstaBox |
盒子 | 3 | 标准 | UPS |
盒子 | 3 | 标准 | UPS |
盒子 | 3 | 标准 | UPS |
盒子 | 4 | 标准 | InstaBox |
盒子 | 5 | 标准 | InstaBox |
盒子 | 5 | 标准 | InstaBox |
盒子 | 6 | 标准 | UPS |
盒子 | 7 | 标准 | UPS |
我想统计所有所谓的“私人订单”。它们是具有唯一订单号和标准优先级以及 UPS 递送的箱子。 (本例中有 2 个,6 和 7) 然后我想计算所有具有标准优先级的盒子并减去所有私人订单。 (有9个标准优先的盒子,减去2个私人订单= 7个。)
这在 Tableau 中可行吗?我想在文本框中显示数字 7。
解决方法
对于 Private orders
使用此字段
IF
{FIXED [Type],[Ordernumber] : COUNT([Ordernumber])} = 1
AND [Type] = 'Boxes' And [Priority] = 'Standard' And [DeliveryMethod] = 'UPS'
THEN 1 ELSE 0 END
对于所有盒子都使用这个
Sum(
If [Type] = 'Boxes' And [Priority] = 'Standard' then 1 else 0 end
)
因此,对于最终输出,您可以直接使用 calculation2
Sum(
If [Type] = 'BOXES' And [Priority] = 'Standard' then 1 else 0 END
) -
Sum(IF
{FIXED [Type],[OrderNumber] : COUNT([OrderNumber])} = 1
AND [Type] = 'BOXES' And [Priority] = 'Standard' And [DeliveryMethod] = 'UPS'
THEN 1 ELSE 0 END)
对于匹配模式,将上面的字段更改为 calculation3
Sum(
If [Type] = 'BOXES' And [Priority] = 'Standard' then 1 else 0 END
) -
Sum(IF
{FIXED [Type],[OrderNumber] : COUNT([OrderNumber])} = 1
AND [Type] = 'BOXES' And [Priority] = 'Standard' And REGEXP_MATCH([DeliveryMethod],"UPS")
THEN 1 ELSE 0 END)
使用的数据
结果