Страницы: 1
RSS
Power Query создание дополнительного с признаком B2B/B2C при объединении нескольких таблиц
 
Добрый день! Коллеги, нужна ваша помощь в решении задачи на PQ. В файле примере есть запрос all в котором на шаге addB2 определена принадлежность к B2B или к B2C, в данном случае на основе имени листа. На следующем шаге с помощью Table.Combine все данные собираются в одну таблицу. Подскажите пожалуйста как добавить в итоговую таблицу столбец с B2B или B2C, который был получен на предыдущем шаге?

Можно конечно развернуть таблицу из столбца fn c помощью Table.ExpandTableColumn и затем удалить ненужные столбцы, но уверен, что есть более красивое решение.
 
Уважаемые модераторы, добавьте пожалуйста в название темы слово "столбца". Должно быть "Power Query создание дополнительного столбца с признаком B2B/B2C при объединении нескольких таблиц".
 
Доброе время суток
Цитата
Murderface_ написал:
развернуть таблицу из столбца fn c помощью Table.ExpandTableColumn и затем удалить ненужные столбцы, но уверен, что есть более красивое решение.
Не глядя в книгу - выполнить Table.ExpandTableColumn только для нужных столбцов, чтобы потом не удалять не нужное  :)
 
Андрей VG, не глядя не совсем так. В таблице из столбца fn нужное все, а данные которые нужно добавить в итоговую таблицу в столбце B2.
 
Murderface_, например, так
Код
= Table.AddColumn(addB2,"fn2",each[a=[B2],b=Table.AddColumn([fn],"B2",each a)][b])
 
Готово
 
Михаил Л, lostandleft, спасибо вам большое, работает!
Михаил Л, вы не могли бы объяснить как это работает?
Код
[a=[B2],b=Table.AddColumn([fn],"B2",each a)][b]
Выглядит просто но понять не могу.
 
Цитата
Murderface_ написал:
как это работает?
Все просто. Создается столбец со значением столбца B2
Короче так:
Код
= Table.AddColumn(filter,"fn",each 
                             let 
                               a=if Text.StartsWith([Name], "b2b") then "B2B" else "B2C",
                               b=Table.PromoteHeaders([Data]) 
                             in Table.AddColumn(b,"B2",each a)
                 )
 
Михаил Л, спасибо за пояснения  :)  
Страницы: 1
Наверх