#excel #powerbi #dax #powerbi-desktop
#excel #powerbi #dax #powerbi-desktop
Вопрос:
Я работаю над отчетом в Power BI, и я столкнулся с проблемой. Я хочу сделать простую вещь (в DAX или всеми возможными способами), а именно: создать столбец в отчете, который представляет собой процентную разницу для каждой указанной категории. Категория, которую я хочу рассмотреть, всего одна и указана в той же строке с именем «Элемент для сравнения». Чтобы прояснить вопрос, я привел здесь пример:
Элемент | Общее значение | Элемент для сравнения общего | общая разница в% от указанного элемента |
---|---|---|---|
A | 334 | C | 178,3% |
B | 323 | D | -73,8% |
C | 120 | A | -64,1% |
D | 1234 | A | 269,5% |
Я хочу создать столбец «% DIFF УКАЗАН ЭЛЕМЕНТ ФОРМЫ», но я не могу найти простой способ сделать это, кто-нибудь может мне помочь? Большое вам спасибо.
Комментарии:
1. Какая логика дает вам процентную разницу?
2. В первой строке просто: (120-334) / 120. Вычисление простое, но я не могу сделать это в Dax, потому что я не разбираюсь в синтаксисе
Ответ №1:
Предполагая, что ваши данные представляют собой таблицу, которую вы опубликовали в своем вопросе, без столбца%
T
таблица
можно написать меру для вычисления общего значения текущей строки, затем значения для элемента для сравнения, установив контекст фильтра для элемента для сравнения CALCULATE
и, наконец, вычислить процент с помощью DIVIDE
%DIFF FORM ELEMENT SPECIFIED =
VAR CurrentValue =
SUM ( T[Total Value] )
VAR ElementToCompare =
SELECTEDVALUE ( T[Element to compare the total] )
VAR CompareValue =
CALCULATE (
SUM ( T[Total Value] ),
T[Element] = ElementToCompare,
REMOVEFILTERS ( T )
)
VAR Result =
DIVIDE (
CurrentValue - CompareValue,
CompareValue
)
RETURN
Result
используя эту меру в виде таблицы, мы получаем нужную таблицу
Ответ №2:
Используйте DAX
, чтобы получить значение, необходимое для нахождения разницы, а затем выполнить вычисление. Я разделяю это на 2 для лучшего понимания.
- создайте новый столбец, используя
LOOKUPVALUE
для получения значения для сравнения.Value to be compared = LOOKUPVALUE([Total Value],[Element],[Elemet to be compared])
- Теперь это просто.Используйте свои вычисления в другом столбце. Убедитесь, что вы используете
%
формат для этого столбца.total %diff from element specified = ('Table'[Total Value] - 'Table'[Value to be compared])/'Table'[Value to be compared]