Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Текст из ячейки с переносами строки разделить на несколько ячеек построчно
 
Добрый день! Подскажите, пожалуйста, как разделить текст указанный в одной ячейке на несколько ячеек. Пример во вложении.
Спасибо
 
Вариант на Power Query:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Исходная таблица", type text}, {"Столбец1", type text}}),
    #"Разделить столбец по разделителю" = Table.SplitColumn(#"Измененный тип","Столбец1",Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv),{"Столбец1.1", "Столбец1.2", "Столбец1.3", "Столбец1.4", "Столбец1.5", "Столбец1.6", "Столбец1.7", "Столбец1.8", "Столбец1.9", "Столбец1.10", "Столбец1.11", "Столбец1.12", "Столбец1.13", "Столбец1.14", "Столбец1.15", "Столбец1.16", "Столбец1.17", "Столбец1.18", "Столбец1.19", "Столбец1.20"}),
    #"Другие столбцы с отмененным свертыванием" = Table.UnpivotOtherColumns(#"Разделить столбец по разделителю", {"Исходная таблица"}, "Атрибут", "Значение"),
    #"Удаленные столбцы" = Table.RemoveColumns(#"Другие столбцы с отмененным свертыванием",{"Атрибут"}),
    #"Переименованные столбцы" = Table.RenameColumns(#"Удаленные столбцы",{{"Значение", "Товары"}})
in
    #"Переименованные столбцы"

Можно конечно сделать разбивку через списки, так универсальнее будет, но я этого еще не очень сильно умею.
BOEHKOM, Сколько может быть в одной ячейке перечислено товаров?
Изменено: PooHkrd - 19 Мар 2018 17:16:09
 
А у меня  через Power Query вот так получилось:
Код
let
    Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Исходная таблица", type text}, {"Столбец1", type text}}),
    #"Разделить столбец по разделителю" = Table.ExpandListColumn(Table.TransformColumns(#"Измененный тип", {{"Столбец1", Splitter.SplitTextByDelimiter("#(lf)", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Столбец1"),
    #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Столбец1", type text}})
in
    #"Измененный тип1"
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
BOEHKOM, ЗДЕСЬ есть решение формулами.
 
Dyroff, Спасибо за вариант. По ковыряюсь в нем на досуге. Пора бы уже со списками научиться работать - очень мощный и универсальный инструмент!
Изменено: PooHkrd - 19 Мар 2018 17:26:49
 
PooHkrd, Да я его случайно обнаружил. Попытался сделать сначала тоже самое что и у Вас, но из-за того, что не знал, как из столбцов транспонировать в строки, стал рыть дальше и обнаружил, что у инструмента "разделить столбец" есть вариант разбития на строки а не только на столбцы) Ну а дальше пользовательский разделитель- перевод строки:)
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
Цитата
Dyroff написал:
обнаружил, что у инструмента "разделить столбец" есть вариант разбития на строки
Это что теперь кнопка такая имеется? А где, если не секрет? Что за версия Excel у вас?
 
PooHkrd, у меня 2016 Excel
Скрытый текст
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!
 
У меня такого нету  :( Надо обновляться.
 
BOEHKOM, в этой теме есть макрос для разбивки. Работает с выделенным диапазоном. После него останется только автозаполнить пустые ячейки значениями из верхних — в комментариях есть макросы.
Изменено: Jack Famous - 19 Мар 2018 18:18:39
«Тот, кто несет фонарь, спотыкается чаще, чем тот, кто идет следом.»
Иоганн Пауль Фридрих Рихтер
 
PooHkrd, это кнопка из Power Query - можно скачать с сайта Microsoft. Поддерживаются следующие версии Office:
  • Microsoft Office 2010 Professional Plus c Software Assurance
  • Microsoft Office 2013
В 2016 эта надстройка уже есть
 
формулы
 
Формула
Код
=IFERROR(INDEX(A$1:A$5;AGGREGATE(15;6;ROW(B$1:B$5)/(B$1:E$5<>"");ROWS($9:9)));"")
 
webley, Ну, если посмотреть мой пост за номером 2 в этой теме то я как бы в курсе откуда кнопка. Другой вопрос, что обновления на моей корпоративной версии офиса ставятся через пень-колоду, и в моей версии Excel 2016 такой кнопки еще нету.
Страницы: 1
Читают тему (гостей: 1)