Power Pivot:DAX进行相同值顺序计数

时间:2018-09-28 21:54:21

标签: pivot-table dax calculated-columns powerpivot

请参考以下示例表。

实际表将包含在PowerPivot中。

有多个运行用顺序编号标识。

基于我们希望通过过滤观察的结果,每次运行都有一个关联的值。

以下是当前数据的简化版本:

Current Table

所有数据的公共列:     零件:唯一定义组。在这种情况下,它是零件或设备。     运行:标识相同的测试计数。     价值:测试产生的结果。

我一直试图添加的另外三列:

Desired1: Same_Value_Count: This counts consecutive same values.
Desired2: Same_Max: Gives the maximum same value count.
Desired3: Same_Min: Give the minimum same value count.

这将导致以下数据透视表:

Resulting Table

我在制定适当的DAX语法以完成两个额外的列方面遇到麻烦。

请记住,我想按原样显示整个表格。

我这里有一个计算列,称为count_seq_dup:

=CALCULATE(COUNTROWS(table), ALLEXCEPT(table, table[3_Value]), EARLIER(Table[2_Run]) >= CSVsource[2_Run])

它可以完美地用于单个零件,但不适用于多个零件以及应用其他过滤器或切片器的情况。

我已经接近了,但这并不是我想要的,我无法弄清楚DAX中的语法是否正确。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

对于Same_Value_Count,请尝试以下操作:

Same_Value_Count =
    VAR part = 'table'[1_Part]
    VAR val = 'table'[3_Value]
    VAR run = 'table'[2_Run]
    VAR tblpart = FILTER ( 'table', 'table'[1_Part] = part && 'table'[2_Run] <= run )
RETURN
    run - CALCULATE ( MAX ( 'table'[2_Run] ), FILTER ( tblpart, [3_Value] <> val ) )

enter image description here

这将返回零件/值组合的最大相同值计数。

Max Count =
VAR part = 'table'[1_Part]
VAR val = 'table'[3_Value]
RETURN
    CALCULATE (
        MAX ( 'table'[Same_Value_Count] ),
        FILTER ( 'table', [3_Value] = val && 'table'[1_Part] = part )
    )