ВСЕ, кроме того, что не работает при фильтрации пробелов

#powerbi #dax

Вопрос:

У меня есть простая проблема. Моя мера DAX, похоже, работает неправильно, когда я фильтрую несуществующие значения. Вот некоторые подробности:

Таблица: Столбец 1: A,A,A,A,A,B,B,B,B

Колонка 2: 1,2,3,4,5,1,2,3,5

Мера = вычислить(количество(таблица), все, кроме(столбец 1))

Визуальный элемент карты возвращает правильное количество строк при фильтрации по столбцу 1 (любое значение в области фильтрации)

Однако он возвращает неправильное количество строк, когда я фильтрую по столбцу 2 = «4» и столбцу 1 = «B» (в области фильтрации). Кажется, что он должен включать фильтрацию по столбцу 2, и это происходит, за исключением случаев, когда я специально заполняю значение = «4». Это дает «пустое» значение результата в визуальном изображении карты.

Есть идеи, почему?

Вот экран. Я хотел бы заполнить эту пустую ячейку цифрой «4» (в модели данных с опаленной таблицей.введите описание изображения здесь

Ответ №1:

В вашем случае вам не нужно добавлять все, кроме вашей меры. Ниже код был бы в порядке.

 TestMeasure = countrows(Test_Data)
 

Скриншот PFB
сильный текст

Комментарии:

1. Привет, спасибо за такой быстрый ответ. Пожалуйста, обратитесь к моему другому комментарию.

Ответ №2:

Я надеюсь, что у вас есть следующая модель данных

имя таблицы _dim1

кола
A
B
C

имя таблицы _dim2

Кольб
1
2
3
4
5

имя таблицы _факт

кола Кольб
A 1
A 2
A 3
A 4
A 5
B 1
B 2
B 3
B 5
C 2
C 3

немецкая марка

Если у вас есть это, вы можете добраться туда, куда вам нужно, используя следующие меры

 Measure3 =
CALCULATE ( COUNTROWS ( _fact ), ALL ( _dim2[colB] ), VALUES ( _fact[colA] ) )

Measure9 =
VAR _1 =
    MAX ( _dim2[colB] )
VAR _2 =
    CALCULATE (
        MAXX (
            FILTER ( _dim2, _dim2[colB] <= _1 ),
            LASTNONBLANKVALUE ( _dim2[colB], [Measure3] )
        ),
        ALL ( _dim2[colB] )
    )
RETURN
    _2
    
Measure10 =
VAR _1 =
    MAX ( _dim2[colB] )
VAR _2 =
    CALCULATE (
        MAXX (
            FILTER ( _dim2, _dim2[colB] > _1 ),
            FIRSTNONBLANKVALUE ( _dim2[colB], [Measure3] )
        ),
        ALL ( _dim2[colB] )
    )
RETURN
    IF ( ISBLANK ( [Measure9] ) = TRUE (), _2, [Measure9] )
 

Решение

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

кола Кольб
A 1
A 2
A 3
A 4
A 5
B 1
B 2
B 3
B 5
C 2
C 3

Комментарии:

1. Привет, спасибо за ваш ответ. Это сработает, если я изменю модель. Но мне бы очень хотелось знать, почему это не работает для модели с одним столом. Почему allexcept не игнорирует фильтрацию там, где она должна быть? Есть ли этому научное объяснение? Что, если мне действительно нужна модель с одним столом?

2. Мне просто нужно простое вычисление счетчика одной меры, чтобы показать результат 4 строк. Даже когда я использую функцию all (), она не показывает мне результаты в визуальной матрице (показывает пробелы) для комбинации «B» и «4».