我对Power BI,Power Pivot和DAX非常陌生,我觉得我错过了一个关于过滤器上下文和行上下文如何工作的基本概念,所以希望得到一些帮助。
以下是我设置的:
我有我的事实表与以下,订单号,客户ID,联系人ID,cPortal代码(数据类型=整数),pPortal代码(数据类型=整数)&订单日期(数据类型日期).每个订单可以有多个联系人ID,因此订单编号可能会重复。我有一个单独的日历表,它与事实表有适当的关系。(注意:cPortal代码和pPortal代码是根据从其他维度表中提取的客户ID和联系人ID信息计算的,不确定这是否相关)
度量1:门户代码:= SUMX(“事实表”,“事实表”[cPortal代码] +“事实表”[pPortal代码])
测量2:门户交互:= IF([门户代码] = 1,“热”,“冷”)
我想查看在某个日期(或多个日期)创建的订单,看看它们的门户交互是“热”还是“冷”。
如果我用这个数据模型创建一个pivot表(在excel中),我会发生以下情况:
情景1
筛选日历日期至10/2/2023
订单号
值:门户代码
结果是,我看到了在2023年10月2日创建的三个订单及其相应的门户代码值
过滤日期= 10/2/2023
|Order NO | Portal Code |
| -------- | ------------|
| C1001 | 1 |
| C1002 | 11 |
| C1003 | 1 |
情景2
筛选日历日期至10/2/2023
订单号
价值观:门户代码和门户交互
这里的结果是,我的日期过滤器被Portal Interaction度量忽略,而不是Portal Code度量。生成的表格是所有订单号的列表,无论创建日期如何,门户代码为空白单元格(除了适当的创建日期),每个订单号的门户交互为适当的文本。
过滤日期= 10/2/2023
|Order NO | Portal Code | Portal Inter. |
| -------- | ------------|---------------|
| C999 | | HOT |
| C998 | | HOT |
| C456 | | Cold |
| C123 | | Hot |
| C1001 | 1 | Hot |
| C1002 | 11 | Cold |
| C1003 | 1 | Hot |
我忽略了什么基本概念?
谢谢你,谢谢
这是一个类似模型的Google Drive链接。我有两个数据透视表。左边的一个只是向我显示了最后一天发生的订单/交易的总数量。右侧的数据透视表具有相同的列,但增加了“数量指标”度量。添加此度量时,日期过滤器将被忽略。Link to a similar Model
1条答案
按热度按时间dhxwm5r41#
你可以用这个来修复它:
在DAX比较中,BLANK被视为零。因此,计算结果为空的度量值被视为零,并且任何不存在的维度组合都满足IF语句。
从https://www.sqlbi.com/articles/optimizing-conditions-involving-blank-values-in-dax/