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

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как перенести в другой столбе часть строки до посл. запятой - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как перенести в другой столбе часть строки до посл. запятой (Форматирование/Formattings)
Как перенести в другой столбе часть строки до посл. запятой
larissa_sk Дата: Пятница, 07.04.2023, 14:29 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Как перенести в другой столбе часть строки до посл. запятой
В строке в конце посленне - артикул - и их надо отделить в отдельный столбик . Как это сделать? Если бы запятая везде была одна - вопросов бы не было. Но запятых много , И надо перетащить только то что после последней (вместе с запятой). Помогите подскажите пожалуйста как ?

Образец арт. 150, 150
Образец арт. 300, 300
Образец арт. 600, 600
Платье "Grey" 153800, 153800
10041090 Полотенце 35*75, 10041090
10041091 Полотенце 35*75, 10041091
10041092 Полотенце 35*75, 10041092
10051076 Полотенце 50*100, 10051076
10061072 Полотенце 70*140, 10061072
1087-1 бежевый Домашняя обувь? Белста (36-41),
1087-14 Бордо Домашняя обувь, Белста (36-41), 1087-14
1087-23 Красный Домашняя обувь, Белста (36-41), 1087-23
124 С-112/С149 Домашняя обувь Белста (36-41), 124 С-112/С149
 
Ответить
СообщениеКак перенести в другой столбе часть строки до посл. запятой
В строке в конце посленне - артикул - и их надо отделить в отдельный столбик . Как это сделать? Если бы запятая везде была одна - вопросов бы не было. Но запятых много , И надо перетащить только то что после последней (вместе с запятой). Помогите подскажите пожалуйста как ?

Образец арт. 150, 150
Образец арт. 300, 300
Образец арт. 600, 600
Платье "Grey" 153800, 153800
10041090 Полотенце 35*75, 10041090
10041091 Полотенце 35*75, 10041091
10041092 Полотенце 35*75, 10041092
10051076 Полотенце 50*100, 10051076
10061072 Полотенце 70*140, 10061072
1087-1 бежевый Домашняя обувь? Белста (36-41),
1087-14 Бордо Домашняя обувь, Белста (36-41), 1087-14
1087-23 Красный Домашняя обувь, Белста (36-41), 1087-23
124 С-112/С149 Домашняя обувь Белста (36-41), 124 С-112/С149

Автор - larissa_sk
Дата добавления - 07.04.2023 в 14:29
Serge_007 Дата: Пятница, 07.04.2023, 14:42 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
Вариант:
Код
=ЕСЛИ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;",";))-1;ПСТР(A1;ПОИСК(",";A1;ПОИСК(",";A1)+1);99);ПСТР(A1;ПОИСК(",";A1);99))
К сообщению приложен файл: 20230407_larissa_sk.xls (28.5 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеВариант:
Код
=ЕСЛИ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;",";))-1;ПСТР(A1;ПОИСК(",";A1;ПОИСК(",";A1)+1);99);ПСТР(A1;ПОИСК(",";A1);99))

Автор - Serge_007
Дата добавления - 07.04.2023 в 14:42
_Boroda_ Дата: Пятница, 07.04.2023, 15:05 | Сообщение № 3
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Еще вариант
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(A1;",";ПОВТОР(" ";999));999))


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕще вариант
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(A1;",";ПОВТОР(" ";999));999))

Автор - _Boroda_
Дата добавления - 07.04.2023 в 15:05
msi2102 Дата: Пятница, 07.04.2023, 17:23 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Ещё
[vba]
Код
=ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A1;",";"</s><s>")&"</s></t>";"//s[last()]")
[/vba]

а лучше так
[vba]
Код
=ЕСЛИОШИБКА(ПОДСТАВИТЬ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;", ";",|");",";"</s><s>")&"</s></t>";"//s[last()]");"|";"");"")
[/vba]
К сообщению приложен файл: 9154961.xls (29.5 Kb)


Сообщение отредактировал msi2102 - Пятница, 07.04.2023, 17:37
 
Ответить
СообщениеЕщё
[vba]
Код
=ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A1;",";"</s><s>")&"</s></t>";"//s[last()]")
[/vba]

а лучше так
[vba]
Код
=ЕСЛИОШИБКА(ПОДСТАВИТЬ(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;", ";",|");",";"</s><s>")&"</s></t>";"//s[last()]");"|";"");"")
[/vba]

Автор - msi2102
Дата добавления - 07.04.2023 в 17:23
jakim Дата: Суббота, 08.04.2023, 11:00 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1197
Репутация: 313 ±
Замечаний: 0% ±

Excel 2010
Power Query

[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Split Column by Delimiter" = Table.SplitColumn(Source,"Column1",Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false),{"Column1.1", "Column1.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Column1.2"})
in
    #"Removed Columns"
[/vba]
К сообщению приложен файл: book1_splir.xlsx (15.7 Kb)
 
Ответить
Сообщение
Power Query

[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Split Column by Delimiter" = Table.SplitColumn(Source,"Column1",Splitter.SplitTextByEachDelimiter({","}, QuoteStyle.Csv, false),{"Column1.1", "Column1.2"}),
    #"Removed Columns" = Table.RemoveColumns(#"Split Column by Delimiter",{"Column1.2"})
in
    #"Removed Columns"
[/vba]

Автор - jakim
Дата добавления - 08.04.2023 в 11:00
larissa_sk Дата: Вторник, 11.04.2023, 14:30 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

msi2102, формулы магические... ее нельзя скопировать и протестировать на своей таблице и они исчезают если пытаюс в вашу скопировать другой текст. Первый вариант тоже выдает ошибки
К сообщению приложен файл: 2547114.jpg (25.7 Kb)
 
Ответить
Сообщениеmsi2102, формулы магические... ее нельзя скопировать и протестировать на своей таблице и они исчезают если пытаюс в вашу скопировать другой текст. Первый вариант тоже выдает ошибки

Автор - larissa_sk
Дата добавления - 11.04.2023 в 14:30
larissa_sk Дата: Вторник, 11.04.2023, 14:32 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, не все корректно разделяет. пример приложила.
К сообщению приложен файл: 5604553.xlsx (10.2 Kb)
 
Ответить
СообщениеSerge_007, не все корректно разделяет. пример приложила.

Автор - larissa_sk
Дата добавления - 11.04.2023 в 14:32
larissa_sk Дата: Вторник, 11.04.2023, 14:33 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

jakim, это магия! То что нужно по внешнему виду... пошла изучать Power Query


Сообщение отредактировал larissa_sk - Вторник, 11.04.2023, 14:49
 
Ответить
Сообщениеjakim, это магия! То что нужно по внешнему виду... пошла изучать Power Query

Автор - larissa_sk
Дата добавления - 11.04.2023 в 14:33
Serge_007 Дата: Вторник, 11.04.2023, 14:58 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
пример приложила
Это совершенно другой пример, ничего общего с тем, что был в топике


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
пример приложила
Это совершенно другой пример, ничего общего с тем, что был в топике

Автор - Serge_007
Дата добавления - 11.04.2023 в 14:58
bigor Дата: Вторник, 11.04.2023, 15:33 | Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1073
Репутация: 204 ±
Замечаний: 0% ±

нет
не все корректно разделяет
а почему формулу _Boroda_, проигнорировали?
 
Ответить
Сообщение
не все корректно разделяет
а почему формулу _Boroda_, проигнорировали?

Автор - bigor
Дата добавления - 11.04.2023 в 15:33
прохожий2019 Дата: Вторник, 11.04.2023, 16:58 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1241
Репутация: 317 ±
Замечаний: 0% ±

365 Beta Channel
Power Query

[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    to = Table.SplitColumn(from, "txt", Splitter.SplitTextByEachDelimiter({","}, null, true), {"txt", "art"})
in
    to
[/vba]
К сообщению приложен файл: 9644268.xlsx (20.5 Kb)
 
Ответить
Сообщение
Power Query

[vba]
Код
let
    from = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    to = Table.SplitColumn(from, "txt", Splitter.SplitTextByEachDelimiter({","}, null, true), {"txt", "art"})
in
    to
[/vba]

Автор - прохожий2019
Дата добавления - 11.04.2023 в 16:58
msi2102 Дата: Вторник, 11.04.2023, 18:06 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Первый вариант тоже выдает ошибки
Эти функции появились в 2013 или 2016 году
 
Ответить
Сообщение
Первый вариант тоже выдает ошибки
Эти функции появились в 2013 или 2016 году

Автор - msi2102
Дата добавления - 11.04.2023 в 18:06
larissa_sk Дата: Среда, 12.04.2023, 11:17 | Сообщение № 13
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

bigor, Кстати ей от _Boroda_ и воспользовалась, там на некоторых где побольше запятых, почему-то глючит, но я ручками поправила эти позиции. Пока пробуем только по артикулу загружать данные. Но это не совсем то что надо. В идеале Мне надо, чтобы просто номеклатура осталась, без артикула. В примере jakim, прям то что надо. Номенклатура без артикулов после запятой. Но у меня 2007 ексель пока. И понятия не имею как работать с Power Query. сегодня буду устанавливать ковыряться
 
Ответить
Сообщениеbigor, Кстати ей от _Boroda_ и воспользовалась, там на некоторых где побольше запятых, почему-то глючит, но я ручками поправила эти позиции. Пока пробуем только по артикулу загружать данные. Но это не совсем то что надо. В идеале Мне надо, чтобы просто номеклатура осталась, без артикула. В примере jakim, прям то что надо. Номенклатура без артикулов после запятой. Но у меня 2007 ексель пока. И понятия не имею как работать с Power Query. сегодня буду устанавливать ковыряться

Автор - larissa_sk
Дата добавления - 12.04.2023 в 11:17
larissa_sk Дата: Среда, 12.04.2023, 11:21 | Сообщение № 14
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Serge_007, да в топике был только маленький кусочек обгомной таблицы. На тех примера все отлично. Но на других примерах стали выползать ошибки... там структура видимо разная.
 
Ответить
СообщениеSerge_007, да в топике был только маленький кусочек обгомной таблицы. На тех примера все отлично. Но на других примерах стали выползать ошибки... там структура видимо разная.

Автор - larissa_sk
Дата добавления - 12.04.2023 в 11:21
Serge_007 Дата: Среда, 12.04.2023, 11:43 | Сообщение № 15
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
там структура видимо разная
larissa_sk,
Цитата Правила форума ()
- Чтобы понять и помочь - достаточно таблицы на 10-20 строк
- При этом старайтесь сохранить структуру, расположение таблиц, имена листов - аналогично оригиналу
- Если файл содержит конфиденциальную информацию - обязательно замените Ваши данные на нейтральные


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
там структура видимо разная
larissa_sk,
Цитата Правила форума ()
- Чтобы понять и помочь - достаточно таблицы на 10-20 строк
- При этом старайтесь сохранить структуру, расположение таблиц, имена листов - аналогично оригиналу
- Если файл содержит конфиденциальную информацию - обязательно замените Ваши данные на нейтральные

Автор - Serge_007
Дата добавления - 12.04.2023 в 11:43
bigor Дата: Среда, 12.04.2023, 12:07 | Сообщение № 16
Группа: Проверенные
Ранг: Старожил
Сообщений: 1073
Репутация: 204 ±
Замечаний: 0% ±

нет
Пока пробуем только по артикулу загружать данные. Но это не совсем то что надо. В идеале Мне надо, чтобы просто номеклатура осталась, без артикула
как запутать себя и остальных. А если бы jakim, не угадал, что вам без артикула надо.
Смотрите формулу, отрезает запятую и артикул
Код
=SUBSTITUTE(A1;", "&TRIM(RIGHT(SUBSTITUTE(A1;" ";REPT(" ";300));300));"")
 
Ответить
Сообщение
Пока пробуем только по артикулу загружать данные. Но это не совсем то что надо. В идеале Мне надо, чтобы просто номеклатура осталась, без артикула
как запутать себя и остальных. А если бы jakim, не угадал, что вам без артикула надо.
Смотрите формулу, отрезает запятую и артикул
Код
=SUBSTITUTE(A1;", "&TRIM(RIGHT(SUBSTITUTE(A1;" ";REPT(" ";300));300));"")

Автор - bigor
Дата добавления - 12.04.2023 в 12:07
Анна-ЕАО1938 Дата: Среда, 12.04.2023, 15:02 | Сообщение № 17
Группа: Проверенные
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Код
=ПСТР(I1;1;ПОИСК("|";ПОДСТАВИТЬ(A1;", ";",|";(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;", ";"")))/2);1)-2)


Сообщение отредактировал Serge_007 - Среда, 12.04.2023, 15:09
 
Ответить
Сообщение
Код
=ПСТР(I1;1;ПОИСК("|";ПОДСТАВИТЬ(A1;", ";",|";(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;", ";"")))/2);1)-2)

Автор - Анна-ЕАО1938
Дата добавления - 12.04.2023 в 15:02
msi2102 Дата: Среда, 12.04.2023, 15:28 | Сообщение № 18
Группа: Проверенные
Ранг: Обитатель
Сообщений: 413
Репутация: 129 ±
Замечаний: 0% ±

Excel 2007
Можно ещё такой формулой (массивная)
Код
=СЖПРОБЕЛЫ(ПСТР(A1;МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))+1;99))

или такой
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(A1;ДЛСТР(A1)-МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))))

Если в 2007 нет СЖПРОБЕЛЫ() то можно и без неё, но только нужно проследить, чтобы после запятой всегда был пробел
Код
=ПСТР(A1;МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))+2;99)

Код
=ПРАВСИМВ(A1;ДЛСТР(A1)-МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))-1)
К сообщению приложен файл: 5766388.xlsx (12.9 Kb)


Сообщение отредактировал msi2102 - Среда, 12.04.2023, 15:34
 
Ответить
СообщениеМожно ещё такой формулой (массивная)
Код
=СЖПРОБЕЛЫ(ПСТР(A1;МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))+1;99))

или такой
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(A1;ДЛСТР(A1)-МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))))

Если в 2007 нет СЖПРОБЕЛЫ() то можно и без неё, но только нужно проследить, чтобы после запятой всегда был пробел
Код
=ПСТР(A1;МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))+2;99)

Код
=ПРАВСИМВ(A1;ДЛСТР(A1)-МАКС((ПСТР(A1;СТРОКА($1:$100);1)=",")*СТРОКА($1:$100))-1)

Автор - msi2102
Дата добавления - 12.04.2023 в 15:28
Serge_007 Дата: Среда, 12.04.2023, 15:41 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2748 ±
Замечаний: ±

Excel 2016
Если в 2007 нет СЖПРОБЕЛЫ()
Есть
Она и до 2007 была в Excel


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Если в 2007 нет СЖПРОБЕЛЫ()
Есть
Она и до 2007 была в Excel

Автор - Serge_007
Дата добавления - 12.04.2023 в 15:41
Анна-ЕАО1938 Дата: Среда, 12.04.2023, 15:41 | Сообщение № 20
Группа: Проверенные
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

msi2102,

Но у вас результат формул = символы после последней запятой?
как я поняла из переписки выше , что нужно весть текст , без последней запятой и все что за ней?

В идеале Мне надо, чтобы просто номеклатура осталась, без артикула.
 
Ответить
Сообщениеmsi2102,

Но у вас результат формул = символы после последней запятой?
как я поняла из переписки выше , что нужно весть текст , без последней запятой и все что за ней?

В идеале Мне надо, чтобы просто номеклатура осталась, без артикула.

Автор - Анна-ЕАО1938
Дата добавления - 12.04.2023 в 15:41
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Как перенести в другой столбе часть строки до посл. запятой (Форматирование/Formattings)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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