提问人:jcoke 提问时间:11/16/2023 更新时间:11/16/2023 访问量:41
表格行中显示的总数不正确,但卡片视觉和总计中的值正确
Incorrect total showing in table row but correct value in card visual and grand total
问:
我有一个 DAX 代码,它遇到了问题并在这里得到了解决。
totalAverageBaysFinalVersion =
VAR onlyCampaignFiltered =
(
ISFILTERED ( 'Campaign Overview'[campaign] )
&& NOT CALCULATE (
ISCROSSFILTERED ( 'range_plans' ),
REMOVEFILTERS ( 'Campaign Overview'[campaign] )
)
)
|| ISFILTERED ( 'Calendar'[weekNumWeekCommence] )
RETURN
SWITCH (
TRUE(),
SELECTEDVALUE('Campaign Overview'[branch_type]) = "IN STORE", --Here
[totalRangePlanBays], --Here
SELECTEDVALUE('Campaign Overview'[ranged_flag_in_words]) = "RANGED",
[totalRangePlanBays],
onlyCampaignFiltered,
[totalRangePlanBays],
[Total Avg Bays Campaign Overview]
)
但是,我注意到的是,当对范围组进行过滤时,它不再显示正确的行值,该值应该是 .114.49
但奇怪的是,当我删除上面代码中标有注释的代码时,它突然又起作用了。here
为什么在添加检查分支类型的代码时,它不会在行上显示正确的总数,而是在表的总计中显示正确的总数,并且在删除时,它可以工作,这有什么原因吗?IN STORE
答:
2赞
Amira Bedhiafi
11/16/2023
#1
我添加了一个 VAR 来捕获 branch_type 和 ranged_flag_in_words 的值,默认值为“未知”来处理具有多个值或没有值的情况。 此外,如果需要,我调整了 SWITCH 功能以同时检查branch_type和ranged_flag_in_words条件。
totalAverageBaysFinalVersion =
VAR onlyCampaignFiltered =
(
ISFILTERED('Campaign Overview'[campaign])
&& NOT CALCULATE(
ISCROSSFILTERED('range_plans'),
REMOVEFILTERS('Campaign Overview'[campaign])
)
)
|| ISFILTERED('Calendar'[weekNumWeekCommence])
VAR branchType = SELECTEDVALUE('Campaign Overview'[branch_type], "Unknown")
VAR rangedFlag = SELECTEDVALUE('Campaign Overview'[ranged_flag_in_words], "Unknown")
RETURN
SWITCH(
TRUE(),
branchType = "IN STORE" && rangedFlag = "RANGED", [totalRangePlanBays],
branchType = "IN STORE", [totalRangePlanBays],
rangedFlag = "RANGED", [totalRangePlanBays],
onlyCampaignFiltered, [totalRangePlanBays],
[Total Avg Bays Campaign Overview]
)
如果可能,您可以共享您的 pbix 文件吗?
评论
0赞
jcoke
11/16/2023
感谢您的回答,我试过了,但不幸的是它仍然给出与我的原始代码相同的结果,我可以在这里分享 pbix 文件的净化版本 - drive.google.com/file/d/1xogJwQ4OO5r9sdNi6B446WcIpAYOq3VG/...
1赞
Sam Nseir
11/16/2023
#2
请尝试以下操作:
totalAverageBaysFinalVersion =
VAR onlyCampaignFiltered =
(
ISFILTERED ( 'Campaign Overview'[campaign] )
&& NOT CALCULATE (
ISCROSSFILTERED ( 'range_plans' ),
REMOVEFILTERS ( 'Campaign Overview'[campaign], 'Campaign Overview'[branch_type] )
)
)
|| ISFILTERED ( 'Calendar'[weekNumWeekCommence] )
RETURN
SWITCH ( TRUE(),
SELECTEDVALUE('Campaign Overview'[branch_type]) = "ONLINE", [Total Avg Bays Campaign Overview], // never use totalRangePlanBays which is only for IN STORE
SELECTEDVALUE('Campaign Overview'[ranged_flag_in_words]) = "RANGED", [totalRangePlanBays],
onlyCampaignFiltered, [totalRangePlanBays],
[Total Avg Bays Campaign Overview]
)
更改内容:
- 在 for 中添加了 .为什么?由于表中有此列,因此根据行上下文,它被视为筛选器。
'Campaign Overview'[branch_type]
REMOVEFILTERS
onlyCampaignFiltered
- 在 SWITCH 中添加了branch_type大小写。据我了解,仅适用于“店内”吗?
ONLINE
range_plans
观察:
- 表和表之间的关系似乎不正确。不应该有一个加入吗?
Campaign Overview
range_plans
branch_id
评论
0赞
jcoke
11/16/2023
这成功了,非常感谢 - 此外,由于基础数据源,这种关系是以这种方式建立的,有些数据源不存在于“广告系列概述”表中,因此为了找到它,必须通过日期将其链接以找到与范围相关的广告系列branch_id
评论
range_group
onlyCampaignFiltered
[Total Avg Bays Campaign Overview]
[totalRangePlanBays]
[totalRangePlanBays]