[英]Using filtered results as field for calculated field in Tableau
我有一個看起來像這樣的表:
+------------+-----------+---------------+
| Invoice_ID | Charge_ID | Charge_Amount |
+------------+-----------+---------------+
| 1 | A | $10 |
| 1 | B | $20 |
| 2 | A | $10 |
| 2 | B | $20 |
| 2 | C | $30 |
| 3 | C | $30 |
| 3 | D | $40 |
+------------+-----------+---------------+
在畫面,我怎么能有一個字段SUMs
了Charge_Amount
為Charge_IDs
B,C和d,其中發票有Charge_ID
A的? 結果將是$ 70。
我的數據源是SQL Server,因此我想可以在SQL Server表中添加一個字段(稱為Has_ChargeID_A
),該字段告訴發票發票的Charge_ID
為A,然后在Tableau中Has_ChargeID_A
的所有行進行SUM
Has_ChargeID_A
是正確的,並且Charge_ID
是B,C或D。但是如果我可以直接在Tableau中執行此操作,則我更希望這樣做(不完全是這樣,但是可以使我獲得相同結果的任何操作)。
您的直覺引導您朝着正確的方向前進。 您確實希望只過濾包含Charge_ID為A的行的發票,並且可以直接在Tableau中執行此操作。
首先將Invoice_ID放在過濾器架子上,然后為過濾器選擇“條件”選項卡。 然后,在條件選項卡上選擇“按公式”選項,然后輸入要用於確定過濾器包含哪些invoice_id的公式。
這是您的示例的公式:
count(if Charge_ID = 'A' then 'Y' end) > 0
對於每個數據行,它將計算括號內的表達式的值,然后僅對內部表達式包括invoice_id,其中至少具有一個非空值。 (if語句的隱式else,“返回”為null)。
維度字段的條件選項卡等於SQL中的HAVING子句。
如果條件公式變得復雜,通常最好使用一個計算字段來定義它們,或者將幾個更簡單的計算字段組合起來,以保持可管理性。
最后,如果最終經常使用這樣的尺寸組,則可以將它們定義為組。 您仍然可以將集放到過濾器架上,但是可以通過其他方式重用它們:例如在計算字段中測試集成員身份(例如SQL IN子句),或者使用交集和並集運算符創建新集。 您可以想到諸如命名過濾器之類的集合,例如包含A類費用的發票集。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.