Страницы: 1
RSS
[PowerPivot, Pivot table] Срез для Сводной с посчитанными данными в ПоверПивот (план, факт), Созданы 2 дополнительные колонны в ПоверПивот. Не работает Срез в построенной Сводной
 
Доброго времени суток!

Создал в ПоверПивот таблицу дат "Календарь (Calendar)". Там сделал 2 колонны, в которых идет подсчет количества дат из основной таблицы "Table1" (обработанной в Power Query) меньших, чем дата в колонне Календаря:

Код
plan=if('Calendar'[Date]>max(Table1[plan]);BLANK();CALCULATE(count(Table1[plan]);FILTER(Table1;Table1[plan]<='Calendar'[Date])))
fakt=if('Calendar'[Date]>TODAY();BLANK();CALCULATE(count(Table1[fakt]);FILTER(Table1;Table1[fakt]<='Calendar'[Date])))

Результат в колоннах считается верно, как и в построенной Сводной тоже. Однако Сводная не реагирует на Срез по заголовкам Table1.
Думаю, проблема в формуле, и, может, есть смысл создать меры в основной таблице, но тут я бессилен.

Таблицы (Calendar и Table1) связать не получится, т.к. в Table1 имеются 2 колонны с числами (plan, fakt), да и объединять их тоже нельзя из-за последующей обработки.

Заранее спасибо!
 
Maximilian, как же Вас угораздило прийти к такой логике постановки и решения задач? Все-таки справочники (в Вашем случае календарь) нужны для того, чтобы из них извлекать информацию, а не наоборот, в них затягивать..ну да ладно.. всякое бывает. Во-вторых, без связей срез из другой таблицы априори не будет работать, поэтому связи нужны. В вашем случае требуется использовать две  связи (для расчета разных мер "план" и "факт"). Во вложении пример с решением Вашей задачи, есть одно но - меры считают по всем датам календаря до самой последней. Как наложить ограничения в данном случае я не знаю - моих навыков на это не хватает.
Изменено: Vladimir Chebykin - 16.01.2019 13:59:05
 
Maximilian,

Тоже пока не сообразил, как наложить ограничения, о которых писал Vladimir Chebykin, но привёл исходную модель данных к более адекватному, с моей точки зрения, формату.
Изменено: Aleksei_Zhigulin - 16.01.2019 13:52:36
 
Vladimir Chebykin, наверное, так надо:
Код
ПЛАН =CALCULATE(COUNTA(Table1[plan]);FILTER(ALL('Calendar'[Date]);'Calendar'[Date]<=MAX('Table1'[plan])))

Код
ФАКТ =CALCULATE(COUNTA(Table1[fakt]);FILTER(ALL('Calendar'[Date]);'Calendar'[Date]<=MAX('Table1'[fakt]));USERELATIONSHIP('Calendar'[Date];Table1[fakt]))

тогда вот так выходит:

Если нужно, чтобы все дни в промежутках выводило, то тогда в вашей формуле нужно придумывать ограничитель максимальной даты, а какой он должен быть - х.з., пусть автор скажет
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
Если нужно, чтобы все дни в промежутках выводило,
судя по примеру, ТС именно так и хочет. А вот как
Цитата
Максим Зеленский написал:
придумывать ограничитель максимальной даты
например (вместо автора) поставим ограничитель как крайняя дата из таблицы 'Table1' по полю план? Это я спрашиваю из-за собственного интереса, т.к. не знаю как это сделать. Максим Зеленский, подскажете?
Изменено: Vladimir Chebykin - 16.01.2019 15:33:21
 
Наверное хвостик вот так переписать - вместо
Код
MAX('Table1'[plan])

написать
Код
CALCULATE(MAX('Table1'[plan]);ALL(Calendar))

но не проверял
F1 творит чудеса
 
Спасибо за ваши ответы, полностью переосмыслил необходимость Календаря. Думал через него строить график со значениями для каждого календарного дня, чтобы не было растянутых соединений, если ближайшие точки, например, через неделю. Но скорее всего это добавит лишних хлопот.

Свел в PQ все даты в одну колонку. Но теперь вопрос: как сделать так, чтобы на графике кривая ФАКТ шла до сегодняшнего дня (нарастающая/кумулятивная), а ПЛАН до последней даты? При этом нулевые значения для обоих кривых не показывались.

(возможно стоит поменять тему (описание убрать) на: [PowerPivot, Pivot table] График по сводной: план до текущего числа, факт до конца)
 
Так нужно? (во вложении).
два замечания:
1. если Вы не используете календарь, то в графике отсутствуют даты, в которые ничего не происходило. Из-за этого у Вас в графике не равномерная цена деления получается: в бол-ве случаев один день, где-то два или три, где-то неделя...
2. пишите "fact", а не "fakt".. просто не удобно читать.

П.С. при создании мер возникла аналогичная проблема по ограничению выводимых значений до последней даты (сообщения #2, #3 в этой теме). Решил с помощью доп. меры расчет MAX даты со значением и связки с функцией IF.
Изменено: Vladimir Chebykin - 18.01.2019 13:51:26
 
Vladimir Chebykin, спасибо, почти оно.

По пунктам:
1. да, именно от не равномерного деления и пытался избавится, но не знал как. Т.е. лучше вернуть Календарь? А что будет тогда с мерой?

2. писал русские план и факт латиницей
 
я перезалил файл в сообщении #9. Теперь два варианта на выбор: с календарем и без. Проверяйте.

UPD: так же исправил сумму факта накопительным итогом до "СЕГОДНЯ" - сначала не заметил просто, что это надо.
Изменено: Vladimir Chebykin - 18.01.2019 13:52:42
 
Vladimir Chebykin,огромное спасибо! То, что и хотел, а "до сегодня" подправлял сам, получилось также. Но не могу понять, почему значения в срезах "затемнены", хотя и работают исправно.

Интереса ради: добавил коэффициенты эффективности в дополнительную колонну:
Код
=RELATED(eff[koef])
Но как избавится от нее, добавив значения/ссылку на другую таблицу в меры plan_eff и fact_eff? И есть ли в этом смысл в плане производительности (в таблице будет около 20 тысяч строк)?
 
про коэффициенты не понял, что вы хотите сделать.
А вот странное поведение среза для меня остается загадкой...я сам первый раз такое вижу...скорее всего я где-то нарушил логику в мерах.. Может кто-то из других форумчан посмотрит файл и сможет объяснить причину, почему все поля в срезе затемнены как если бы они были скрыты, но при этом еще и работают?
Страницы: 1
Наверх