31 - На М - List.TransformMany или как ускорить запрос
2024 ж. 29 Сәу.
508 Рет қаралды
Решил записать разбор по поводу сегодняшнего обсуждения в чате - пилим полное декартово через List.TransformMany и разбираемся, почему исходный запрос "тупит" - вышло немножко долго, но на мой взгляд небезынтересно
Кому интересно:
мой курс по Power Query - akademia-excel.ru/powerquery?...
а по промокоду buchlotnik получите дополнительную скидку
телега тут - t.me/pbi_pq_from_tank
чат телеги тут - t.me/pbi_pq_from_tank_chat
Михаил, спасибо! Как всегда отличный материал и разбор!
Это было полезно! Разбор 🔥 , спасибо!
Класс! Надо будет пересматривать и руками пробовать. И не один раз...
Отличный разбор. Спасибо!
Это магия! После первого просмотра было ощущение, что меня обхитрили. Пришлось разбираться где. 😃
меня эти видосики мотивируют изучать M, это прям прикольно и круто. Спасибо!!!
Очень познавательно, спасибо!
Здорово
Шикарно просто. Для закрепления инфы надо будет повторить ручками код. Когда не показывался промежуточный результат функции - в голове пытался крутить списки и представить, что же выдаст List.TransformMany )).
сорян, если бы ещё и все промежуточные показывать - тут бы на пару часов видео вышло ))) а так напоминаю про картинку - t.me/pbi_pq_from_tank/165 )))
@@buchlotnik Михаил, а где найти на канале все такие картинки-схемы с визуализацией трансформации данных?
их немного - все по хештегу фильтруются
Результат разный в решении и 05_buch
да, там строки идут в другом порядке, о чём в видео и говорится - общее их количество и содержание при этом одинаковы - если это принципиально - достаточно поменять местами списки в TransformMany
@@buchlotnik у меня просто поменять местами списки. Вышло вот так: let from = Excel.CurrentWorkbook(){[Name="IshDan"]}[Content], f=(x)=>[a = Text.SplitAny(x{0},"()"), b = Text.SplitAny(x{1},"()"), bb = Text.Split(b{1},"/"), c = a{0}, d = b{2}, f=(x)=>Text.Split(a{1},", "), g=(x,y)=>[a=c&" "&y&" "&x, b = {a,a&d}][b], z = List.TransformMany(bb,f,g)][z], ttl = Table.ToList(from,f), cmb = List.Combine(ttl), to = Table.FromList(cmb,(x)=>x,{"Номенклатура","ИД"}) in to
ну всё правильно вышло )))
Волшебник. А комп хоть какой, параметры...
ничего запредельного: Intel(R) Core(TM) i5-7600 CPU @ 3.50GHz, оперативы 32,0 ГБ, x64 win10