#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)
Комментарии:
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».