Страницы: 1
RSS
Удаление пробелов в ячейке, Удаление пробелов в ячейке
 
Добрый день! Помогите пожалуйста с такой проблемой. Как удалить лишние пробелы в номере ОЕМ.
В таблице исходник такой BOSCH   OEM:  0 001 114 005, 0 001 114 006 на выходе нужно получить такое  BOSCH OEM: 0001114005, 0001114006
 
Здравствуйте Eksel24,
если можно в результат в другую ячейку то:
=СЖПРОБЕЛЫ(D19)
Или так:
 Находясь во вкладке «Главная», кликаем по кнопке «Найти и выделить», которая размещена в блоке инструментов «Редактирование» на ленте. В выпадающем списке выбираем пункт «Заменить». Можно также вместо вышеперечисленных действий просто набрать сочетание клавиш на клавиатуре Ctrl+H.
 В любом из вариантов открывается окно «Найти и заменить» во вкладке «Заменить». В поле «Найти» устанавливаем курсор и дважды кликаем по кнопке «Пробел» на клавиатуре. В поле «Заменить на» вставляем один пробел. Затем жмем по кнопке «Заменить все».
 Программа производит замену двойного пробела на одинарный. После этого появляется окно с отчетом о проделанной работе. Жмем на кнопку «OK».
Далее опять появляется окно «Найти и заменить». Выполняем в этом окне точно такие же действия, как описаны во втором пункте данной инструкции до тех пор, пока не появится сообщение о том, что искомые данные не найдены.
Изменено: Muxa K - 24.04.2024 16:28:30
 
Добрый день! Muxa K, спасибо за оперативность, да пробовал так, но результат не тот, что нужен. И у Вас в примере ничего не изменилось (как было BOSCH   OEM:  0 001 114 005, 0 001 114 006 так и в соседней ячейке с пробелами осталось). И к сожалению таких строк с ОЕМ больше 700штук и копипасту делать сложно, они не друг за другом идут.
И надо из такого BOSCH   OEM:  0 001 114 005, 0 001 114 006 на выходе нужно получить такое  BOSCH OEM: 0001114005, 0001114006 (текст с пробелом, а цифры без пробелов).
Изменено: Eksel24 - 24.04.2024 17:18:25
 
=LEFT(D19;FIND(":";D19)+1)& SUBSTITUTE(MID(D19;FIND(":";D19)+1;999);" ";)
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
=LEFT(D19;FIND(":";D19)+1)& SUBSTITUTE(MID(D19;FIND(":";D19)+1;999);" ";)
Результат #ИМЯ?
Изменено: Eksel24 - 24.04.2024 18:49:29
 
Eksel24 Зддравствуйте. Просто формулу БМВ надо перевести на русский. У него тройка была по английскому поэтому Репетитор заставил его поставить английскую версию эксель, чтобы быстрее выучил английский.
Код
=ЛЕВСИМВ(D19;НАЙТИ(":";D19)+1)& ПОДСТАВИТЬ(ПСТР(D19;НАЙТИ(":";D19)+1;999);" ";)
 
:D  а я думал только заменить SUBSTITUTE на ПОДСТАВИТЬ, а про FIND и др. не подумал.
Спасибо, Вам, Евгений!!!
И спасибо БМВ!!!
Уррраааа!!!!
Изменено: Eksel24 - 24.04.2024 19:05:35
 
Цитата
Евгений Смирнов написал:
чтобы быстрее выучил английский.
так вот его не выучил, а русский забыл :-)
По вопросам из тем форума, личку не читаю.
 
Цитата
на выходе нужно получить такое  BOSCH OEM: 0001114005, 0001114006
Код
Sub DelSpace()
Dim FoundCell As Range
Dim i As Long
Dim iLastRow As Long
Dim re As Object
Dim temp0 As String
Dim temp1 As String
   iLastRow = Cells(Rows.Count, "D").End(xlUp).Row
       Set re = CreateObject("VBScript.RegExp")
        re.Global = True
        re.Pattern = "\s+"
   For i = 17 To iLastRow
     If InStr(1, Cells(i, "D"), "OEM:") > 0 Then
       temp0 = Split(Cells(i, "D"), "OEM:")(0)
       temp1 = Split(Cells(i, "D"), "OEM:")(1)
        With re
            ActiveSheet.Cells(i, "E") = .Replace(temp0, " ") & "OEM: " & .Replace(temp1, "")
            ActiveSheet.Cells(i, "E") = Replace(ActiveSheet.Cells(i, "E"), ",", ", ")
        End With
     End If
   Next
End Sub

Результат в столбце E
Изменено: Kuzmich - 24.04.2024 22:42:11
 
Цитата
БМВ написал:
& SUBSTITUTE
    Простите, пожалуйста, что влезаю, но не подскажете, зачем здесь пробел?
 
Цитата
Счастливчик написал:
зачем здесь пробел?
чтоб формула соотвтевовала теме ;-) . эти пробелы игнорируются в формулах. Просто случайно затесался.
По вопросам из тем форума, личку не читаю.
 
Kuzmich,
Цитата
написал:
КодSub DelSpace()
Dim FoundCell As Range
Dim i As Long
Dim iLastRow As Long
Dim re As Object
Dim temp0 As String
Dim temp1 As String
  iLastRow = Cells(Rows.Count, "D").End(xlUp).Row
      Set re = CreateObject("VBScript.RegExp")
       re.Global = True
       re.Pattern = "\s+"
  For i = 17 To iLastRow
    If InStr(1, Cells(i, "D"), "OEM:") > 0 Then
      temp0 = Split(Cells(i, "D"), "OEM:")(0)
      temp1 = Split(Cells(i, "D"), "OEM:")(1)
       With re
           ActiveSheet.Cells(i, "E") = .Replace(temp0, " ") & "OEM: " & .Replace(temp1, "")
           ActiveSheet.Cells(i, "E") = Replace(ActiveSheet.Cells(i, "E"), ",", ", ")
       End With
    End If
  Next
End Sub
Добрый день! А как применять данный листинг? Вставлять в строку формул?
Изменено: Eksel24 - 25.04.2024 15:24:25
 
Как вставить готовый макрос в рабочую книгу? (e-xcel.ru)
Страницы: 1
Наверх