Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Объединение текстовых столбцов в которых могут быть пустые значения, Power Query
 
Есть таблица из ~20 столбцов.
В любом столбце могут быть пустые значения в отдельных ячейках. Все значения текстовые.  

Нужен столбец, который объединяет все 20. PQ выдает null если в конкатинацию попало хоть одно пустое значение :(
В голову приходит только дурная бесконечная цепочка If'ов, проверяющая, не пустое ли значение цепляется. Но это -  8-0
Помогите, пожалуйста, есть ли простые способы.
 
А есть необходимость объединять именно через PQ? Просто "&" никак?
 
Доброе время суток
Цитата
_Igor_61 написал:
Просто "&" никак?
Наверно для крутого формулиста проблем не составит сделать сцепление значений ячеек через разделитель с пропуском пустых, но это выше моих познаний. Я лучше в Power Query делать буду. :)
Изменено: Андрей VG - 7 Сен 2018 22:30:32
 
Цитата
Xel написал:
В голову приходит только дурная бесконечная цепочка If'ов
А не приходит в голову еще более дурная идея приложить пример, что есть - что надо ?
 
Цитата
БМВ написал:
А не приходит в голову еще более дурная идея приложить пример,
Привет, Михаил.
А можно перевести для не посвящённых - на основании чего вдруг стало дурной идеей выкладывание примера? Сейчас посмотрел - правила на этот счёт не меняли.
ТСу же, видимо, спешить не куда, дождётся рано или поздно либо телепата, либо сам приобретёт необходимые способности, либо, в конце концов - работу поменяет.
 
Андрей VG,  Андрей, вечер добрыйю. Да пора уже контроль устанавливать на первое сообщение, и если в приложении нет XLS*?, то переспрашивать несколько раз, типа уверены? точно не забыли? Остался последний шанс!,  ну самый последний! ,  …..  Так и то порой прикрепят одно, а на деле  - совсем иное.
 
Цитата
Андрей VG написал:
Цитата
Наверно для крутого формулиста проблем не составит сделать сцепление значений ячеек через разделитель с пропуском пустых, но это выше моих познаний. Я лучше в Power Query делать буду.
Формула эксель там как раз проще некуда, т.к. не надо ничего пропускать. Но результат нужен в PQ, потому что по этому полю хотелось бы объединить 2 таблицы.

Нужно в PQ получить тот же самый результат, который дает формула. На листе "исходные данные" для примера желтым цветом то, что надо. На листе "запрос" то, что выдает PQ, если нарисовать в нем формулу аналогичную экселевской, а другую я не умею.
Изменено: Xel - 10 Сен 2018 14:01:49
 
Просто вы не умеете их готовить  :D
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица2"]}[Content],
    #"Вставлено: объединенный столбец" = Table.AddColumn(Источник, "Сведено", each Text.Combine({Text.From([Аналитика1], "ru-RU"), Text.From([Аналитика2], "ru-RU"), Text.From([Аналитика3], "ru-RU")}, ""), type text)
in
    #"Вставлено: объединенный столбец"

Надеюсь в картинках понятно объяснил куда тыкать мышкой?
 
Цитата
PooHkrd написал:
Надеюсь в картинках понятно объяснил куда тыкать мышкой?
Ура! Спасибо!
Цитата
PooHkrd написал:
Просто вы не умеете их готовить  
Кто умеет, тот тут советы чайникам дает  :oops:
Спасибо большое!
Изменено: Xel - 10 Сен 2018 14:18:43
 
PooHkrd,
кстати, любопытное наблюдение.
При объединении столбцов через "Добавление столбца" используется функция Text.Combine, которая не добавляет лишние разделители между пустыми значениями, например: "Ваcя" "null" "Сидоров" c разделителем "=" будет "Вася=Сидоров"
А вот через "Преобразование" то же самое действие по умолчанию выполняется функцией Table.CombineColumns (точнее - Combiner.CombineTextByDelimiter), и она ставит разделители между пустыми значениями: "Вася==Сидоров". Для некоторых целей (когда нужно разбивать обратно, например, для преобразования многоуровневой шапки таблицы) это важно.
F1 творит чудеса
 
Максим Зеленский, ага, вот где собака зарыта!. я с полгода назад 10 столбцов умучился объединять из-за этих null чтобы потом разъединить. Спасибо за наводку.
А вот разбивает обратно пустоты он коряво: вместо null ставит пустую строку "".
Изменено: PooHkrd - 11 Сен 2018 10:10:33
 
Цитата
PooHkrd написал:
он коряво: вместо null ставит пустую строку "".
ну это by design. разбивая строку на части, мы должны получить строки, а не числа, даты или null.
F1 творит чудеса
Страницы: 1
Читают тему (гостей: 2)
Наверх