#powerbi
#powerbi
Вопрос:
Я хотел бы создать формулу DAX с помощью оператора IF.
моя логика была бы :
IF(column[1]= "sales" amp;amp; column[2] ="chicago"; SUM('Table'[SalesAmount]);
IF(column[1]= "sales" amp;amp; column[2] ="sanfranciso"; SUM('Table'[SalesAmount]);
IF(column[1]= "sales" amp;amp; column[2] ="newyork"; SUM('Table'[SalesAmount]);
IF(column[1]= "sales" amp;amp; column[2] ="hoston"; SUM('Table'[SalesAmount]);
Итак, мне нужно рассчитать продажи по городам. как мы можем записать приведенную выше логику в выражении dax в power bi?
Ответ №1:
Вы можете использовать CALCULATE
функцию с вашими условиями. Например, давайте используем его для вычисления объема продаж chicago
chicago_sales_amount = CALCULATE(SUM('Table'[SalesAmount]);column[1]= "sales" amp;amp; (column[2] = "chicago" || column[2] = "sanfranciso" || column[2] = "newyork" || column[2] = "hoston"))
Это приведенное выше выражение вычислит сумму продаж только для строк, которые соответствуют данному условию.
Теперь вы можете применить ту же логику для других условий.
CALCULATE
Документация
Комментарии:
1. Спасибо, но как мы можем рассчитать для всех городов в одном и том же измерении, не вычисляя для каждого отдельного измерения?
2. Я обновил свой ответ, указав утверждение для всех городов.
3. Что делать, если в столбце [2] более 16 местоположений и требуется время для вычисления суммы продаж для каждого города с использованием вышеуказанных условий. Разве мы не можем использовать одну и ту же меру для вычисления для каждого местоположения?
4. Если вы хотите рассчитать для всех городов в столбце [2], сделайте, как ответ Алдерта выше. В противном случае я бы создал другую таблицу с нужными городами и связал ее с
Table
so on, это позволит вам рассчитать для каждого целевого города.
Ответ №2:
Если вы хотите получить сумму по городам, но хотите ее только тогда, когда столбец [1] = «продажи», вы можете суммировать на основе фильтра:
SumByCity =
VAR curCity = 'Table'[column[2]]
RETURN
CALCULATE(SUM('Table'[SalesAmount]), FILTER(curCity = 'Table'[column[2]] amp;amp; 'Table'[column[1]]= "sales"))