Страницы: 1
RSS
PQ: Разделение данных по запятой в ячейке на несколько строк с частичным сохранением данных
 
Коллеги, добрый день,

Имеется массив исходных данных, примерная структура отражена в файле-примере. В этом массиве, помимо всего прочего, есть столбец invoices. В этом столбце записываются номера выставленных счетов. Иногда обстоятельства складываются так, что в одной ячейке указывается не один счет, а несколько, и они разделены запятой. Эти счета и суммы по ним впоследствии нужны в других отчетах.

Отсюда задача - с помощью запроса PQ вычленить в отдельную таблицу то же самое, но вот эти счета, которые в исходных данных были указаны в одной ячейке, разделить так, чтобы в каждой ячейке был только один счет; при этом в остальных ячейках вновь созданной строки должны быть дубликаты данных ячеек той строки, из которой произошло вычленение, кроме ячейки сумма (там нужны нули).

Возможно, я объяснил не очень понятно, так что готов дополнить в случае возникновения вопросов. Также прикладываю пример для наглядности.

Заранее прошу прощения у модерации, если название темы не отражает сути вопроса, у меня не получилось на данный момент сформулировать иначе.

Спасибо.
Изменено: Framed - 25.10.2018 12:56:16
 
День добрый!
Аналогичная задача разбиралась на прошлой недели.
https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=110018&TITLE_SEO=110018-power-query-postrochnoe-razbivka-dannykh&MID=912908#message912908
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Вас должен интересовать вот этот код, который вставляется в пользовательский столбец
Цитата
List.Zip({ Text.Split([Даты поступления], ";"), Text.Split([#"Кол-во в поcтуплении"], ";") })
Изменено: Александр - 25.10.2018 13:01:46
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр, благодарю, и вправду, не заметил.

Сейчас попробовал - получилось, единственный нюанс - сумма тоже дублируется. Нет способов предотвратить дублирование суммы после разделения?
Изменено: Framed - 25.10.2018 13:02:31
 
Цитата
Framed написал:
ет способов предотвратить дублирование суммы после разделения?
Так же в код добавьте, должен null выдавать
Изменено: Александр - 25.10.2018 13:05:36
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр,

Вроде бы адаптировал под себя, но не могу добиться нулей в новых строках. Не подскажете, что я делаю не так?

Спасибо.
 
Framed, смотрите. Правда пришлось пару шагов добавить. А Вы не полностью алгоритм изучили в примере
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Александр, спасибо Вам.

Я не то чтобы не полностью изучил - мне не совсем понятен смысл:

1. Замены запятых на точки с запятыми;
2. Почему мы объединяем Total с Invoice в строке с кодом List.Zip
 
Цитата
Framed написал:
1. Замены запятых на точки с запятыми;
Это я добавил. Этого не понадобилось б, если не было запятой в "Total"
Цитата
Framed написал:
2. Почему мы объединяем Total с Invoice в строке с кодом List.Zip
Что бы получить 0 во второй строке, как Вы просили. В List.Zip указываются столбцы которые нужно разложить, остальные дублируются  
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Спасибо за разъяснения, теперь все понятно.

Хорошего Вам дня.
Страницы: 1
Наверх