Power Pivot: DAX для одинакового значения последовательного счета - PullRequest
0 голосов
/ 29 сентября 2018

Пожалуйста, обратитесь к следующей таблице примеров.

Фактическая таблица будет содержаться в PowerPivot.

Есть несколько прогонов, идентифицированных последовательной нумерацией.

На основании того, что мыДля наблюдения через фильтрацию каждому прогону присваивается соответствующее значение.

Вот упрощенная версия текущих данных:

Текущая таблица

Общие столбцы длявсе данные: часть: однозначно определяет группу.В данном случае это часть или устройство.Выполнить: Идентифицирует одинаковое количество тестов.Значение: результат, полученный в результате теста.

Я пытался добавить еще три столбца:

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.

Это приведет к следующей сводной таблице:

Результирующая таблица

У меня проблемы с формулировкой правильного синтаксиса DAX для выполнения двух дополнительных столбцов.

Имейте в виду, я хотел бы показать всюТаблица как есть.

У меня есть вычисляемый столбец, который называется count_seq_dup:

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

Он отлично работал для одной детали, но не работает с несколькими частями и при других фильтрах или срезах

Я близок, но это не совсем то, что я ищу, и я не могу понять синтаксис в DAX, чтобы понять это правильно.

Может кто-нибудь помочьмне

1 Ответ

0 голосов
/ 29 сентября 2018

Для 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 )
    )
...