Убрать все после пробела excel

Содержание

  1. Как удалить все до или после определенного символа в Excel
  2. С помощью функции «Найти и заменить»
  3. С помощью формул
  4. С помощью функции «Заполнить»
  5. С помощью Visual Basic
  6. Excel убрать все после пробела
  7. Простое разделение ячеек на несколько ячеек / строк (список столбцов) в Excel
  8. Как удалить символы После знака в Excel
  9. Видеоинструкция
  10. Как удалить знаки после символа в Excel
  11. Удаление знака после запятой в Эксель
  12. После пробела в Excel
  13. Вам также будет интересно
  14. Комментарии 2

Как удалить все до или после определенного символа в Excel

Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.

Допустим, у нас есть такая табличка:

Примерно так выглядит удаление всех символов после «,».

Это можно сделать разными способами. Мы рассмотрим несколько.

С помощью функции «Найти и заменить»

Это, наверное, самый быстрый и удобный способ.

Допустим, у нас та же табличка и задача:

  • Копируем и вставляем столбик А в В;

  • Выделите столбик и щелкните «Главная»;

  • Далее — «Найти и выделить» -> «Заменить…»;

  • В первом параметре укажите «,*»;

  • Второй параметр не меняйте;

  • Щелкните «Заменить все».

Готово! Вот результат:

Как это работает?

Символ * означает неопределенное количество символов.

Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.

Это будет работать только если в каждой ячейке у вас одна запятая, если же у вас не одна, то первая и все остальные данные будут заменены на пустое место.

С помощью формул

Также, мы можем выполнить нашу задачу и с помощью формул.

Допустим, у нас есть такая табличка:

Формула принимает такой вид:

Функция НАЙТИ возвращает порядковый номер запятой.

Это простой пример, давайте рассмотрим кое-что посложнее.

Теперь у нас такая табличка:

Формула, для этого примера, принимает такой вид:

Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.

Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.

И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.

Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.

Для этого примера, формула принимает такой вид:

Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.

А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.

А затем мы заменяем последнюю на восклицательный знак.

Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.

Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.

С помощью функции «Заполнить»

Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.

Как он работает?

Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.

Давайте рассмотрим пример.

Допустим, у нас есть та же табличка:

  • В первую ячейку столбика В введите то, что должно получиться после обработки;

  • В следующую ячейку, то же самое;

  • А теперь выделите столбик;

  • И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;

Готово! Вот результат:

Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.

Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.

С помощью Visual Basic

И, как обычно, разберем вариант с помощью Visual Basic.

Мы создадим свою собственную функцию и будем использовать её для обработки данных.

Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.

Код Visual Basic:

Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».

Давайте рассмотрим пример её использования.

Допустим, у нас есть такая табличка. Формула принимает такой вид:

В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.

С помощью Visual Basic все проще.

Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.

Надеюсь, эта статья оказалась полезна для вас!

Источник

Excel убрать все после пробела

Например, вы хотите удалить все символы после последнего пробела из ячеек, как вы могли бы легко сделать это в Excel? А если убрать все символы после первого пробела? Для вас есть несколько решений:

В этом разделе будут представлены формулы для удаления всех символов после первого или последнего пробела в Excel. Пожалуйста, сделайте следующее:

Удалите все символы после последнего пробела

Выберите пустую ячейку, введите формулу =LEFT(A2,FIND(«^^»,SUBSTITUTE(A2,» «,»^^»,LEN(A2)-LEN(SUBSTITUTE(A2,» «,»»))))-1) (A2 — это ячейка, в которой вы удалите все символы после последнего пробела) и перетащите маркер заполнения в нужный диапазон.

Формула слишком сложна для запоминания? Сохраните формулу как запись Auto Text для повторного использования одним щелчком мыши в будущем!
Подробнее . Бесплатная пробная версия

И тогда вы увидите все символы после удаления последнего пробела в каждой ячейке. Смотрите скриншот:

Удалите все символы после первого пробела

Выберите пустую ячейку, введите формулу = ЛЕВЫЙ (A2; НАЙТИ («»; A2) -1) (A2 — это ячейка, в которой вы удалите все символы после первого пробела), и перетащите маркер заполнения вниз до нужного диапазона.

Простое разделение ячеек на несколько ячеек / строк (список столбцов) в Excel

Обычно пользователи Excel могут применять Текст в столбцы функция разбить одну ячейку на несколько столбцов, но нет прямого метода преобразования одной ячейки в несколько строк. Однако Kutools для Excel Разделить клетки Утилита может помочь вам легко сделать это, как показано на скриншоте ниже.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Get It Now

Вы также можете применить функцию, определяемую пользователем, чтобы удалить все символы после последнего пробела из ячеек в Excel. Пожалуйста, сделайте следующее:

1. Нажмите другой + F11 одновременно клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модули, а затем скопируйте и вставьте следующий код в новое окно модуля.

VBA: удалить все символы после последнего пробела в Excel

3. Сохраните функцию, определяемую пользователем, и закройте окно Microsoft Visual Basic для приложений.

4. Выберите пустую ячейку и введите формулу. = RemoveAfterLastSpace (A2) (A2 — это ячейка, в которой вы удалите все символы после последнего пробела), и перетащите маркер заполнения в нужный диапазон.

И тогда вы увидите все символы после удаления последнего пробела из каждой ячейки. Смотрите скриншот:

Этот метод представит Kutools for Excel’s Разделить имена утилита для быстрого удаления всех символов после первого пробела из ячеек в Excel.

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Бесплатная пробная версия сейчас!

Kutools for Excel — Combines more than 300 Advanced Functions and Tools for Microsoft Excel

1. Выберите диапазон, в котором вы удалите все символы после первого пробела из каждой ячейки, и щелкните Кутулс > Текст > Разделить имена. Смотрите скриншот:

2. В открывшемся диалоговом окне Split Names отметьте только Имя и нажмите Ok кнопку.

3. Затем укажите первую ячейку целевого диапазона во втором диалоговом окне «Разделить имена» и нажмите кнопку OK кнопку.

И теперь вы увидите, что все символы удаляются после первого пробела из каждой ячейки. Смотрите скриншот:

Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30 -день, кредитная карта не требуется! Get It Now

Источник

Как удалить символы После знака в Excel

Возможность удаления знаков после символа или текста в Excel — это важная функция при работе с таблицами, позволяющая очистить нужные элементы от лишней информации.

Видеоинструкция

Как удалить знаки после символа в Excel

Для этого потребуется использовать формулу:

  • А1 — ячейка, которую мы будет проверять;
  • Символ — символ или текст, после которого будет обрезаться ячейка.

Также можно комбинировать этот способ с очисткой данных «До».

Удаление знака после запятой в Эксель

Выполнить эту задачу можно при помощи конструкции:

После пробела в Excel

Сделать это можно через формулу:

Подписывайтесь на наш канал в Яндекс.Дзен

Подписывайтесь на наш Telegram-канал

Подписывайтесь на наш Youtube-канал

Подписывайтесь на нашу группу ВКонтакте

Вам также будет интересно

Комментарии 2

А если после запятой надо оставить только (например) три знака в числовом формате, то надо так: =ПСТР(А3;1;ПОИСК(«,»;А3)+3)
При этом, (опять же например)
исходное значение: 23,558668; готовый результат: 23,558

Добрый день, спасибо за обратную связь, да думаю данная форума будет полезна многим. Также если речь идет о цифрах, как в примере можно воспользоваться округлением.

Источник

 

ateccc

Пользователь

Сообщений: 7
Регистрация: 17.10.2014

Заранее прошу прощения, если решение уже есть. Но по поиску не нашел.
Суть задачи:
Есть список названий товаров, последнее слово после пробела — это код товара. Он может быть разным и текст и цифры.
Необходимо: удалить слово после последнего пробела.
А в иделе — еще и поместить его в соседний столбец.
Excel 2003

Прикрепленные файлы

  • пример.xls (28.5 КБ)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#2

18.10.2014 00:03:43

Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A2;ПОИСК("/";ПОДСТАВИТЬ(A2;" ";"/";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;" ";))));50);")";);"(";)
 

ateccc

Пользователь

Сообщений: 7
Регистрация: 17.10.2014

Может не совсем понятно сформулировал, но мне важно получить значения Названия товара без слова после последнего пробела, а выделить последнее слово в отдельный столбец это уже не главная а второстепенная задача.
Было: Портмоне мужской Armani (11082)
Стало: Портмоне мужской Armani

Поможете ?

Изменено: ateccc18.10.2014 00:20:54

 

Doober

Пользователь

Сообщений: 2204
Регистрация: 09.04.2013

#4

18.10.2014 00:12:30

Не успеешь за формулистами.  :D  .
Удаляет с первого столбца и переносит в соседний

Код
Sub Extract()
    Dim Rng As Range
    Set RegExp = CreateObject("VBScript.RegExp")
    RegExp.Pattern = "s(S+)$"
    For Each Rng In ActiveSheet.UsedRange.Columns(1).Cells
        If Rng.Value <> "" Then
            bRes = RegExp.test(Rng.Value)
            If bRes Then
                Set oMatches = RegExp.Execute(Rng.Value)
                Rng.Offset(0, 1) = Replace(Replace(oMatches(0).subMatches(0), "(", ""), ")", "")
                Rng.Value = RegExp.Replace(Rng.Value, "")
            End If
        End If
    Next
End Sub
 

<#0>

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Это проще. Как там у скульпторов? Отсекаете у показанной формулы лишнее — и получаете… если не шедевр, то нужную формулу   :)  
=ЛЕВСИМВ(A2;ПОИСК(«/»;ПОДСТАВИТЬ(A2;» «;»/»;ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;» «;))))-1)

 

ateccc

Пользователь

Сообщений: 7
Регистрация: 17.10.2014

vikttur, у меня Ваша формула не работает, предлагает внести исправления по количеству скобок, можете скинуть файл с формулой уже.
Doober, спасибо. Макрос работает)

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

ateccc, тут в соседней теме говорили про избыточное цитирование — у Вас та же проблема. Зачем вообще процитировали, да ещё всё целиком?

 

ateccc

Пользователь

Сообщений: 7
Регистрация: 17.10.2014

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

#9

18.10.2014 01:36:15

Цитата
— Вы за меня и кушать будете?
Двое_из_ларца:
— Ага! :)

Прикрепленные файлы

  • коды.xls (29.5 КБ)

 

ateccc

Пользователь

Сообщений: 7
Регистрация: 17.10.2014

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#11

20.10.2014 23:51:32

Цитата
Doober пишет: Не успеешь за формулистами. Удаляет с первого столбца и переносит в соседний RegExp.Pattern =   «s(S+)$»

Doober , это, наверно, я ещё не успеваю понимать так быстро… но весь код прочитать смогла     :oops:    кроме главного нюанса… вижу: s

пробел — ( — без пробела несколько символов — ) — окончание строки…

 но ведь  «(»  соответствует  последовательность «(» синтаксисом регулярок …  правильно ли я вижу?? или «s(» по логике «пробел и скобка» тоже правильно?… или  символ всегда пишется между слэшем и скобкой   (например, n( -новая строка начинающаяся со скобки или что-нибудь ещё) или скобка всегда понятна и без слэша?… пользовалась

подсказкой Максима

, но подумала многое, а уверенности никакой  :(  … ребята, извините, но я уже по буквам начинаю разбираться… p.s. с клавиатурой мы летом разобрались  8)   вашими стараниями…

Изменено: JeyCi20.10.2014 23:52:01

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#12

10.12.2014 17:43:11

всё-таки сработало…
— не могу не поддержать ветку идеей

отсюда

— вошла во вкус к Replace’у   :)

Код
Sub t()
  With CreateObject("vbscript.regexp")
    .ignorecase = True: .Global = True: .MultiLine = True: .Pattern = "(s(S+)$)"
    For Each c In Selection: c.Value = .Replace(c.Value, ""): Next 
  End With
End Sub

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#13

10.12.2014 21:15:52

Так?

Код
' Без последней части
Function FixCell(cell As Range)
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True: .Pattern = "^(.+)s+(?.+)?$"
        FixCell = .Execute(cell.Value)(0).SubMatches(0)
    End With
End Function

' Последняя часть
Function LastPart(cell As Range)
    With CreateObject("VBScript.RegExp")
        .IgnoreCase = True: .Pattern = "^.+s+(?(.+?))?$"
        LastPart = .Execute(cell.Value)(0).SubMatches(0)
    End With
End Function 

Прикрепленные файлы

  • пример.xls (74 КБ)

There is no knowledge that is not power

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

#14

10.12.2014 22:15:36

тогда попробую расшифровать — чтобы понять

Цитата
Johny пишет: Pattern = «^(.+)s+(?.+)?$»

? распознаём: (шаблон любое количество символов), пробел или несколько пробелов, открывающая скобка, несколько символов, закрывающая скобка, символ, конец строки… точки означают отношение к объекту ( VBScript.RegExp)… ^ значит исключаем это рег. выражение…  FixCell = .Execute(cell.Value)(0).SubMatches(0) — вобщем убираем? (SubMatches(0)) первое встретившееся такое выражение: всё что в скобках (.+), пробелы s+, открывающую скобку (?, закрывающая скобка после нескольких символов .+)? за которыми конец строки $

Цитата
Johny пишет: Pattern = «^.+s+(?(.+?))?$»

вобщем убираем первое встретившееся (SubMatches(0)) такое выражение: любое количество символов .+, пробел или несколько s+, открывающую скобку (?, за которой шаблон (.+?), который не совсем понимаю ЗАЧЕМ вносить в исключения, после чего закрывающая скобка )? за которыми конец строки $

Johny

признайтесь честно что написали  :) , а то лишили меня спокойного сна… если я неверно расшифровываю, то предупредите please… а то ведь не усну… особенно выделенное зелёным смущает… и скажу честно, я не ТС и на вопрос «так ли?» — ответить всё равно не смогу  :oops:  а понять интересно

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#15

10.12.2014 22:40:48

Кстати, в FixCell (? и )? необязательны — их можно удалить.  :)  Привожу пояснение с этой поправкой.

Код
 .Pattern = "^(.+)s+.+$"

Всё очень просто.
^ и $ определяют всю строку.
Раз нам надо «до последнего пробела», то мы знаем, что первый пробел с конца.
Символ $ нам даёт конец текста. .+ даёт весь текст в конце, а s+ и есть наш последний пробел.
Всё, что до него — это наша искомая строка, то есть с начала строки ^ до последнего пробела s+.

LastPart.

Код
"^.+s+(?(.+?))?$"
 

Тут принцип такой же, что и в FixCell, но я увидел, что в некоторых словах нет скобок вокруг последнего слова. А так как автору нужен текст без скобок, то (? и )? помогают нам исключить их, если таковые есть. Другими словами, если их не написать, то (.+?) заберёт и скобки, но они нам не нужны. Остальное — всё как в FixCell.
Что касается SubMatches(0), то это просто наш искомый текст, заключённый в скобки. Он считается слева направо: первый — 0, второй — 1 и так далее.
Если использовать Early Binding, то можно расписать попонятней и подробней. Для этого указываем библиотеку (Tools -> References ->Microsoft VBScript Regular Expressions 5.5).

Код
 Function LastPart(cell As Range)
    
    Dim re As RegExp
    Dim mc As MatchCollection
    Dim m As Match
    Dim submc As SubMatches
    
    Set re = New RegExp
    re.Pattern = "^.+s+(?(.+?))?$"
    Set mc = re.Execute(cell.Value)
    Set m = mc.Item(0)
    Set submc = m.SubMatches
    LastPart = submc.Item(0)
    
End Function

Изменено: Johny10.12.2014 22:43:29

There is no knowledge that is not power

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

Можно и по попроще
разбиваем сплитом на массив, переоределям размерность массива и джоиним новый массив

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#17

10.12.2014 23:00:58

Цитата
B.Key пишет: Можно и по попроще

Я дико извиняюсь, но какой смысл вкладывается в слово «попроще»?

There is no knowledge that is not power

 

JeyCi

Пользователь

Сообщений: 3357
Регистрация: 27.11.2013

ой, господа, мне это до следующего года занятие — уложить всё это в мозг… поэтому не ждите быстрого понимания  :)  … но всё равно большое спасибо за ответ!.. теперь засну… потому что в общем и целом

Johny

, кажется мне, вы за сегодня успели дать мне и статью почитать и сами по-быстрому резюме той статьи составили… respect… успехов вам по жизни — чтобы всё было так же быстро, (очень) полномасштабно и с пользой    8)  
p.s.

B.Key

мы тут просто случайно за рэгэксп зацепились (не судите строго) ради интереса для общего развития — на примере этой ветки… и кстати очень простые объяснения получились у

Johny

… читать приятнее, чем нобелевских лауреатов или ещё кого — там вообще ничего не понять… а тут на форуме очень многих очень приятно читать :)

Изменено: JeyCi10.12.2014 23:13:56

чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок — обратитесь к собеседнику на ВЫ — ответ на ваш вопрос получите — а остальное вас не касается (п.п.п. на форумах)

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

Попроще это  без регэкспа :)
———
Для меня это просто, для обычного поль зователя это вынос мозга.

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#20

10.12.2014 23:10:11

Цитата
B.Key пишет: Попроще этобез регэкспа

Феерично!  :D  Ну хотя да — огород из джоинов и сплитов, действительно, будет попроще.  :)  Лет десять назад я бы так и сделал.  :D

There is no knowledge that is not power

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

#21

11.12.2014 00:23:48

Johny, куда уж мне до Вас с Вашим опытом и 10 летним стажем.

Скрытый текст

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#22

11.12.2014 00:48:55

B.Key,   :D

Код
Function insTxt(txt)
insTxt = Left$(txt, InStrRev(txt, " ") - 1)
End Function

Изменено: RAN11.12.2014 00:49:22

 

B.Key

Пользователь

Сообщений: 633
Регистрация: 26.02.2014

#23

11.12.2014 00:56:13

Я согласен полностью, instr еще быстрее и проще, меня удивило другое:

Цитата
Johny пишет: Лет десять назад я бы так и сделал.
 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

#24

11.12.2014 21:37:12

Цитата
B.Key пишет: меня удивило другое:

Ну вот через 10 лет и поймёте…

There is no knowledge that is not power

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

Я имел ввиду, что B.Key через 10 лет прокачает скилл и будет использовать регэкспы.  :D

There is no knowledge that is not power

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

 Может и будет, но показанный им пример говорит о том, что по скорости выигрыш не за Вами))
На моей машине:
0,0625 split
6,796875 regexp
===
Вот и хотелось бы понять, почему лет через 10 B.Key должен будет перейти на регулярки? :-)

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Где наш главный защитник крепких регулярных выражений? Саша!!! Ты где?!  :)
0,0546875 split
6,773438 regexp

 

Johny

Пользователь

Сообщений: 2737
Регистрация: 21.12.2012

А с Early Binding? :)

There is no knowledge that is not power

 

RAN

Пользователь

Сообщений: 7091
Регистрация: 21.12.2012

#30

12.12.2014 00:01:59

Цитата
vikttur пишет: Саша!!! Ты где?!

Я за него.
Всего 1 строчка, и если не сравнялись, то существенно приблизились.

Скрытый текст

Помогите плиз не могу разобраться с ормулой

Пример
Герметик прокладок серый
ФИЛЬТР

Нужно удалить все после первого пробела, если 2 слова и более , то формула работает
А вот если слово одно, то выдает #ЗНАЧ!

Помогите пожалуйста с формулой
Спасибо


=ЕСЛИ((ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;" ";"")))>0;ЛЕВСИМВ(ПОДСТАВИТЬ(A1;" ";"!";1);НАЙТИ("!";ПОДСТАВИТЬ(A1;" ";"!";1))-1);A1)


=ЛЕВБ(A1;ПОИСК(" ";A1&" ")-1)


ctrl+h→найти » *»→заменить на пусто.

Я, как всегда, чертовски адекватен… Email: kuklp60@gmail.com WM Z206653985942, R334086032478, U238399322728, E332314026771


=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(A1;" ";ПОВТОР(" ";50));50))


Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

В этой статье описаны синтаксис формулы и использование функции СЖПРОБЕЛЫ в Microsoft Excel.

Описание

Удаляет из текста все пробелы, за исключением одиночных пробелов между словами. Функция СЖПРОБЕЛЫ используется для обработки текстов, полученных из других прикладных программ, если эти тексты могут содержать лишние пробелы.

Важно: Функция СЖПРОБЕЛЫ предназначена для удаления из текста знаков пробела 7-разрядного кода ASCII (значение 32). В наборе знаков Юникода существует дополнительный знак пробела, который называется знаком неразрывного пробела и имеет десятичное значение 160. Этот знак обычно используется на веб-страницах как сущность HTML &nbsp;. Сама по себе функция СЖПРОБЕЛЫ не удаляет этот знак неразрывного пробела. Пример обрезки обоих пробелов из текста см. в десяти лучших способах очистки данных.

Синтаксис

СЖПРОБЕЛЫ(текст)

Аргументы функции СЖПРОБЕЛЫ описаны ниже.

  • Текст    Обязательный. Текст, из которого удаляются пробелы.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Формула

Описание

Результат

=СЖПРОБЕЛЫ(» Доход за первый квартал «)

Удаляет начальные и конечные пробелы из текста в формуле («Доход за первый квартал»)

Доход за первый квартал

Нужна дополнительная помощь?

Удалить данные ячейки после 3 пробела

Forth

Дата: Среда, 23.03.2016, 09:54 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 15


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Добрый день!
Прошу помочь, как убрать в ячейке все лишнее поле 3 пробела?

 

Ответить

китин

Дата: Среда, 23.03.2016, 09:57 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

Ну если там после ФИО всегда скобочки тогда так можно

Код

=ЛЕВБ(A2;ПОИСК(«(«;A2)-1)

К сообщению приложен файл:

1234.xlsx
(8.6 Kb)


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

Сообщение отредактировал китинСреда, 23.03.2016, 10:00

 

Ответить

_Boroda_

Дата: Среда, 23.03.2016, 10:01 |
Сообщение № 3

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Тупо после 3-го пробела

Код

=ЛЕВБ(A2;ПОИСК(A2;ПОДСТАВИТЬ(A2;» «;A2;3))-1)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Nic70y

Дата: Среда, 23.03.2016, 10:01 |
Сообщение № 4

Группа: Друзья

Ранг: Экселист

Сообщений: 8136


Репутация:

1999

±

Замечаний:
0% ±


Excel 2010

такой вариант

Код

=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;793);3);793))


ЮMoney 41001841029809

 

Ответить

На чтение 5 мин Просмотров 11.3к. Опубликовано 16.05.2022

Люди, которые только начинают работать в Excel часто встречаются с таким вопросом.

Допустим, у нас есть такая табличка:

Примерно так выглядит удаление всех символов после «,».

Это можно сделать разными способами. Мы рассмотрим несколько.

Итак, начнём!

Содержание

  1. С помощью функции «Найти и заменить»
  2. С помощью формул
  3. С помощью функции «Заполнить»
  4. С помощью Visual Basic

С помощью функции «Найти и заменить»

Это, наверное, самый быстрый и удобный способ.

Допустим, у нас та же табличка и задача:

Пошаговая инструкция:

  • Копируем и вставляем столбик А в В;

  • Выделите столбик и щелкните «Главная»;

  • Далее — «Найти и выделить» -> «Заменить…»;

  • В первом параметре укажите «,*»;

  • Второй параметр не меняйте;

  • Щелкните «Заменить все».

Готово! Вот результат:

Как это работает?

Символ * означает неопределенное количество символов.

Так как мы используем «,*», то это значит, что программе нужно заменить запятую и все символы после неё на пустое место.

Это будет работать только если в каждой ячейке у вас одна запятая, если же у вас не одна, то первая и все остальные данные будут заменены на пустое место.

С помощью формул

Также, мы можем выполнить нашу задачу и с помощью формул.

Допустим, у нас есть такая табличка:

Формула принимает такой вид:

=ЛЕВСИМВ(A2;НАЙТИ(",";A2)-1)

Функция НАЙТИ возвращает порядковый номер запятой.

Это простой пример, давайте рассмотрим кое-что посложнее.

Теперь у нас такая табличка:

Формула, для этого примера, принимает такой вид:

=ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";2))-1)

Итак, также как в прошлый раз — не получится. Так как НАЙТИ будет возвращать порядковый номер первой запятой, а нам надо найти его для второй.

Мы используем небольшую хитрость, а если конкретнее, то заменяем вторую запятую на восклицательный знак, а затем с ним уже проводим операции.

И все бы хорошо, только в этом примере в каждой строке у нас ровно 2 запятые. А что делать если их неопределенное количество? Ведь в больших данных вы не будете выверять сколько запятой в каждой строке.

Вот пример:

Итак, нам нужно найти порядковый номер последней запятой, а после уже проводить с ней операции.

Для этого примера, формула принимает такой вид:

=ЛЕВСИМВ(A2;НАЙТИ("!";ПОДСТАВИТЬ(A2;",";"!";ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;",";","))))-1)

Итак, функция ДЛСТР сначала находит количество символов в строчке с запятыми, а потом без них.

А после вычитает из первого — второе. Таким образом мы получаем количество запятых в строчке.

А затем мы заменяем последнюю на восклицательный знак.

Вот так вот можно заменять все после определенного символа с помощью формул. Конечно, с небольшими хитростями.

Плюс этого метода в том, что данные будут динамичны. То есть если что-то поменяется в изначальных данных, все поменяется и в данных после обработки.

С помощью функции «Заполнить»

Функция «Заполнить», это довольно давний инструмент. Он может помочь нам и в этом случае.

Как он работает?

Очень просто — вы просто делаете что угодно и после используете функцию. Она пытается понять логику ваших действий и продолжить её.

Давайте рассмотрим пример.

Допустим, у нас есть та же табличка:

Пошаговая инструкция:

  • В первую ячейку столбика В введите то, что должно получиться после обработки;

  • В следующую ячейку, то же самое;

  • А теперь выделите столбик;

  • И щелкните на «Главная» -> «Заполнить» -> «Мгновенное заполнение»;

Готово! Вот результат:

Эту функцию, естественно, можно использовать не только для удаления текста после символа. Она работает там, где есть логика.

Однако, иногда, она может ошибаться. Поэтому всегда проверяйте то, что получилось после обработки.

С помощью Visual Basic

И, как обычно, разберем вариант с помощью Visual Basic.

Мы создадим свою собственную функцию и будем использовать её для обработки данных.

Это крайне удобно, если вы делаете что-либо очень часто. Например, как в нашем случае, удаляете данные после символа.

Код Visual Basic:

Function LastPosition(rCell As Range, rChar As String) 
'This function gives the last position of the specified character 
'This code has been developed by Sumit Bansal (https://trumpexcel.com) 
Dim rLen As Integer 
rLen = Len(rCell)   

For i = rLen To 1 Step -1   
If Mid(rCell, i - 1, 1) = rChar Then 
LastPosition = i - 1 
Exit Function 
End If   

Next i   E

nd Function

Код, чтобы он работал, нужно вставить в Visual Basic -> «Insert» -> «Module».

Давайте рассмотрим пример её использования.

Допустим, у нас есть такая табличка. Формула принимает такой вид:

=ЛЕВСИМВ(A2;LastPosition(A2;",")-1)

В нашей функции, первым аргументом мы указали диапазон для поиска, а вторым символ, последнюю позицию которого нам нужно найти.

С помощью Visual Basic все проще.

Вот и все! Если вам нужно сделать что-то подобное 1-2 раза, то лучше всего использовать функцию «Найти и заменить…», а если вы делаете это постоянно, то используйте Visual Basic.

Надеюсь, эта статья оказалась полезна для вас!

Возможность удаления знаков после символа или текста в Excel — это важная функция при работе с таблицами, позволяющая очистить нужные элементы от лишней информации.

  • Инструкция;
  • До запятой;
  • До пробела.

Видеоинструкция

Как удалить знаки после символа в Excel

Для этого потребуется использовать формулу:

=ПСТР(A1;1;ПОИСК(«символ»;A1)-1)

Пример

Удаление символов после знака в Excel

В этом случае:

  • А1 — ячейка, которую мы будет проверять;
  • Символ — символ или текст, после которого будет обрезаться ячейка.

Пример файла

Также можно комбинировать этот способ с очисткой данных «До».

Удаление знака после запятой в Эксель

Выполнить эту задачу можно при помощи конструкции:

=ПСТР(A1;1;ПОИСК(«,»;A1)-1)

Удаление символов после запятой в Excel

Все готово.

Пример файла

После пробела в Excel

Сделать это можно через формулу:

=ПСТР(A1;1;ПОИСК(» «;A1)-1)

Удаление символов после пробела в Excel

Все готово.

Пример файла

Содержание:

  1. Удаление текста после символа с помощью функции поиска и замены
  2. Удалить текст с помощью формул
  3. Удаление текста с помощью заливки Flash
  4. Удалить текст с помощью VBA (пользовательская функция)

При работе с текстовыми данными в Excel вам может потребоваться удалить текст до или после определенного символа или текстовой строки.

Например, если у вас есть данные об именах и обозначениях людей, вы можете удалить обозначение после запятой и оставить только имя (или наоборот, если вы сохраните обозначение и удалите имя).

Иногда это можно сделать с помощью простой формулы или быстрого поиска и замены, а иногда требуются более сложные формулы или обходные пути.

В этом уроке я покажу вам, как удалить текст до или после определенного символа в Excel (на разных примерах).

Итак, давайте начнем с нескольких простых примеров.

Удаление текста после символа с помощью функции поиска и замены

Если вы хотите быстро удалить весь текст после определенной текстовой строки (или перед текстовой строкой), вы можете сделать это с помощью «Найти и заменить» и подстановочных знаков.

Предположим, у вас есть набор данных, показанный ниже, и вы хотите удалить обозначение после символа запятой и оставить текст перед запятой.

Ниже приведены шаги для этого:

  1. Скопируйте и вставьте данные из столбца A в столбец B (это также необходимо для сохранения исходных данных)
  2. Выделив ячейки в столбце B, перейдите на вкладку «Главная».
  3. В группе «Редактирование» нажмите «Найти и выбрать».
  4. В параметрах, которые появляются в раскрывающемся списке, щелкните параметр «Заменить». Откроется диалоговое окно «Найти и заменить».
  5. В поле «Найти» введите ,* (т.е. запятая, за которой следует звездочка)
  6. Оставьте поле «Заменить на» пустым.
  7. Нажмите кнопку «Заменить все».

Вышеупомянутые шаги позволят найти запятую в наборе данных и удалить весь текст после запятой (включая запятую).

Поскольку при этом заменяется текст из выбранных ячеек, рекомендуется скопировать текст в другой столбец, а затем выполнить эту операцию поиска и замены или создать резервную копию ваших данных, чтобы исходные данные остались нетронутыми.

Как это работает?

* (знак звездочки) — это подстановочный знак, который может представлять любое количество символов.

Когда я использую его после запятой (в поле «Найти»), а затем нажимаю кнопку «Заменить все», он находит первую запятую в ячейке и считает ее совпадением.

Это связано с тем, что знак звездочки (*) считается соответствием всей текстовой строке, следующей за запятой.

Поэтому, когда вы нажимаете кнопку «Заменить все», она заменяет запятую и весь последующий текст.

Примечание: Этот метод работает хорошо, тогда у вас есть только одна запятая в каждой ячейке (как в нашем примере). Если у вас несколько запятых, этот метод всегда найдет первую запятую, а затем удалит все после нее. Таким образом, вы не можете использовать этот метод, если хотите заменить весь текст после второй запятой и оставить первый как есть.

Если вы хотите удалить все символы перед запятой, измените запись в поле поиска, поставив знак звездочки перед запятой (* вместо, *)

Удалить текст с помощью формул

Если вам нужно больше контроля над поиском и заменой текста до или после определенного символа, лучше использовать встроенные текстовые формулы в Excel.

Предположим, у вас есть приведенный ниже набор данных, из которого вы хотите удалить весь текст после запятой.

Ниже приведена формула для этого:
= ЛЕВЫЙ (A2; НАЙТИ (";"; A2) -1)

В приведенной выше формуле используется функция НАЙТИ, чтобы найти положение запятой в ячейке.

Этот номер позиции затем используется функцией LEFT для извлечения всех символов перед запятой. Поскольку мне не нужна запятая как часть результата, я вычел 1 из полученного значения формулы поиска.

Это был простой сценарий.

Возьмем немного сложный.

Предположим, у меня есть этот набор данных ниже, из которого я хочу удалить весь текст после второй запятой.

Вот формула, которая сделает это:
= ЛЕВЫЙ (A2; НАЙТИ ("!", ПОДСТАВИТЬ (A2, ",", "!", 2)) - 1)

Поскольку в этом наборе данных есть несколько запятых, я не могу использовать функцию НАЙТИ, чтобы получить позицию первой запятой и извлечь все, что находится слева от нее.

Мне нужно как-то узнать положение второй запятой, а затем извлечь все, что находится слева от второй запятой.

Для этого я использовал функцию ЗАМЕНА, чтобы заменить вторую запятую восклицательным знаком. Теперь это дает мне уникальный персонаж в камере. Теперь я могу использовать положение восклицательного знака, чтобы извлечь все, что находится слева от второй запятой.

Эта позиция восклицательного знака используется в функции LEFT для извлечения всего, что находится до второй запятой.

Все идет нормально!

Но что, если в наборе данных есть непоследовательное количество запятых.

Например, в приведенном ниже наборе данных в некоторых ячейках есть две запятые, а в некоторых — три запятые, и мне нужно извлечь весь текст до последней запятой.

В этом случае мне нужно как-то определить позицию последнего вхождения запятой, а затем извлечь все, что находится слева от нее.

Ниже приведена формула, которая сделает это
= ЛЕВЫЙ (A2; НАЙТИ ("!", ПОДСТАВИТЬ (A2, ",", "!", LEN (A2) -LEN (ПОДСТАВИТЬ (A2, ",", "")))) - 1)

В приведенной выше формуле функция LEN используется для определения общей длины текста в ячейке, а также длины текста без запятой.

Когда я вычитаю эти два значения, получается общее количество запятых в ячейке.

Таким образом, это дало бы мне 3 для ячейки A2 и 2 для ячейки A4.

Это значение затем используется в формуле ЗАМЕНА для замены последней запятой восклицательным знаком. И затем вы можете использовать левую функцию для извлечения всего, что находится слева от восклицательного знака (где раньше была последняя запятая)

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

Кроме того, поскольку результат связан с исходными данными, при изменении исходных данных результат будет автоматически обновляться.

Удаление текста с помощью заливки Flash

Flash Fill — это инструмент, который был представлен в Excel 2013 и доступен во всех последующих версиях.

Он работает, выявляя закономерности, когда вы вручную вводите данные, а затем экстраполируете их, чтобы получить данные для всего столбца.

Поэтому, если вы хотите удалить текст до или после определенного символа, вам просто нужно показать flash fairy, как будет выглядеть результат (введя его вручную пару раз), и flash fill автоматически распознает узор и даст вам результаты, достижения.

Позвольте показать вам это на примере.

Ниже у меня есть набор данных, из которого я хочу удалить весь текст после запятой.

Вот шаги, чтобы сделать это с помощью Flash Fill:

  1. В ячейке B2, которая является соседним столбцом наших данных, вручную введите «Jeffery Haggins» (что является ожидаемым результатом).
  2. В ячейке B3 введите «Тим Скотт» (ожидаемый результат для второй ячейки).
  3. Выберите диапазон B2: B10
  4. Перейдите на вкладку «Главная»
  5. В группе «Редактирование» щелкните раскрывающийся список «Заливка».
  6. Нажмите на Flash Fill.

Вышеупомянутые шаги дадут вам результат, как показано ниже:

Вы также можете использовать сочетание клавиш Flash Fill. Ctrl + E после выбора ячеек в столбце результатов (столбец B в нашем примере)

Flash Fill — замечательный инструмент, и в большинстве случаев он способен распознать узор и дать вам правильный результат. но в некоторых случаях он может не распознать шаблон правильно и может дать неверные результаты.

Так что не забудьте еще раз проверить результаты Flash Fill.

И точно так же, как мы удалили весь текст после определенного символа с помощью флэш-заливки, вы можете использовать те же шаги, чтобы удалить текст перед определенным символом. просто покажите вручную в соседнем столбце flash fill, как результат должен выглядеть как мой Интернет, а все остальное сделает он.

Удалить текст с помощью VBA (пользовательская функция)

Вся концепция удаления текста до или после определенного символа зависит от нахождения позиции этого символа.

Как показано выше, найти последнее вхождение этого символа хорошим означает использовать смесь формул.

Если это то, что вам нужно делать довольно часто, вы можете упростить этот процесс, создав настраиваемую функцию с помощью VBA (называемую функциями, определяемыми пользователем).

После создания вы можете повторно использовать эту функцию снова и снова. Это также намного проще и проще в использовании (поскольку большая часть тяжелой работы выполняется кодом VBA в серверной части).

Ниже кода VBA, который можно использовать для создания настраиваемой функции в Excel:
Функция LastPosition (rCell As Range, rChar As String) 'Эта функция выдает последнюю позицию указанного символа' Этот код был разработан Sumit Bansal (https://trumpexcel.com) Dim rLen As Integer rLen = Len (rCell) For i = rLen To 1 Step -1 If Mid (rCell, i - 1, 1) = rChar Then LastPosition = i - 1 Выход из функции End If Next i End Function
Вам необходимо поместить код VBA в обычный модуль редактора VB или в личную книгу макросов. Когда он у вас есть, вы можете использовать его как любую другую обычную функцию рабочего листа в книге.

Эта функция принимает 2 аргумента:

  1. Ссылка на ячейку, для которой вы хотите найти последнее вхождение определенного символа или текстовой строки.
  2. Символьная или текстовая строка, позицию которой вам нужно найти

Предположим, теперь у вас есть приведенный ниже набор данных, и вы хотите удалить весь текст после последней запятой и иметь только текст до последней запятой.

Ниже приведена формула, которая сделает это:
= ЛЕВЫЙ (A2; LastPosition (A2; ",") - 1)

В приведенной выше формуле я указал, чтобы найти позицию последней запятой. Если вы хотите найти положение какого-либо другого символа или текстовой строки, вы должны использовать это как второй аргумент в функции.

Как видите, это намного короче и проще в использовании по сравнению с формулой с длинным текстом, которую мы использовали в предыдущем разделе.

Если вы поместите код VBA в модуль в книге, вы сможете использовать эту настраиваемую функцию только в этой конкретной книге. Если вы хотите использовать это во всех книгах в вашей системе, вам необходимо скопировать и вставить этот код в личную книгу макросов.

Вот некоторые из писем, которые вы можете использовать для быстрого удаления текста до или после определенного символа в Excel.

Если это простая разовая задача, вы можете сделать это с помощью функции поиска и замены. что, если это немного сложнее, тогда вам нужно использовать комбинацию встроенных формул Excel или даже создать свою собственную формулу с помощью VBA.

Надеюсь, вы нашли этот урок полезным.

Понравилась статья? Поделить с друзьями:
  • Убрать все переводы строк word
  • Убрать все панели в excel
  • Убрать все мягкие переносы word
  • Убрать все колонтитулы word 2013
  • Убрать все знаки абзацев в word