[英]Applying advanced filter in Power BI DAX, from a different table
我有以下表格:
我的 DAX 計算總結了來自 Episodes tbl 的 [Days_epi] 唯一值,並按 [ProgramID_epi]、[EpisodeID_epi]、[ClientID_epi] 對它們進行分組。
因此,[Days_epi] 的總和 = 3 + 5 + 31 + 8 + 15 + 20 + 10 = 92
這是我的工作代碼:
DaysSUM =
CALCULATE (
SUMX (
SUMMARIZE (
'Episodes',
'Episodes'[EpisodeID_epi],
'Episodes'[ProgramID_epi],
'Episodes'[ClientID_epi],
'Episodes'[Days_epi]
),
'Episodes'[Days_epi]
),
FILTER (
'Episodes',
'Episodes'[Category_epi] = "Homeless"
)
)
我需要在上面的計算中添加兩個高級過濾器:
如果客戶端中的記錄在 [DischDate_clnt] 和 [AdmDate_clnt] >= 365 之間存在差異,則過濾器 1 應該只保留情節中的記錄。
SQL 語句中的過濾器 1 是
DATEDIFF(DAY, [AdmDate_clnt], [DischDate_clnt]) >= 365)
之后,過濾器 2 應該只保留情節中的記錄,如果客戶端中的記錄有 [Date_clnt] >= [AdmDate_clnt] + 12 個月。 (入學日期后12個月)
SQL 語句中的過濾器 2 為
[Date_clnt] <= DATEADD(MONTH, 12, [[AdmDate_clnt])
因此,在應用這兩個過濾器后,我希望 Episodes tbl 的記錄 6 和 10 必須被排除(過濾掉),因為 Clients tbl 的記錄 2 和 3(以綠色突出顯示)不滿足我的過濾器 1/過濾器 2 .
我開始如下更新我的 DAX 代碼(如下)。 但不斷收到錯誤“參數不是正確的類型”
enter
DaysSUM_Filters =
CALCULATE (
SUMX (
SUMMARIZE (
'Episodes',
'Episodes'[EpisodeID_epi],
'Episodes'[ProgramID_epi],
'Episodes'[ClientID_epi],
'Episodes'[Days_epi]
),
'Episodes'[Days_epi]
),
FILTER (
'Episodes',
'Episodes'[Category_epi] = "Homeless"
), TREATAS(DATEDIFF('Clients'[AdmDate_clnt],
'Clients'[DischDate_clnt], DAY)>=365,
'Clients'[Date_clnt])
)
不完全確定如何在 DAX Power BI 中正確設置這兩個過濾器,因為我對它比較陌生。
請幫忙!
我不能說所有的情況。 但顯而易見的是,您以錯誤的方式使用TREATAS
。 它的工作原理類似於TREATAS({"Red", "White", "Blue"}, 'Product'[Color])
。
在你的情況下
DATEDIFF('Clients'[AdmDate_clnt],
'Clients'[DischDate_clnt], DAY)>=365
將返回TRUE
或FALSE
值。 TREATAS 的第一個參數 - 是一列或一組列,而不是單個值。
您可以像這樣使用過濾器:
FILTER(
'Clients'
,DATEDIFF(
'Clients'[AdmDate_clnt]
,'Clients'[DischDate_clnt]
,DAY
)>=365
)
這將為您返回一個過濾表。 如果您的表是鏈接的,這可能會起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.