我有一个尝试解决的查询,但是我失败了。
我有一张桌子,上面有物品,想每天计算活动物品。我是在excel中完成的,在过去的7天中我创建了另一列,并使用了countifs。
所以我的excel公式是
=COUNTIFS($A$3:$A$30001,"<="&F3,$B$3:$B$30001,">="&F3)
但是我在Power BI中需要同样的功能。
我的数据表称为ADW_DEFECTS,其中有两列包含打开和关闭日期。
ISSUE_DTTM CLOSE_DTTM
26/11/2019
26/11/2019
26/11/2019
26/11/2019
26/11/2019
25/11/2019
25/11/2019
25/11/2019
24/11/2019 25/11/2019
24/11/2019 25/11/2019
24/11/2019 25/11/2019
24/11/2019 26/11/2019
23/11/2019 24/11/2019
23/11/2019 24/11/2019
23/11/2019 25/11/2019
22/11/2019 22/11/2019
现在,我发现在过去7天的计算中我需要转到另一个表(我使用了一个名为NEW.DEFECTS_ACTIVE的表)。
这是excel的结果
Dates Active
26/11/2019 1
25/11/2019 5
24/11/2019 7
23/11/2019 3
22/11/2019 1
21/11/2019 0
20/11/2019 0
因此,Power BI中所需的结果是与excel相同的表。
答案 0 :(得分:3)
您也可以像这样展开表,尽管最终会得到第二个表:
Expanded_ADW =
GENERATE(
CALCULATETABLE(
ADW_DEFECTS;
ADW_DEFECTS[CLOSE_DTTM] <> BLANK()
);
SELECTCOLUMNS(
GENERATESERIES(
ADW_DEFECTS[ISSUE_DTTM];
ADW_DEFECTS[CLOSE_DTTM]
);
"Expanded_Date"; [Value]
)
)
然后有一个与[Expanded_Date]
具有1:*关系的日历。在日历表格中带有日期的可视表中,添加以下度量:
Active = COUNTROWS('Expanded_ADW')+0
然后您有一个这样的表:
答案 1 :(得分:2)
首先,我将创建一个日期表。有很多方法可以执行此操作-对于更复杂的要求,我更喜欢Power Query,但对于简单的演示,您可以转到 Modeling 功能区,选择 New table 并输入:< / p>
Dates = CALENDARAUTO(1)
接下来查看模型视图,并确保新的日期表与您现有的 ADW_DEFECTS 表之间没有任何关系。
然后,我将转到建模功能区,然后选择新度量,并使用以下DAX公式进行复制:
Active =
SUMX (
Dates,
CALCULATE (
COUNTROWS ( ADW_DEFECTS ),
FILTER (
ADW_DEFECTS,
[Date] >= ADW_DEFECTS[ISSUE_DTTM]
&& [Date] <= ADW_DEFECTS[CLOSE_DTTM]
)
)
)
这基本上表示对于日期中的每一行,计算ADW_DEFECTS中有多少行是“活动的”。您必须想象Measure公式在输出视觉的每个单元格中运行。外部SUMX将通过汇总日期级别的结果来计算所有日期的总计-例如多少天?
最后将表视觉效果添加到“报告”视图。从“日期”表和“活动”度量中添加“日期”列。如果您不想显示总计,请关闭总计。
它不会产生带有零的多余行,例如20/11/2019,但它们似乎是任意的。如果确实需要它们,只需在度量公式中添加+ 0
并过滤Table视觉上的Date列。