在 DAX 中返回 BLANK 的函数

Function returning BLANK in DAX

提问人:jcoke 提问时间:11/3/2023 最后编辑:Davide Baccijcoke 更新时间:11/4/2023 访问量:27

问:

我编写了一个 DAX 代码来检查广告系列是否已被过滤,如果已过滤,它基本上会获取上一个广告系列年份,然后该函数应返回上一年广告系列的总销售额,但它只是返回空白。

testing = 
VAR extractCampaignYear = IF (ISFILTERED('Campaign Overview'[campaign]),MIN('Campaign Overview'[previousExtractedYear]),0)

RETURN

SUMX(
FILTER(
    SUMMARIZE (
    'Campaign Overview',
    'Campaign Overview'[campaign],
    "extractedCampaign",TRIM(MIN('Campaign Overview'[extractedCampaignName])),
    "campaignYear", MIN('Campaign Overview'[extractedYearFromCampaign]),
    "Sales", SUM ( 'Campaign Overview'[sales] )
),
[campaignYear] = extractCampaignYear), [Sales])

但是,例如,当我删除并制作它时,它可以工作。extractCampaignYear[campaignYear] = 2022

有谁知道为什么 和 不匹配?campaignYearextractCampaignYear

使用变量时:

enter image description here

当我明确键入 2022 时: enter image description here

变量 powerbi dax powerbi-desktop 度量值

评论

0赞 Davide Bacci 11/3/2023
(ISFILTERED('Campaign Overview'[campaign]) 可能返回零,因为它是在未过滤该列的上下文中评估的。
0赞 jcoke 11/3/2023
正在筛选该列,我将市场活动名称列作为切片器并选择了一个名称,然后它从市场活动名称中检索名称年份,并使用 -1 获取该活动的前一年
0赞 Davide Bacci 11/3/2023
你能分享 .pbix 吗?
0赞 Davide Bacci 11/3/2023
extractCampaignYear 肯定会回归 2022 年吗?
0赞 jcoke 11/3/2023
是的,我删除了总和,只是返回了 extractCampaignYear,它返回了 2022。我还仔细检查了这两列,它们都是相同的数据类型整数。我会看看我是否可以发送经过消毒的 pbix

答:

1赞 Davide Bacci 11/4/2023 #1

试试这个

testing =
VAR extractCampaignYear = IF (ISFILTERED('Campaign Overview'[campaign]),MIN('Campaign Overview'[previousExtractedYear]),0)

RETURN
CALCULATE(
SUMX(
FILTER(
SUMMARIZE (
'Campaign Overview',
'Campaign Overview'[campaign],
"extractedCampaign",TRIM(MIN('Campaign Overview'[extractedCampaignName])),
"campaignYear", MIN('Campaign Overview'[extractedYearFromCampaign]),
"Sales", SUM ( 'Campaign Overview'[sales] )
),
[campaignYear] = extractCampaignYear), [Sales]),
REMOVEFILTERS()
)

从切片器中选择值时,将筛选表,因此 2023 是筛选器,因此,当你查找 2022 时,将得到零条记录。

仅供参考,我还没有修复您的摘要代码,但您不应该使用 summarise 创建新列 - 改用 ADDCOLUMNS() 以避免无法调试的奇怪问题。