Power Query. Нарастающий итог 2
ฝัง
- เผยแพร่เมื่อ 19 ธ.ค. 2024
- В этом уроке мы изучим еще один способ сделать нарастающий итог в Power Query.
1:18 Нарастающий итог через Пользовательскую Функцию.
6:47 Нарастающий итог через List.Range и List.Sum
13:01 Нарастающий итог через List.Accumulate
16:37 Нарастающий итог в Excel.
19:34 Нарастающий итог через Сводную Таблицу.
Файлы для спонсоров Boosty: boosty.to/comr...
Файлы для спонсоров ВК: comrade...
Файлы для спонсоров TH-cam: • Post
Индивидуальное обучение: comrade-xl.ru/...
Страница: comrade-xl.ru/...
1:18 Нарастающий итог через Пользовательскую Функцию.
6:47 Нарастающий итог через List.Range и List.Sum
13:01 Нарастающий итог через List.Accumulate
16:37 Нарастающий итог в Excel.
19:34 Нарастающий итог через Сводную Таблицу.
Файлы для спонсоров Boosty: boosty.to/comrade-xl/posts/3d66dc29-fbac-4fea-876a-67ac5abe21e3?share=post_link
Файлы для спонсоров ВК: vk.com/comrade.excel?w=wall-185123800_293
Файлы для спонсоров TH-cam: th-cam.com/users/postUgyKyy4zMx6BUFLgWkJ4AaABCQ
Индивидуальное обучение: comrade-xl.ru/pq-training/
Страница: comrade-xl.ru/2020/01/08/power-query-123-narastayushiy-itog/
Тимур, спасибо! Как всегда - полезно, интересно, доходчиво и на высочайшем уровне. Ваш курс по PQ гораздо полезнее большинства платных. Надеюсь, что в Ваших планах выпуск и платных курсов по схожей тематике (Excel/PQ/Power BI/Power Pivot). Отправил небольшой перевод в поддержку. Желаю удачи, роста числа подписчиков и развития канала!
Большое спасибо! Очень приятно! Вы - моя мотивация.
Платные уроки я вроде как тоже планирую, но не сейчас.
Конечно, хотелось бы, чтобы меня просто больше поддерживали на добровольной основе, чтобы мне не приходилось ничего продавать. Мечтаю, чтобы с ростом канала росло и количество благодарных добрых подписчиков как вы.
Это гениально. Накликать результат и преобразовать в функцию😊
Шикарно!
Пускай не все запомню за первый просмотр плейлиста, но буду ориентироваться)
Спасибо!
Крутой канал. Отличные советы. Спасибо
1:18 Нарастающий итог через Пользовательскую Функцию.
6:47 Нарастающий итог через List.Range и List.Sum
13:01 Нарастающий итог через List.Accumulate
16:37 Нарастающий итог в Excel.
19:34 Нарастающий итог через Сводную Таблицу.
7:20 Мне кажется, этот момент не очевиден и требует разбора в отдельном видео. Что я имею в виду:
если мы в настраиваемом столбце пишем = #"Добавлен индекс"[Сумма продаж], то получаем список продаж в каждой ячейке;
если же мы в настраиваемом столбце пишем = [Сумма продаж], то есть без указания предыдущего шага, то получаем просто копию столбца "Сумма продаж"
Вот почему так? Как это работает? До сих пор нигде не было подробных пояснений. Заранее благодарю, если мой вопрос будет подробно разобран
Отличная работа. Вот еще вариант для умных таблиц: = СУММ(ПРОСМОТРX((ФИЛЬТР([ДАТА];[ДАТА]
Спасибо! Помог
Тимур, здравствуйте. Уроки и стиль подачи - высший класс. Возник вопрос: Почему Вы не указываете тип данных при объявлении аргументов? Соответственно, в каких случаях указание типа данных для аргументов необходимо? Спасибо за Уроки !
Здравствуйте, Наталья!
При создании пользовательских функций указывать тип данных необязательно. Это можно делать для себя, чтобы не забыть, что функция должна получать в качестве аргумента.
Если кому-то нужен будет нарастающий итог вычисляемый как мера, то для таблицы из видео: Накоп(Σ):=CALCULATE(SUM('Таблица1'[Сумма продаж]);
FILTER(ALLSELECTED('Таблица1');
'Таблица1'[Дата]
Спасибо! Эту меру я показываю в уроке Нарастающий итог 3 th-cam.com/video/k6taN9mew-8/w-d-xo.html
ЭСКЮЗЮМУА, А ГДЕ ПОСМОТРЕТЬ "НАРАСТАЮЩИЙ ИТОГ 1"?
th-cam.com/video/MtBLcY2J26M/w-d-xo.html
@@comrade_excel спасибо🙏💕, благодаря Вашим урокам, я узнал, что я оказывается пробковое дерево, но и благодаря им же, сегодня я на голову выше, себя вчерашнего
Тимур здравствуйте. Ещё раз хочу поблагодарить Вас за уроки.
Ввиду малого опыта не совсем уверен, что мой вопрос относиться именно к теме видео, но думаю рядом.
Я через новый столбец индекса хочу преобразовать данные.
Прошу указать на видео где можно найти инфу по преобразованию данной структуры.
Вся информация подаётся блоками (1,2,3,4 и 5) количество строк разное.
Конечная цель растянуть каждый блок в одну строку.
1drv.ms/x/s!AvHg5A6Wyul5gcQjKPX9sxdqw8VVWQ?e=6tGDgl
Здравствуйте, Герман!
Судя по описанию вам нужно изучить тему скученных данных.
Вот 3 урока на данную тему:
Скученные данные 1 - th-cam.com/video/lho-mCbiA-U/w-d-xo.html
Скученные данные 2 - th-cam.com/video/CXqByTBvnh8/w-d-xo.html
Скученные данные 3 - th-cam.com/video/1kYujtjpRKA/w-d-xo.html
Предлагаю изучить все 3 урока, повторив все за мной.
Если после этих трех уроков не получится, то напишите новый комментарий под любым из этих 3 уроков и приложите свой файл.
Здравствуйте, недавно начал разбираться в power query, большое спасибо за уроки. Подскажите, пожалуйста, почему если я добавляю во втором способе столбец как у вас в примере
=Table.AddColumn(table_add_col,"Диапазон",each List.Range([Список продаж], 0, [Индекс])),
то я получаю верный результат, но если я хочу сделать это же действие через преобразование столбца
= Table.TransformColumns(table_add_col,{"Список продаж",each List.Range(_, 0, [Индекс] )}),
то получаю ошибку, если только не задаю индекс числом напрямую?
Другими словами, как правильно сослаться на значения столбца индекса, если делать это через Table.TransformColumns?
Здравствуйте! Какую ошибку получаете?
@@comrade_excel появляется столбец со значениями Error, при нажатии на ячейку написано
"Expression.Error: Не удается применить доступ к полям в типе List.
Сведения:
Value=[List]
Key=Индекс"
@@РоманЛюбомудров А в моем решенном файле тоже ошибка?
@@comrade_excel в вашем файле нет ошибки, так как задача у вас решена через добавление столбца при помощи функции Table.AddColumn. Я делал параллельно с видео задание сам, и решил сделать не через добавление столбца а через функцию Table.TransformColumns. Но в этом случае я получил вышеуказанную ошибку. Я решил попробовать заменить функцию Table.AddColumn на Table.TransformColumns и в вашем решенном файле, и тоже получил такую же ошибку. Я передавал значения из столбца "Индекс" вот таким способом:
= Table.TransformColumns(table_add_col,{"Список продаж",each List.Range(_, 0, [Индекс] )})
Если число указать конкретно, например
= Table.TransformColumns(table_add_col,{"Список продаж",each List.Range(_, 0, 4 )})
то все работает, но передавать значения из столбца индекса у меня не получается, и я не понимаю с чем это связано. В случае если я использую Table.AddColumn все работает верно. Возможно я неправильно ссылаюсь на столбец в Table.TransformColumns, или в данной функции вообще не получится ссылаться на него, я не знаю, просто стало интересно почему у меня не работает :)
@@comrade_excel Посмотрел следующий урок о вычислениях, там в примере с рангом у вас происходит подобная ошибка и вы решаете это при помощи пользовательской функции
Спасибо
Тимур, спасибо большое за ваши ролики. Все очень наглядно и доходчиво объясняете. Но вот вопрос: как быть, если сумму нарастающим итогом необходимо рассчитать по нескольким параметрам??? Например, по Товару №1 в течение Периода №1 и Периода №2, по Товару №2 в течение периода №1 и Периода №2 и так далее. И Товаров в списке не 5 и не 10, а тысячи.
Надо видеть. Отправьте файл источник и таблицу, кусочек таблицы, которая должна получиться для примера, сделанный вручную. В облако загрузите и ссылку здесь напишите.
@@comrade_excel yadi.sk/i/7f_1YfSogeDLFw Требуется рассчитать нарастающий итог по каждому товару отдельно
И где таблица с тем, что должно получиться?
@@comrade_excel Сорри. Вот таблица с результатом, который должен получится. yadi.sk/i/7f_1YfSogeDLFw
@@КонстантинОрлов-ь9ч Здесь нужно решать при помощи пользовательской функции, т. е. первым способом из видео.
Разница лишь в том, что у функции будет не 2 параметра, а 3, т. е. параметр товар добавится. Вот так будет выглядеть код функции:
(Таблица, Наименование, КоличествоСтрок)=>
let
Товар = Table.SelectRows(Таблица, each ([Наименование товара] = Наименование)),
Индекс = Table.FirstN(Товар, КоличествоСтрок),
Сумма = List.Sum(Индекс[Количество])
in
Сумма
В самом запросе для добавления столбца индекса нужно будет сначала сделать группировку по полю "Товар" типа "Вся таблица" и в табличном столбце добавить столбец индекса.
Если не получилось, то ожидайте. Я сделаю отдельный урок по вашему примеру для модуля "Практика".
Спасибо за пример. Мне было бы приятно, если бы вы посмотрели больше моих роликов, потому что в них более чем достаточно материала для решения этой задачи.
Может кто захочет рассчитать нарастающий итог с помощью функции List.Accumulate..., типа, чтобы не суммировать гигантское количество цифр в каждой ячейке заново...
Так вот, это жутко тормознутый вариант! Не повторяйте моих ошибок. :)
СписокНакопительныхСумм = List.Accumulate(ТаблицаСИндексом[Сумма], {}, (НовыйСписок, ЯчейкаТаблицы) => НовыйСписок & {List.Sum({List.Last(НовыйСписок)} & {ЯчейкаТаблицы})}),
ТаблицаСНакопительнойСуммой = Table.AddColumn(ТаблицаСИндексом, "Накопительная сумма", each СписокНакопительныхСумм{[Индекс]} , Int64.Type)
как добавить новую строку?
- www.screencast.com/t/ZMeU3sa06
Спосибо
Я не понял вашего вопроса. На картинке вы добавляете столбец, а не строку.
што нажали здесь што строка ушла в низ www.screencast.com/t/g3llhofQ
если еа нажимаю энтер то закрываетьсеа окно
www.screencast.com/t/w3cxB7TfZ
Я нажимаю Enter. Попробуйте Shift Enter, если Enter не работает.
Спасибо