Разбить ячейку с условным разделителем
4step
Дата: Среда, 16.03.2022, 04:34 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад!
Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад! 4step
К сообщению приложен файл:
_1.xlsx
(10.7 Kb)
Ответить
Сообщение Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад! Автор - 4step Дата добавления - 16.03.2022 в 04:34
DrMini
Дата: Среда, 16.03.2022, 06:30 |
Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2048
Репутация:
317
±
Замечаний:
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
Группа: Пользователи
Ранг: Участник
Сообщений: 87
формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.
формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.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
Группа: Проверенные
Ранг: Ветеран
Сообщений: 531
Репутация:
194
±
Замечаний:
0% ±
Excel 2013/2016
В ячейку B2. Протянуть вправо и вниз.
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ("|"&$A2 ;"|";ПОВТОР(" ";99));СТОЛБЕЦ(A1 )*99;99))
В ячейку B2. Протянуть вправо и вниз.
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ("|"&$A2 ;"|";ПОВТОР(" ";99));СТОЛБЕЦ(A1 )*99;99))
Egyptian
Ответить
Сообщение В ячейку B2. Протянуть вправо и вниз.
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ("|"&$A2 ;"|";ПОВТОР(" ";99));СТОЛБЕЦ(A1 )*99;99))
Автор - Egyptian Дата добавления - 16.03.2022 в 07:37
4step
Дата: Среда, 16.03.2022, 08:27 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 87
DrMini & Egyptian, Очень благодарен за помощь!! =)
DrMini & Egyptian, Очень благодарен за помощь!! =) 4step
Ответить
Сообщение DrMini & Egyptian, Очень благодарен за помощь!! =) Автор - 4step Дата добавления - 16.03.2022 в 08:27
DrMini
Дата: Среда, 16.03.2022, 08:43 |
Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2048
Репутация:
317
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.DrMini
Ответить
Сообщение при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет
Всё прекрасно обновляется. Просто вставил через буфер обмена.Автор - DrMini Дата добавления - 16.03.2022 в 08:43
bigorq
Дата: Среда, 16.03.2022, 08:56 |
Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 205
Репутация:
47
±
Замечаний:
0% ±
Нет
4step , А текст по столбцам не подходит?
4step , А текст по столбцам не подходит?bigorq
Ответить
Сообщение 4step , А текст по столбцам не подходит?Автор - bigorq Дата добавления - 16.03.2022 в 08:56
китин
Дата: Среда, 16.03.2022, 09:06 |
Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация:
1079
±
Замечаний:
0% ±
Excel 2007;2010;2016
А текст по столбцам не подходит?
или PQ всемогущий тоже не катит?
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
#"Удаленные нижние строки"
А текст по столбцам не подходит?
или PQ всемогущий тоже не катит?
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
#"Удаленные нижние строки"
китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение А текст по столбцам не подходит?
или PQ всемогущий тоже не катит? [vba]
let Источник = Excel.CurrentWorkbook(){[Name ="Таблица1"]}[Content ]; Источник "Измененный тип" = Тable.TransformColumnТypes(type ;{{"Текст полный"; text type }; {"1"; any type }; {"2"; any type }; {"3"; text type }; {"4"; text QuoteStyle.Csv }}); in "Другие удаленные столбцы" = Тable.SelectColumns(undefined"Измененный тип";{"Текст полный"}); undefined"Дублированный столбец" = Тable.DuplicateColumn(undefined"Другие удаленные столбцы"; "Текст полный"; "Копия Текст полный"); undefined"Разделить столбец по разделителю" = Тable.SplitColumn(undefined"Дублированный столбец"; "Копия Текст полный"; Splitter.SplitТextByDelimiter("|"; undefined); {"Копия Текст полный.1"; "Копия Текст полный.2"; "Копия Текст полный.3"; "Копия Текст полный.4"}); undefined"Удаленные нижние строки" = Тable.RemoveLastЧ(undefined"Разделить столбец по разделителю";1)undefined undefined"Удаленные нижние строки"
[/vba]Автор - китин Дата добавления - 16.03.2022 в 09:06
4step
Дата: Среда, 16.03.2022, 15:10 |
Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Благодарю за подсказку! =)
Благодарю за подсказку! =)4step
Ответить
Сообщение Благодарю за подсказку! =)Автор - 4step Дата добавления - 16.03.2022 в 15:10
jakim
Дата: Среда, 16.03.2022, 19:57 |
Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1218
Репутация:
316
±
Замечаний:
0% ±
Excel 2010
Ещё вариант PQ
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"
Ещё вариант PQ
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"
jakim
Сообщение отредактировал Serge_007 - Четверг, 17.03.2022, 09:19
Ответить
Сообщение Ещё вариант PQ
[vba]
let Source = Excel.CurrentWorkbook(){[Name ="Таблица1"]}[Content ]; Source "Changed Тype" = Тable.TransformColumnТypes(type ;{{"Текст полный"; text QuoteStyle.Csv }}); type "Split Column by Delimiter" = Тable.SplitColumn(text "Changed Тype";"Текст полный";Splitter.SplitТextByDelimiter("|"; type );{"Текст полный.1"; "Текст полный.2"; "Текст полный.3"; "Текст полный.4"}); text "Changed Тype1" = Тable.TransformColumnТypes(type "Split Column by Delimiter";{{"Текст полный.1"; text type }; {"Текст полный.2"; text in }; {"Текст полный.3"; undefined undefined}; {"Текст полный.4"; undefined undefined}})undefined undefined"Changed Тype1"
[/vba]Автор - jakim Дата добавления - 16.03.2022 в 19:57
прохожий2019
Дата: Среда, 16.03.2022, 21:49 |
Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1396
Репутация:
364
±
Замечаний:
0% ±
365 Beta Channel
так не проще?
let
f=(x)=>{x}&Text.Split(x,"|" ),
nms = {"Текст полный" ,"1" .."4" },
from = Excel.CurrentWorkbook(){[Name="Таблица1"] }[Content] [Текст полный] ,
to = Table.FromList(from,f,nms)
in
to
так не проще?
let
f=(x)=>{x}&Text.Split(x,"|" ),
nms = {"Текст полный" ,"1" .."4" },
from = Excel.CurrentWorkbook(){[Name="Таблица1"] }[Content] [Текст полный] ,
to = Table.FromList(from,f,nms)
in
to
прохожий2019
К сообщению приложен файл:
4069.xlsx
(18.0 Kb)
Сообщение отредактировал прохожий2019 - Среда, 16.03.2022, 21:53
Ответить
Сообщение так не проще? [vba]
let f =(x )=>{x }&Тext.Split(x ;"|"); nms = {"Текст полный";"1".."4"}; from = Excel.CurrentWorkbook(){[Name ="Таблица1"]}[Content ][Текст полный ]; to = Тable.FromList(from ;f ;nms )in to
[/vba] Автор - прохожий2019 Дата добавления - 16.03.2022 в 21:49