我希望有人能够帮助我,因为我不确定如何让这个 DAX 指标发挥作用。我有以下数据:
Date Category
15.2.23 A
15.2.23 A
15.2.23 A
16.2.23 B
16.2.23 C
17.2.23 A
17.2.23 B
20.2.23 C
我希望 DAX 度量计算特定日期的所有 A 项目,如果表中没有某个日期的 A 项目,则返回 0 :
示例:
3 for 15.2.23
0 for 16.2.23
1 for 17.2.23
0 for 20.2.23
我已经尝试了所有不同的组合,但仍然可以让它工作 - 我相信这与我的模型日期表有关,因为这包括一年中的所有日期,而不仅仅是我表中的日期。
DATA Table
15.2.23
16.2.23
17.2.23
18.2.23
19.2.23
20.2.23
ALL OOS AD Table
15.2.23 A
15.2.23 A
15.2.23 A
16.2.23 B
16.2.23 C
17.2.23 A
17.2.23 B
20.2.23 C
我使用的 DAX 公式,它们没有返回正确的值:
Total OOS A (NS)* =
CALCULATE (COUNT('All_OOS_AD'[Date]),('All_OOS_AD'[Item Category]= "A"))
Total OOS A (NS)* =
CALCULATE (
IF (
COUNTROWS (
FILTER (
All_OOS_AD,
All_OOS_AD[Item Category] = "A" &&
NOT(ISBLANK(All_OOS_AD[Date])) &&
WEEKDAY(All_OOS_AD[Date]) <> 1 && WEEKDAY(All_OOS_AD[Date]) <> 7
)
) > 0,
COUNTROWS (
FILTER (
All_OOS_AD,
All_OOS_AD[Item Category] = "A" &&
NOT(ISBLANK(All_OOS_AD[Date])) &&
WEEKDAY(All_OOS_AD[Date]) <> 1 && WEEKDAY(All_OOS_AD[Date]) <> 7
)
),
0
)
)
Total OOS A (NS)* =
CALCULATE (
IF (
COUNTROWS ( FILTER ( All_OOS_AD, All_OOS_AD[Item Category] = "A" && NOT(ISBLANK(All_OOS_AD[Date]))) ) > 0,
COUNTROWS ( FILTER ( All_OOS_AD, All_OOS_AD[Item Category] = "A" && NOT(ISBLANK(All_OOS_AD[Date]))) ),
0
)
)
Total OOS A (NS)* =
CALCULATE (
IF (
COUNTROWS ( FILTER ( All_OOS_AD, All_OOS_AD[Item Category] = "A" && NOT(ISBLANK(All_OOS_AD[Date]))) ) > 0,
COUNTROWS ( FILTER ( All_OOS_AD, All_OOS_AD[Item Category] = "A" && NOT(ISBLANK(All_OOS_AD[Date]))) ),
0
)
)
Total OOS A (NS)* =
CALCULATE (
COUNTAX(
VALUES('YourTable'[Date]),
IF (
COUNTROWS(FILTER('YourTable', 'YourTable'[Item Category] = "A" && 'YourTable'[Date] = VALUES('YourTable'[Date]))) > 0,
1,
0
)
)
)
Total OOS A (NS)* =
CALCULATE (
COUNTAX(
VALUES(All_OOS_AD[Date]),
IF (
COUNTROWS(FILTER(All_OOS_AD, All_OOS_AD[Item Category] = "A" && All_OOS_AD[Date] = VALUES(All_OOS_AD[Date]))) > 0,
1,
0
)
)
)
Total OOS A (NS)*
CALCULATE (
IF (
COUNTROWS (
FILTER (
ALL('YourTable'[Date]),
CALCULATE (
COUNTROWS (
FILTER (
'YourTable',
'YourTable'[Item Category] = "A" && 'YourTable'[Date] = 'YourTable'[Date]
)
) > 0
)
)
) > 0,
CALCULATE (
COUNTROWS (
FILTER (
'YourTable',
'YourTable'[Item Category] = "A"
)
)
),
0
)
)
您尝试直接在 All_OOS_AD 表中进行过滤和计数,而没有充分确保考虑了 DATA 表中的每个日期。这意味着,如果日期没有任何“A”项,则它可能不会包含在结果集中,或者不会按预期显式返回 0 计数。
Total OOS A (NS) =
CALCULATE (
COUNTROWS(FILTER(All_OOS_AD, All_OOS_AD[Item Category] = "A")),
ALL('DATA Table'), // Ensure calculation is done over all dates
VALUES('DATA Table'[Date]) // This forces evaluation for each date in your date table
)