簡體   English   中英

將過濾的結果用作Tableau中計算字段的字段

[英]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           |
+------------+-----------+---------------+

在畫面,我怎么能有一個字段SUMsCharge_AmountCharge_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM