Функция COUNTAX не вернет выходные данные, если я задам критерии фильтрации для вычисления в рабочей книге Power BI

#powerbi #dax

Вопрос:

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

В этом конкретном примере мера, которая дает мне оптимальную цену, говорит, что оптимальная цена должна составлять 1,00 доллара. Поэтому, если я вручную введу 1.00 в раздел фильтра, мои выходные данные вернутся правильно. Почему это не работает, когда я устанавливаю для своего фильтра расчет оптимальной цены, который соответствует тому же значению, что и при ручном вводе 1.00?

Опять же, это вычисление работает просто отлично, если я изменю фильтр цен на имя_таблицы'[Цена] = 1 вместо того, чтобы ставить его равным оптимальному расчету цены.

 Optimal_Price_Count =
COUNTAX (
    FILTER (
        'Table_Name',
        'Table_Name'[Price] = [Optimal Price Calculation]
            amp;amp; 'Table_Name'[Product] = SELECTEDVALUE ( 'First Product'[Product] )
    ),
    'Table_Name'[Price]
)
 

Ответ №1:

[Optimal Price Calculation] Мера вычисляется в функции ФИЛЬТРА, что означает, что происходит переход контекста, который превращает контекст строки в контекст фильтра для меры.

Я бы рекомендовал определить это как переменную, а затем ссылаться на нее. Вы можете сделать то же самое и для продукта, если хотите:

 Optimal_Price_Count =
VAR OptimalPrice = [Optimal Price Calculation]
VAR SelectedProduct = SELECTEDVALUE ( 'First Product'[Product] )
RETURN
    COUNTAX (
        FILTER (
            'Table_Name',
            'Table_Name'[Price] = OptimalPrice
                amp;amp; 'Table_Name'[Product] = SelectedProduct
        ),
        'Table_Name'[Price]
    )