Мера исключения записи не работает в Matrix Visual - PullRequest
0 голосов
/ 18 июня 2020

Я работаю над мерой, которая, по сути, просто берет сумму за оплаченные значения, связанные с некоторыми идентификаторами последовательностей, которые попадают в предопределенный диапазон, но у меня возникают проблемы с попыткой решить проблему, когда я использую меру в матричном визуале.

Мера изложена ниже:

Filtered Paid :=
VAR Selection =
    SELECTEDVALUE ( 'Selection'[ID], 1 )
VAR ThreeSigma =
    3 * STDEV.P ( Data[PAID] )
VAR SeqMean =
    AVERAGE ( Data[PAID] )
VAR ExcludedSeqs =
    CALCULATETABLE (
        VALUES ( Data[SequenceId] ),
        KEEPFILTERS (
            FILTER (
                ALL ( Data[PAID] ),
                Data[PAID] < SeqMean + ThreeSigma
                    && Data[PAID] > SeqMean - ThreeSigma
            )
        )
    )
RETURN
    SWITCH (
        Selection,
        3, CALCULATE ( SUM ( Data[PAID] ), ExcludedSeqs ),
        CALCULATE ( SUM ( Data[PAID] ) )
    )

Мера работает нормально, когда я использую ее на карточке или карте, но когда я пытаюсь использовать ее в матричном визуале как 'Значения 'с полем Data[SequenceId] в качестве поля' Rows ', мера никогда не отображает никаких значений, она просто вращается бесконечно. Я пробовал использовать несколько разных вариантов этой меры, и все, похоже, вызывают у меня одну и ту же проблему. Я также пробовал использовать фильтр визуального уровня, чтобы исключить эти записи, но, похоже, я не могу его отключить.

Любая помощь приветствуется!

Спасибо !!

1 Ответ

0 голосов
/ 19 июня 2020

В итоге я нашел решение, используя фильтр визуального уровня:

Visual Level Filter :=
VAR Selection =
    SELECTEDVALUE ( 'Selection'[ID], 1 )
VAR ThreeSigma =
    CALCULATE ( 3 * STDEV.P ( Data[PAID] ), ALL ( Data[SequenceId] ) )
VAR SeqMean =
    CALCULATE ( AVERAGE ( Data[PAID] ), ALL ( Data[SequenceId] ) )
VAR Total =
    SUM ( Data[PAID] )
RETURN
    SWITCH (
        Selection,
        3, IF ( AND ( Total < SeqMean + ThreeSigma, Total > SeqMean - ThreeSigma ), 1, 0 ),
        1
    )

Обычно я просто устанавливаю его равным 1 в качестве фильтра визуального уровня и использую calculate(sum(data[paid])) в матрице. Это работает, но если у кого-то есть более элегантное решение, которое может быть эффективным, я все уши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...