#excel #powerpivot
#excel #powerpivot
Вопрос:
╔═══════╦═════╦═══════╦════════╦═══════╦════════╗
║ Month ║ Day ║ City1 ║ ║ City2 ║ ║
╠═══════╬═════╬═══════╬════════╬═══════╬════════╣
║ ║ ║ Abs. ║ Relat. ║ Abs. ║ Relat. ║
║ Jan ║ 1 ║ X ║ 10% ║ Z ║ -3% ║
║ ║ 2 ║ X ║ -7% ║ Z ║ 5% ║
║ ║ ... ║ ║ ║ ║ ║
║ ║ 31 ║ ║ ║ ║ ║
║ Feb ║ 1 ║ ... ║ ... ║ ... ║ ... ║
║ ║ 2 ║ ║ ║ ║ ║
║ ║ ... ║ ║ ║ ║ ║
║ ║ 31 ║ ║ ║ ║ ║
╚═══════╩═════╩═══════╩════════╩═══════╩════════╝
Abs: абсолютный; Relat.: относительный
Я новичок в power pivot.
Мне нужно создать такую таблицу, где относительный столбец основан на среднем значении за последние 4 недели (за тот же день недели).
пример: 1 января была пятница, поэтому:
- Относительный столбец вычислит среднее значение за последние 4 пятницы (4, 11,18, 25 декабря)
- Затем сравните с абсолютным значением (выраженным в%)
Как я могу вычислить этот относительный столбец?
Ответ №1:
Самый простой способ сделать это — разбить его на два этапа. Во-первых, создайте показатель, который вычисляет среднее значение за четыре предыдущие недели:
Average Abs = 0.25 * (
CALCULATE(SUM(Table1[Abs]),DATEADD(Table1[Date],-7, Day))
CALCULATE(SUM(Table1[Abs]),DATEADD(Table1[Date],-14, Day))
CALCULATE(SUM(Table1[Abs]),DATEADD(Table1[Date],-21, Day))
CALCULATE(SUM(Table1[Abs]),DATEADD(Table1[Date],-28, Day))
)
Важно: функция DateAdd будет работать только в том случае, если в вашем наборе дат нет пробелов. Если у вас есть дата без данных, вам нужно либо создать пустую запись в таблице данных для этой даты, либо (рекомендуемый вариант) создать таблицу словаря дат и связать с ней таблицу фактов.
Примечание: я предположил, что ваши данные возвращаются по крайней мере за 4 недели до начала вашего отчета, в противном случае сложение и деление на 4 не даст правильного среднего значения.
Затем создайте показатель, который сравнивает это значение со значением Abs для этой даты:
relat = DIVIDE(SUM(Table1[Abs]),[Average Abs])-1
Отформатируйте это как%.
На основе некоторых случайных данных, которые я сгенерировал, я получаю что-то похожее на это:
Комментарии:
1. Я создал таблицу словаря дат и связался с моей таблицей «основной источник». Я создал среднюю меру Abs, но когда я пытаюсь добавить к ЗНАЧЕНИЯМ, я получаю
2. Я получаю «Функция DATEADD работает только с непрерывными выборками даты». Прямо сейчас мои данные за январь-октябрь. Вы можете мне помочь?
3. В словаре дат не должно быть пробелов — должна быть запись для каждого дня, который попадает в ваш диапазон дат, а также за 4 недели до этого.
4. Убедитесь, что вы изменили среднюю функцию Abs, чтобы в части DATEADD использовался столбец даты вашего словаря дат, а не ваш основной источник.
5. Это сработало! Но теперь средний Abs дает те же результаты, что и абсолютный. Среднее значение Abs выглядит следующим образом: «ВЫЧИСЛИТЬ (СУММА (таблица 1 [aaa]);DATEADD(‘Date’ [Дата];-7; День))» (с 4 вычислениями). Чтобы дать вам контекст, Table1 — это таблица с несколькими датами за один и тот же день.