Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi DAX度量用于计算聚合数据,但按案例ID分组_Powerbi_Dax - Fatal编程技术网

Powerbi DAX度量用于计算聚合数据,但按案例ID分组

Powerbi DAX度量用于计算聚合数据,但按案例ID分组,powerbi,dax,Powerbi,Dax,所以我有一个变量 var varSubItem = CALCULATE (MAX(Outages[SubItem]), Outages[DATE] >= DATE(2019, 07, 14) ) 计算出1天内发生停机的项目。见下文 然后我有另一个变量 var data = CALCULATE ( COUNT ( Outages[CASE_ID] ), ALLSELECTED ( Outages ), Outages[SubItem] = devices ) 这给

所以我有一个变量

var varSubItem = CALCULATE (MAX(Outages[SubItem]), Outages[DATE] >= DATE(2019, 07, 14) )
计算出1天内发生停机的项目。见下文

然后我有另一个变量

var data =
CALCULATE (
    COUNT ( Outages[CASE_ID] ),
    ALLSELECTED ( Outages ),
    Outages[SubItem] = devices
)
这给了我过去两年设备的停机次数。这仅仅是过去两年,因为我的table visual有一个针对该时间段的过滤器

我祈祷我说的有道理,因为我已经尝试了两周了

Devices w Outages 2Yr =
VAR devices =
    CALCULATE ( MAX ( Outages[DEVICE_ID] ), Outages[DATE] >= DATE ( 2019, 07, 14 ) )
VAR data =
    CALCULATE (
        COUNT ( Outages[CASE_ID] ),
        ALLSELECTED ( Outages ),
        Outages[DEVICE_ID] = devices
    )
RETURN data
我明白了

| Area   | Item | SubItem | Case      | Date            | Outage Count |
|--------|------|---------|-----------|-----------------|--------------|
| XXXXX' | ABC1 | 123A    | 123456789 | 7/14/19 1:15 AM | 1            |
|        | ABC2 | 123B    | 132456798 | 7/14/19 3:20 AM | 1            |
|        | ABC3 | 123C    | 984561325 | 7/14/19 6:09 PM | 1            |
|        | ABC4 | 123D    | 789613453 | 7/14/19 3:54 PM | 3            |
|        | ABC5 | 123E    | 335978456 | 7/14/19 2:10 PM | 2            |
| Total  |      |         |           |                 | 8            |
当我应该得到这个的时候

| Area   | Item | SubItem | Case      | Date            | Outage Count |
|--------|------|---------|-----------|-----------------|--------------|
| XXXXX' | ABC1 | 123A    | 123456789 | 7/14/19 1:15 AM | 1            |
|        | ABC2 | 123B    | 132456798 | 7/14/19 3:20 AM | 1            |
|        | ABC3 | 123C    | 984561325 | 7/14/19 6:09 PM | 1            |
|        | ABC4 | 123D    | 789613453 | 7/14/19 3:54 PM | 1            |
|        | ABC4 | 123D    | 789613211 | 4/19/18 4:20 AM | 1            |
|        | ABC4 | 123D    | 789611121 | 9/24/17 5:51 AM | 1            |
|        | ABC5 | 123E    | 335978456 | 7/14/19 2:10 PM | 1            |
|        | ABC5 | 123E    | 335978111 | 2/21/19 7:19 AM | 1            |
| Total  |      |         |           |                 | 8            |

我认为你想要的更接近这个:

Devices w Outages 2Yr =
VAR devices =
    CALCULATETABLE (
        VALUES ( Outages[SubItem] ),
        ALLSELECTED ( Outages ),
        Outages[DATE] >= TODAY() - 1
    )
RETURN
    CALCULATE (
        COUNT ( Outages[Case] ),
        FILTER ( Outages, Outages[SubItem] IN devices )
    )
这将创建一个
子项
值列表,而不是使用
MAX
获得的单个值,这就是
ALLSELECTED
函数需要执行的操作


编辑:要在
子项
级别合计,请尝试以下调整:

Devices w Outages 2Yr =
VAR devices =
    CALCULATETABLE (
        VALUES ( Outages[SubItem] ),
        ALLSELECTED ( Outages ),
        Outages[DATE] >= TODAY() - 1,
        VALUES ( Outages[SubItem] )
    )
RETURN
    CALCULATE (
        COUNT ( Outages[Case] ),
        ALLSELECTED ( Outages ),
        Outages[SubItem] IN devices
    )
对于初学DAX的用户来说,这里的确切逻辑有点复杂,但请记住DAX完全是关于过滤器的

对于变量
设备
,我们需要当前上下文中受日期约束的所有
子项
值的列表。
CALCULATETABLE
函数允许我们修改过滤器上下文。
ALLSELECTED
函数是一个表过滤器,它从可视化视图中删除任何过滤器上下文,以便包括所有未被切片器或页面/报告级过滤器过滤掉的
Date
Case
值。否则,日期早于
TODAY()-1
的行将出现空白。日期值布尔筛选是不言自明的,但是我在末尾添加了另一个表筛选器,
VALUES(Outages[SubItem])
,以从可视化视图中添加回
子项
上下文


计算
工件的功能类似。在更改过滤器上下文以删除
Case
Date
上的过滤器上下文后,我们计算所有
Case
值,并且只从变量中生成的列表中获取
子项
值。

感谢编辑我的帖子,我希望我清楚我的标题和需要什么。提前感谢您的帮助。简单地
中断计数=Count(中断[CASE\u ID])
有什么问题吗?我需要它来计算过去两年的CASE\u ID,但只计算从昨天起就已过时的子项。天哪,我现在可以吻你了,男人(不是同性恋)或女人。我知道我需要创建一个列表,但我不知道在哪里或如何创建,我花了很长时间试图找到它。非常感谢。我还有一个问题,创建一个度量值以将计数总数(case_ID)应用于每行的最佳方法是什么。请尝试
ALLSELECTED(Outages)
而不是
过滤器中的
Outages
。我尝试了过滤器(ALLSELECTED(Outages),设备中的Outages[子项])一路下来就得到了9分。这等于面积的总和。那么你要找的总数是多少?