Версия для слабовидящих
Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

 

= Мир MS Excel/Разбить ячейку с условным разделителем - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Разбить ячейку с условным разделителем
4step Дата: Среда, 16.03.2022, 04:34 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 40% ±

Добрый день! Прошу помочь составить формулу для разбивки ячейки "Полное наименование" на пронумерованные столбцы. Разделитель ячейке является символ "|". Если есть возможность, то можно в качестве альтернативы сделать VBA кодом. Буду очень рад!
К сообщению приложен файл: _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);"")
К сообщению приложен файл: 9476164.xlsx (12.0 Kb)
 
Ответить
Сообщение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
Репутация: 0 ±
Замечаний: 40% ±

Цитата DrMini, 16.03.2022 в 06:30, в сообщении № 2 ( писал(а)):
Так?

формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.
К сообщению приложен файл: _1-1.xlsx (13.2 Kb)


Сообщение отредактировал 4step - Среда, 16.03.2022, 07:16
 
Ответить
Сообщение
Цитата DrMini, 16.03.2022 в 06:30, в сообщении № 2 ( писал(а)):
Так?

формула работает частично, но при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет.

Автор - 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))
К сообщению приложен файл: 6753265.xlsx (12.2 Kb)
 
Ответить
СообщениеВ ячейку B2. Протянуть вправо и вниз.
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ("|"&$A2;"|";ПОВТОР(" ";99));СТОЛБЕЦ(A1)*99;99))

Автор - Egyptian
Дата добавления - 16.03.2022 в 07:37
4step Дата: Среда, 16.03.2022, 08:27 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 87
Репутация: 0 ±
Замечаний: 40% ±

DrMini & Egyptian, Очень благодарен за помощь!! =)
 
Ответить
СообщениеDrMini & Egyptian, Очень благодарен за помощь!! =)

Автор - 4step
Дата добавления - 16.03.2022 в 08:27
DrMini Дата: Среда, 16.03.2022, 08:43 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2048
Репутация: 317 ±
Замечаний: 0% ±

Excel LTSC 2024 RUS
Цитата 4step, 16.03.2022 в 07:15, в сообщении № 3 ( писал(а)):
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет

Всё прекрасно обновляется.
Просто вставил через буфер обмена.
К сообщению приложен файл: 5358699.xlsx (21.4 Kb)
 
Ответить
Сообщение
Цитата 4step, 16.03.2022 в 07:15, в сообщении № 3 ( писал(а)):
при вставки дополнительных ячеек по столбцу - формулы по строке не обновляет

Всё прекрасно обновляется.
Просто вставил через буфер обмена.

Автор - DrMini
Дата добавления - 16.03.2022 в 08:43
bigorq Дата: Среда, 16.03.2022, 08:56 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 205
Репутация: 47 ±
Замечаний: 0% ±

Нет
4step, А текст по столбцам не подходит?
 
Ответить
Сообщение4step, А текст по столбцам не подходит?

Автор - bigorq
Дата добавления - 16.03.2022 в 08:56
китин Дата: Среда, 16.03.2022, 09:06 | Сообщение № 8
Группа: Модераторы
Ранг: Экселист
Сообщений: 7034
Репутация: 1079 ±
Замечаний: 0% ±

Excel 2007;2010;2016
Цитата bigorq, 16.03.2022 в 08:56, в сообщении № 7 ( писал(а)):
А текст по столбцам не подходит?

или 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
    #"Удаленные нижние строки"

К сообщению приложен файл: 9492240.xlsx (19.7 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852
 
Ответить
Сообщение
Цитата bigorq, 16.03.2022 в 08:56, в сообщении № 7 ( писал(а)):
А текст по столбцам не подходит?

или 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
Репутация: 0 ±
Замечаний: 40% ±

Цитата китин, 16.03.2022 в 09:06, в сообщении № 8 ( писал(а)):
PQ всемогущий

Благодарю за подсказку! =)
 
Ответить
Сообщение
Цитата китин, 16.03.2022 в 09:06, в сообщении № 8 ( писал(а)):
PQ всемогущий

Благодарю за подсказку! =)

Автор - 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"

К сообщению приложен файл: 4069895.xlsx (16.9 Kb)


Сообщение отредактировал 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
Цитата китин, 16.03.2022 в 09:06, в сообщении № 8 ( писал(а)):
PQ всемогущий
так не проще?

let
    f=(x)=>{x}&Text.Split(x,"|"),
    nms = {"Текст полный","1".."4"},
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content][Текст полный],
    to = Table.FromList(from,f,nms)
in
    to

К сообщению приложен файл: 4069.xlsx (18.0 Kb)


Сообщение отредактировал прохожий2019 - Среда, 16.03.2022, 21:53
 
Ответить
Сообщение
Цитата китин, 16.03.2022 в 09:06, в сообщении № 8 ( писал(а)):
PQ всемогущий
так не проще? [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
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!