Страницы: 1 2 След.
RSS
Разделить текст по ячейкам по первому пробелу
 
Здравствуйте.
    В приложенном файле в столбце Bесть данные. Мне нужно разбить их по столбцам по первому пробелу, то есть для примера в первой строке должно получиться так: в одной ячейке - 5555, а в другой - 20 шт. Но если в "Текст по столбцам" поставить в качестве разделителя пробел, то текст в моём файле разобьётся на три ячейки по всем пробелам. Как быть? Хотелось бы без использования макросов. Помогите, пожалуйста.
Изменено: vikttur - 13.08.2021 14:17:41
 
Если судить по примеру, то
=ЛЕВБ(B2;4)
Но не это же нужно? Зачем такой "гнилой" пример?
Цитата
  2.3. Приложите файл(ы) с примером (общим весом не более 300Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.

=ЛЕВБ(B2;ПОИСК(" ";B2)-1)
=ПСТР(B2;ДЛСТР(D2)+2;9)
 
Неопытный_Экселист, здравствуйте
=ПОИСК(" ";ячейка) найдёт позицию (Pos) первого пробела в ячейке
=ЛЕВСИМВ(ячейка; Pos-1) вернёт всё, что слева от него

Как вернуть то, что справа предлагаю догадаться (найти/изучить) самому  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
vikttur: Зачем такой "гнилой" пример?
да уж - я не смотрел и слава богам)
По сути и название темы должно быть "Как разделить значение в ячейке по первому пробелу", т.к. инструмент "Текст-по-столбцам" тут вообще не при делах  :)
Изменено: Jack Famous - 13.08.2021 14:16:38
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
:)
Опять же, судя по примеру: наоборот, пробел не нужен - инструмент Текст по столбцам, разделение по фиксированному количеству символов
 
Цитата
vikttur написал: инструмент Текст по столбцам, разделение по фиксированному количеству символов
Разобрался. Работает на ура! Но только, если длина текста слева - всегда 4 символа. А если нет?

У меня этот пункт в Текст по столбцам называется "Поля имеют фиксированную ширину", и я бы никогда не подумал, что его можно так использовать.
 
Код
=ТРАНСП(ФИЛЬТР.XML("<k><i>"&ПОДСТАВИТЬ(ЗАМЕНИТЬ(B2;ПОИСК(" ";B2;1);1;СИМВОЛ(1));СИМВОЛ(1);"</i><i>")&"</i></k>";"//i"))
 
Цитата
Неопытный_Экселист: если длина текста слева - всегда 4 символа. А если нет?
:D  :D  :D  смотрю в книгу, вижу фигу
Цитата
Тимофеев: =ТРАНСП(ФИЛЬТР.XML("  "&ПОДСТАВИТЬ(ЗАМЕНИТЬ …
8-0  8-0  8-0 лёгких путей вы не ищете, конечно. Если нужно будет что-то невероятно усложнить, то я знаю, кого спросить  :D
Изменено: Jack Famous - 13.08.2021 15:24:09
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, ФИЛЬТР.XML все еще на обкатке для запоминания  
 
Цитата
Неопытный_Экселист написал: Разобрался. Работает на ура! Но только, если длина текста слева - всегда 4 символа.
И не разобрались. То, что Вы цитировали, написано для того, чтобы Вы задумались над тем, какой пример готовить для прикрепления к теме. Это написано как раз для Вашего суперпримера!
 
Тимофеев, да - я в курсе, но вы бы хоть спойлер прикрепляли, что это заведомо сложное решение и показано только в качестве альтернативного варианта. Хотя я не вижу смысла показывать, как это сделать, если никто так делать не будет
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
мои дети когда вырастут я обязательно их так делать научу
 
Цитата
vikttur написал:
Это написано как раз для Вашего суперпримера!
Это мой РЕАЛЬНЫЙ пример
Мне нужно из текста 5555 20 шт в одну ячейку вынести 5555, в другую - 20 шт Как быть? Поля имеют фиксированную ширину - это работает, если количество символов "5555" всегда одинаково. А если в столбце будут встречаться и 555 и 55 и 55555 и т.п.? Как быть? Текст по столбцам не поможет? Только формулой или макросом?
 
Цитата
Неопытный_Экселист написал: Это мой РЕАЛЬНЫЙ пример
Да гле же реальный?! Во всех ячейках одинаковое количество символов до пробела. ДОГАДЫВАТЬСЯ?
 
Цитата
vikttur написал:
Во всех ячейках одинаковое количество символов до пробела
Ок, вот более реальный пример. Помогите пожалуйста.
 
Цитата
Мне нужно из текста 5555 20 шт в одну ячейку вынести 5555, в другую - 20 шт Как быть?
Формат столбца В сделать общим, ваш текст в столбце А
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 1 To iLastRow
    Cells(i, "B") = Split(Cells(i, "A"), " ", 2)(0)
    Cells(i, "C") = Split(Cells(i, "A"), " ", 2)(1)
  Next
End Sub
 
Kuzmich, Большущее спасибо.
А инструментом Текст по столбцам не получится?

К сожалению, при запуски из модуля Эта книга из последнего своего файла (пост 15) Ваш макрос выдаёт ошибку Subscript out of range. Как поправить?
Изменено: Неопытный_Экселист - 13.08.2021 16:42:00
 
Как постараться
 
Отредактировал пост 17
RAN,  - Огромнейшее спасибо.
Но всё же можно поправить макрос Kuzmich, чтобы он работал? Сам я пытался, но что-то не получается  :( .
Изменено: Неопытный_Экселист - 13.08.2021 16:50:15
 
Цитата
Неопытный_Экселист написал:
при запуски из модуля Эта книга ... макрос выдаёт ошибку... Как поправить?
Поместить макрос не туда, куда вам хочется, а туда, где он должен жить, т.е. в стандартный модуль.
 
Цитата
Как поправить?
Цитата
книга из последнего своего файла (пост 15)
Макрос в стандартный модуль
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
 iLastRow = Cells(Rows.Count, 2).End(xlUp).Row
  For i = 2 To iLastRow
    Cells(i, "C") = Split(Cells(i, "B"), " ", 2)(0)
    Cells(i, "D") = Split(Cells(i, "B"), " ", 2)(1)
  Next
End Sub
 
Цитата
RAN написал:
т.е. в стандартный модуль.

Я вижу модуль листа и модуль "Эта книга". А где тут Стандартный модуль? И почему из модуля Эта книга не работает?
 
Insert -> Module
 
Цитата
Kuzmich написал: Insert -> Module
ЕЕЕЕЕЕЕЕЕЕСТЬ!!!
ПРОСТО ОГРОМНЕЙШЕЕ-ПРИОГРОМНЕЙШЕЕ СПАСИБИЩЕ!

Цитата
И почему из модуля Эта книга не работает?
И всё-таки, - почему?
 
Цитата
Неопытный_Экселист написал: более реальный пример. Помогите пожалуйста.
Формулы в сообщении №2 (и там же - в файле) применить пробовали?
Изменено: vikttur - 13.08.2021 17:15:16
 
Цитата
Неопытный_Экселист написал:
И всё-таки, - почему?
Да потому, что диапазоны прописаны криво. А если поправить диапазоны или код, то и из модуля книги работает.
 
Цитата
vikttur написал: Формулы... применить пробовали?
Формулы работают. Но мне хотелось без формул - и мне дали варианты с Текст по столбцам (Ran) и макрос (Kuzmich).
Цитата
RAN написал: А если поправить диапазоны или код, то и из модуля книги работает.
Подскажите, пожалуйста, как поправить?
Изменено: vikttur - 13.08.2021 17:19:35
 
Цитата
Неопытный_Экселист написал:
как поправить
Легко.
Клавиатура есть? Буковки и циферки разумеете? Меняйте на те, что вам нужно.
Что Kuzmich,  и проделал в №21
Изменено: RAN - 13.08.2021 17:22:23
 
В последнем макросе  из поста 21 диапазоны норм. Но работать из модуля "Эта книга" он всё-равно не хочет. Помогите, пожалуйста.
Упс, заработал. А я сам также пробовал менять - не получалось. Придётся ещё посидеть, поразбираться...
Всем ОГРОМЕННОЕ СПАСИБИЩЕ!
 
Поможите чем можите...
И чем помочь?  Код из №21 прекрасно работает в модуле книги файла из №15.
Изменено: RAN - 13.08.2021 17:28:13
Страницы: 1 2 След.
Читают тему
Наверх