Друзья, привет! Суть задачи, которую я пытаюсь решить - есть недельные данные, которые мне нужно свести по месяцам. Алгоритм для этой цели придумал, создал запрос "НеделиЧастиМесяца", там я высчитываю долю каждой недели в прошлом и текущем месяце, ну а потом, нужно просто объединить Основную таблицу с долями недели и перемножить, данная часть работает - все отлично. НО, на этапе, когда мне нужно сгруппировать полученные данные по месяцам (см. скриншот), происходит какой-то колапс, полное обновление PQ занимает около 40 минут, когда там максимум 16к строк.
Я не понимаю, почему группировка так крашит файл, может быть не в ней дело? Так же у меня было предположение, что это из-за столбца с индексом, но без него обойтись я не смогу. Надеюсь супер умы помогут советом. Файл во вложении.
= Table.AddColumn(
#"Добавлен индекс",
"Новый месяц",
each try if [Атрибут.1] = "% Дней прошлого месяца"
then [Месяц]
else#"Добавлен индекс"[Месяц]{[Индекс]+1}
otherwise [Месяц])
Нельзя так ссылаться на строку ниже. Поищите в моих постах я предлагал здесь универсальную быструю функцию как добавлять к таблице столбцы со смещением. Щас некогда, Если не найдете. Позже покажу. Или еще кто поможет.
Михаил Л, удивительно, как все начало летать, запрос грузиться за секунду. Спасибо!
Очень странно, что вариант со ссылкой на ячейку через инедкс дает большинство автор в интернете, ну по крайне мере в литературе, в которой я искал, без намека на производительность.
OblivionR, этот пост. Михаил как раз дал вам решение по данному алгоритму. Вот его и изучайте. А про большинство авторов скажу так: не все авторы одинаково полезны. По формированию столбца с накопительной суммой тоже это же большинство предлагает похожий подход, но более быстрого решения чем при помощи List.Generate я ещё не видел.
Кстати, заметил один небольшой "косяк", при подобном методе (смещение на одну строку ниже) последняя строка из добавляемой таблицы(столбца) имеет значение null
OblivionR, это не косяк, это так задумано, от списка же откусывается первый элемент, значит в конце будет на один элемент меньше. При этом никто абсолютно не мешает добавить к нему нужное вам значение в конце.