Разбить ячейку с условным разделителем
4step
Дата: Среда, 16.03.2022, 04:34 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад!
Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад! 4step
К сообщению приложен файл:
_1.xlsx
(10.7 Kb)
Ответить
Сообщение Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад! Автор - 4step Дата добавления - 16.03.2022 в 04:34
DrMini
Дата: Среда, 16.03.2022, 06:30 |
Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация:
195
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
4step , Доброго времени суток. Так? В ячейку B2 (Ваша немного изменённая формула):Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(A2; ПОИСК("|";A2;1)-1);"")
В ячейку C2 и протянуть куда надо:Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);ПОИСК("|";ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);1)-1);"")
4step , Доброго времени суток. Так? В ячейку B2 (Ваша немного изменённая формула):Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(A2; ПОИСК("|";A2;1)-1);"")
В ячейку C2 и протянуть куда надо:Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);ПОИСК("|";ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);1)-1);"")
DrMini
Ответить
Сообщение 4step , Доброго времени суток. Так? В ячейку B2 (Ваша немного изменённая формула):Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(A2; ПОИСК("|";A2;1)-1);"")
В ячейку C2 и протянуть куда надо:Код
=ЕСЛИОШИБКА(ЛЕВСИМВ(ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);ПОИСК("|";ПОДСТАВИТЬ($A2&"|";ОБЪЕДИНИТЬ("|";ИСТИНА;$B2:B2)&"|";"";1);1)-1);"")
Автор - DrMini Дата добавления - 16.03.2022 в 06:30
4step
Дата: Среда, 16.03.2022, 07:15 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 85
формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.
формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.4step
К сообщению приложен файл:
_1-1.xlsx
(13.2 Kb)
Сообщение отредактировал 4step - Среда, 16.03.2022, 07:16
Ответить
Сообщение формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.Автор - 4step Дата добавления - 16.03.2022 в 07:15
Egyptian
Дата: Среда, 16.03.2022, 07:37 |
Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 513
Репутация:
184
±
Замечаний:
0% ±
Excel 2013/2016
В ячейку B2. Протянуть вправо и вниз.Код
=TRIM(MID(SUBSTITUTE("|"&$A2;"|";REPT(" ";99));COLUMN(A1)*99;99))
В ячейку B2. Протянуть вправо и вниз.Код
=TRIM(MID(SUBSTITUTE("|"&$A2;"|";REPT(" ";99));COLUMN(A1)*99;99))
Egyptian
Ответить
Сообщение В ячейку B2. Протянуть вправо и вниз.Код
=TRIM(MID(SUBSTITUTE("|"&$A2;"|";REPT(" ";99));COLUMN(A1)*99;99))
Автор - Egyptian Дата добавления - 16.03.2022 в 07:37
4step
Дата: Среда, 16.03.2022, 08:27 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 85
DrMini & Egyptian, Очень благодарен за помощь!! =)
DrMini & Egyptian, Очень благодарен за помощь!! =) 4step
Ответить
Сообщение DrMini & Egyptian, Очень благодарен за помощь!! =) Автор - 4step Дата добавления - 16.03.2022 в 08:27
DrMini
Дата: Среда, 16.03.2022, 08:43 |
Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 1609
Репутация:
195
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.DrMini
Ответить
Сообщение при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.Автор - DrMini Дата добавления - 16.03.2022 в 08:43
bigorq
Дата: Среда, 16.03.2022, 08:56 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация:
47
±
Замечаний:
0% ±
Нет
4step , А текст по столбцам не подходит?
4step , А текст по столбцам не подходит?bigorq
Ответить
Сообщение 4step , А текст по столбцам не подходит?Автор - bigorq Дата добавления - 16.03.2022 в 08:56
китин
Дата: Среда, 16.03.2022, 09:06 |
Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7013
Репутация:
1073
±
Замечаний:
0% ±
Excel 2007;2010;2016
А текст по столбцам не подходит?
или PQ всемогущий тоже не катит? [vba]Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Текст полный", type text}, {"1", type any}, {"2", type any}, {"3", type text}, {"4", type text}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Текст полный"}), #"Дублированный столбец" = Table.DuplicateColumn(#"Другие удаленные столбцы", "Текст полный", "Копия Текст полный"), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Дублированный столбец", "Копия Текст полный", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Копия Текст полный.1", "Копия Текст полный.2", "Копия Текст полный.3", "Копия Текст полный.4"}), #"Удаленные нижние строки" = Table.RemoveLastN(#"Разделить столбец по разделителю",1) in #"Удаленные нижние строки"
[/vba]
А текст по столбцам не подходит?
или PQ всемогущий тоже не катит? [vba]Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Текст полный", type text}, {"1", type any}, {"2", type any}, {"3", type text}, {"4", type text}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Текст полный"}), #"Дублированный столбец" = Table.DuplicateColumn(#"Другие удаленные столбцы", "Текст полный", "Копия Текст полный"), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Дублированный столбец", "Копия Текст полный", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Копия Текст полный.1", "Копия Текст полный.2", "Копия Текст полный.3", "Копия Текст полный.4"}), #"Удаленные нижние строки" = Table.RemoveLastN(#"Разделить столбец по разделителю",1) in #"Удаленные нижние строки"
[/vba]китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение А текст по столбцам не подходит?
или PQ всемогущий тоже не катит? [vba]Код
let Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Текст полный", type text}, {"1", type any}, {"2", type any}, {"3", type text}, {"4", type text}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Измененный тип",{"Текст полный"}), #"Дублированный столбец" = Table.DuplicateColumn(#"Другие удаленные столбцы", "Текст полный", "Копия Текст полный"), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Дублированный столбец", "Копия Текст полный", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"Копия Текст полный.1", "Копия Текст полный.2", "Копия Текст полный.3", "Копия Текст полный.4"}), #"Удаленные нижние строки" = Table.RemoveLastN(#"Разделить столбец по разделителю",1) in #"Удаленные нижние строки"
[/vba]Автор - китин Дата добавления - 16.03.2022 в 09:06
4step
Дата: Среда, 16.03.2022, 15:10 |
Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 85
Благодарю за подсказку! =)
Благодарю за подсказку! =)4step
Ответить
Сообщение Благодарю за подсказку! =)Автор - 4step Дата добавления - 16.03.2022 в 15:10
jakim
Дата: Среда, 16.03.2022, 19:57 |
Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1197
Репутация:
313
±
Замечаний:
0% ±
Excel 2010
Ещё вариант PQ
[vba]Код
let Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Текст полный", type text}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type","Текст полный",Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv),{"Текст полный.1", "Текст полный.2", "Текст полный.3", "Текст полный.4"}), #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Текст полный.1", type text}, {"Текст полный.2", type text}, {"Текст полный.3", type text}, {"Текст полный.4", type text}}) in #"Changed Type1"
[/vba]
Ещё вариант PQ
[vba]Код
let Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Текст полный", type text}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type","Текст полный",Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv),{"Текст полный.1", "Текст полный.2", "Текст полный.3", "Текст полный.4"}), #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Текст полный.1", type text}, {"Текст полный.2", type text}, {"Текст полный.3", type text}, {"Текст полный.4", type text}}) in #"Changed Type1"
[/vba]jakim
Сообщение отредактировал Serge_007 - Четверг, 17.03.2022, 09:19
Ответить
Сообщение Ещё вариант PQ
[vba]Код
let Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Текст полный", type text}}), #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type","Текст полный",Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv),{"Текст полный.1", "Текст полный.2", "Текст полный.3", "Текст полный.4"}), #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Текст полный.1", type text}, {"Текст полный.2", type text}, {"Текст полный.3", type text}, {"Текст полный.4", type text}}) in #"Changed Type1"
[/vba]Автор - jakim Дата добавления - 16.03.2022 в 19:57
прохожий2019
Дата: Среда, 16.03.2022, 21:49 |
Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация:
317
±
Замечаний:
0% ±
365 Beta Channel
так не проще? [vba]Код
let f=(x)=>{x}&Text.Split(x,"|"), nms = {"Текст полный","1".."4"}, from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Текст полный], to = Table.FromList(from,f,nms) in to
[/vba]
так не проще? [vba]Код
let f=(x)=>{x}&Text.Split(x,"|"), nms = {"Текст полный","1".."4"}, from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Текст полный], to = Table.FromList(from,f,nms) in to
[/vba] прохожий2019
К сообщению приложен файл:
4069.xlsx
(18.0 Kb)
Сообщение отредактировал прохожий2019 - Среда, 16.03.2022, 21:53
Ответить
Сообщение так не проще? [vba]Код
let f=(x)=>{x}&Text.Split(x,"|"), nms = {"Текст полный","1".."4"}, from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Текст полный], to = Table.FromList(from,f,nms) in to
[/vba] Автор - прохожий2019 Дата добавления - 16.03.2022 в 21:49