Убрать точку в конце строки excel
прошу подскажите код для удаления лишних точек в ячейках.
Файл пример во вложении.
прошу подскажите код для удаления лишних точек в ячейках.
Файл пример во вложении. Павел_леваП
прошу подскажите код для удаления лишних точек в ячейках.
Файл пример во вложении. Автор - Павел_леваП
Дата добавления - 09.09.2017 в 13:31
честно говоря мне такой вариант не подходит так как данных миллионы, и не хотелось бы еще более нагружать файл формулами.
честно говоря мне такой вариант не подходит так как данных миллионы, и не хотелось бы еще более нагружать файл формулами. Павел_леваП
честно говоря мне такой вариант не подходит так как данных миллионы, и не хотелось бы еще более нагружать файл формулами. Автор - Павел_леваП
Дата добавления - 09.09.2017 в 15:41
Sub PointReplase()
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then Arr(i, 1) = Val(Arr(i, 1))
Next
Rn.Value = Arr
End Sub
Sub PointReplase()
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then Arr(i, 1) = Val(Arr(i, 1))
Next
Rn.Value = Arr
End Sub
Sub PointReplase()
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then Arr(i, 1) = Val(Arr(i, 1))
Next
Rn.Value = Arr
End Sub
Michael_S, чет я сомневаюсь в действенности val в данном случае. Она обрежет все что за второй точкой
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute( Arr(i, 1) , ".", "", 2)
Arr(i, 1) = Val(Arr(i, 1))
end if
Next
Michael_S, чет я сомневаюсь в действенности val в данном случае. Она обрежет все что за второй точкой
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute( Arr(i, 1) , ".", "", 2)
Arr(i, 1) = Val(Arr(i, 1))
end if
Next
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute( Arr(i, 1) , ".", "", 2)
Arr(i, 1) = Val(Arr(i, 1))
end if
Next
а как применить данный код к выделенным ячейкам, а не строго к столбцу С?
а как применить данный код к выделенным ячейкам, а не строго к столбцу С? Павел_леваП
а как применить данный код к выделенным ячейкам, а не строго к столбцу С? Автор - Павел_леваП
Дата добавления - 09.09.2017 в 17:18
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute(Arr(i, 1), ".", "", 2) ' выдает ошибку в этой строке
Arr(i, 1) = Val(Arr(i, 1))
End If
Next
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute(Arr(i, 1), ".", "", 2) ' выдает ошибку в этой строке
Arr(i, 1) = Val(Arr(i, 1))
End If
Next
Dim Arr(), i&, Rn As Range
Set Rn = Range("C1", Cells(Rows.Count, 3).End(xlUp))
Arr = Rn.Value
For i = 1 To UBound(Arr)
If Not IsNumeric(Arr(i, 1)) Then
Arr(i, 1) = Application.WorksheetFunction.Substitute(Arr(i, 1), ".", "", 2) ' выдает ошибку в этой строке
Arr(i, 1) = Val(Arr(i, 1))
End If
Next
Весьма часто в нашем распоряжении оказываются данные, которые хоть и содержат полезную информацию, но не пригодны для немедленного анализа. Одной из весьма распространенных проблем является наличие лишних пробелов - в начале, в конце или внутри между словами.
Лечится эта проблема очень легко - специальной функцией СЖПРОБЕЛЫ (TRIM) . Она убирает все лишние пробелы, но оставляет по одному пробелу между словами:
Просто и красиво. Но есть пара нюансов.
Неразрывные пробелы не удаляются
Чайной ложкой дегтя тут представляется только невозможность удалять таким способом неразрывные пробелы. Это особый вариант пробела (внешне неотличимый от обычного), на котором не бывает переноса строки. Обычно его используют в случаях типа "г. Москва" или "Иванов И.И.", чтобы эти фразы не разбивались между строчками. В Microsoft Word такой спецсимвол вводится сочетанием клавиш Ctrl+Shift+Пробел и отображается в виде кружка, а не точки:
К сожалению, функция СЖПРОБЕЛЫ (TRIM) удаляет только обычные пробелы. Для удаления неразрывных нужно использовать другие функции или макросы.
Формулы для удаления начальных и концевых пробелов
Если необходимо удалить только начальные пробелы (т.е. не трогать концевые и пробелы между словами), то придется делать это хитрыми формулами, т.к. готовой функции (по аналогии с функцией LTrim в VBA) в Microsoft Excel, к сожалению, нет.
Формула для удаления лишних пробелов только слева будет выглядеть так:
В английской версии =MID(A1;FIND(LEFT(TRIM(A1));A1);LEN(A1))
Формула для удаления лишних пробелов только справа будет чуть посложнее и должна вводиться уже как формула массива (с Ctrl+Shift+Enter):
В английском варианте это будет =LEFT(A1;MAX((MID(A1&REPT(" ";99);ROW(A1:A99),1);" ")*ROW(A1:A99)))
Ссылки по теме
На эту тему могу порекомендовать еще функцию ПЕЧСИМВ – она удаляет из текста всякие непечатные символы (символы которых нет на клавиатуре), а главное символ переноса строки, который вызывает много проблем при обработке данных в Excel.
Как правило, непечатные символы попадают в текст при ручном копировании данных из различных учетных систем, например 1С..
Для удаления пробелов в начале и в конце строки можно использовать условный оператор ЕСЛИ.
До этого желательно несколько раз с помощью поиска и замены убрать двойные пробелы.
Пробел в начале строки: =ЕСЛИ(ЛЕВСИМВ(А1;1)=" ";ПРАВСИМВ(А1;ДЛСТР(А1)-1))
Пробел в конце строки: =ЕСЛИ(ПРАВСИМВ(А1;1)=" ";ЛЕВСИМВ(А1;ДЛСТР(А1)-1))
А почему бы во всех примерах не добавить формулу в виде текста, а не в виде рисунка?
Т.е. как английский вариант, чтоб можно было удобно скопировать.
А еще так можно .
Для удаления пробелов в начале и в конце строки
можно использовать функцию =СЦЕПИТЬ(). Допустим, ячейка A1 проблемная ,у неё пробел вначале и в конце, нам это не надо.
Вставляем новый столбец и обрабатываем формулой =СЖПРОБЕЛЫ(A1), далее Выделить - Вст а вить зн а чения, теперь повторяющихся пробелов не будет, но в начале и в конце они остались.
Вставим еще один столбец, а в столбец формулу =СЦЕПИТЬ("&&";A1;"&&") , тут главное чтобы && не встречался в тексте. Опять Выделить - Вст а вить зн а чения . Теперь у нас в начале и конце строки не пробел, а дважды амперсанд+ пробел.
Далее Ctrl+F ищем &&[пробел] - заменить ничем, опять ищем [пробел]&& - заменить ничем, там где были пробелы они будут удалены вместе с амперсандами, там где пробелов не было остались наши &&
Проводим последний Поиск -замену Ctrl+F На й ти && Заменит ь ничем.
Не удобно искать лишние пробелы в чистом виде, а в сочетании с оригинальными символами это просто, мы их как бы помечаем,так можно выделять ненужные символы не только в одной ячейке, но и в массиве данных и разных столбцах. Иногда редактируемые данные не в одном столбце , а в разных. Вместо сложных вычислений первой/последней непустой ячейки, данные сначала объединяем в одну ячейку, с использованием хорошего разделителя, обрабатываем, а потом снова разделяем через "Текст по столбцам".
Зачастую текст, который достается нам для работы в ячейках листа Microsoft Excel далек от совершенства. Если он был введен другими пользователями (или выгружен из какой-нибудь корпоративной БД или ERP-системы) не совсем корректно, то он легко может содержать:
- лишние пробелы перед, после или между словами (для красоты!)
- ненужные символы ("г." перед названием города)
- невидимые непечатаемые символы (неразрывный пробел, оставшийся после копирования из Word или "кривой" выгрузки из 1С, переносы строк, табуляция)
- апострофы (текстовый префикс – спецсимвол, задающий текстовый формат у ячейки)
Давайте рассмотрим способы избавления от такого "мусора".
Замена
"Старый, но не устаревший" трюк. Выделяем зачищаемый диапазон ячеек и используем инструмент Заменить с вкладки Главная – Найти и выделить (Home – Find & Select – Replace) или жмем сочетание клавиш Ctrl+H.
Изначально это окно было задумано для оптовой замены одного текста на другой по принципу "найди Маша – замени на Петя", но мы его, в данном случае, можем использовать его и для удаления лишнего текста. Например, в первую строку вводим "г." (без кавычек!), а во вторую не вводим ничего и жмем кнопку Заменить все (Replace All). Excel удалит все символы "г." перед названиями городов:
Только не забудьте предварительно выделить нужный диапазон ячеек, иначе замена произойдет на всем листе!
Удаление пробелов
Если из текста нужно удалить вообще все пробелы (например они стоят как тысячные разделители внутри больших чисел), то можно использовать ту же замену: нажать Ctrl+H, в первую строку ввести пробел, во вторую ничего не вводить и нажать кнопку Заменить все (Replace All).
Однако, часто возникает ситуация, когда удалить надо не все подряд пробелы, а только лишние – иначе все слова слипнутся друг с другом. В арсенале Excel есть специальная функция для этого – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами, т.е. мы получим на выходе как раз то, что нужно:
Удаление непечатаемых символов
В некоторых случаях, однако, функция СЖПРОБЕЛЫ (TRIM) может не помочь. Иногда то, что выглядит как пробел – на самом деле пробелом не является, а представляет собой невидимый спецсимвол (неразрывный пробел, перенос строки, табуляцию и т.д.). У таких символов внутренний символьный код отличается от кода пробела (32), поэтому функция СЖПРОБЕЛЫ не может их "зачистить".
Вариантов решения два:
- Аккуратно выделить мышью эти спецсимволы в тексте, скопировать их (Ctrl+C) и вставить (Ctrl+V) в первую строку в окне замены (Ctrl+H). Затем нажать кнопку Заменить все (Replace All) для удаления.
- Использовать функцию ПЕЧСИМВ (CLEAN) . Эта функция работает аналогично функции СЖПРОБЕЛЫ, но удаляет из текста не пробелы, а непечатаемые знаки. К сожалению, она тоже способна справится не со всеми спецсимволами, но большинство из них с ее помощью можно убрать.
Функция ПОДСТАВИТЬ
Замену одних символов на другие можно реализовать и с помощью формул. Для этого в категории Текстовые в Excel есть функция ПОДСТАВИТЬ (SUBSTITUTE) . У нее три обязательных аргумента:
- Текст в котором производим замену
- Старый текст – тот, который заменяем
- Новый текст – тот, на который заменяем
С ее помощью можно легко избавиться от ошибок (замена "а" на "о"), лишних пробелов (замена их на пустую строку ""), убрать из чисел лишние разделители (не забудьте умножить потом результат на 1, чтобы текст стал числом):
Удаление апострофов в начале ячеек
Апостроф (') в начале ячейки на листе Microsoft Excel – это специальный символ, официально называемый текстовым префиксом. Он нужен для того, чтобы дать понять Excel, что все последующее содержимое ячейки нужно воспринимать как текст, а не как число. По сути, он служит удобной альтернативой предварительной установке текстового формата для ячейки (Главная – Число – Текстовый) и для ввода длинных последовательностей цифр (номеров банковских счетов, кредитных карт, инвентарных номеров и т.д.) он просто незаменим. Но иногда он оказывается в ячейках против нашей воли (после выгрузок из корпоративных баз данных, например) и начинает мешать расчетам. Чтобы его удалить, придется использовать небольшой макрос. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то апострофы перед содержимым выделенных ячеек исчезнут.
Английские буквы вместо русских
Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские ("це" вместо русской "эс", "игрек" вместо русской "у" и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но Excel воспринимает их, конечно же, как разные значения и выдает ошибки в формулах, дубликаты в фильтрах и т.д.
Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу :)
Многие пользователи программы Эксель сталкиваются с вопросом замены точек на запятые в таблице. Это чаще всего связано с тем, что в англоязычных странах принято отделять десятичные дроби от целого числа точкой, а у нас – запятой. Хуже всего то, что числа с точкой не воспринимаются в русскоязычных версиях Excel, как числовой формат. Поэтому, именно данное направление замены настолько актуально. Давайте разберемся, как поменять точки на запятые в программе Microsoft Excel различными способами.
Способы смены точки на запятую
Существует несколько проверенных способов смены точки на запятую в программе Эксель. Одни из них полностью решаются с помощью функционала данного приложения, а для применения других требуется использование сторонних программ.
Способ 1: инструмент «Найти и заменить»
Самый простой способ замены точек на запятые — это воспользоваться возможностями, которые предоставляет инструмент «Найти и заменить». Но, и с ним нужно вести себя осторожно. Ведь, при неправильном его использовании будут заменены все точки на листе, даже в тех местах, где они действительно нужны, например, в датах. Поэтому, этим способом нужно пользоваться осторожно.
-
Находясь во вкладке «Главная», в группе инструментов «Редактирование» на ленте жмем на кнопку «Найти и выделить». В появившемся меню переходим по пункту «Заменить».
Как видим, замена выполнена успешно.
Способ 2: использование функции ПОДСТАВИТЬ
Ещё одним вариантом замены точки на запятую является использование функции ПОДСТАВИТЬ. Правда, при использовании этой функции замена происходит не в исходных ячейках, а отображается в отдельной колонке.
-
Выделяем ячейку, которая станет самой первой в колонке для вывода измененных данных. Кликаем по кнопке «Вставить функцию», которая располагается слева от места нахождения строки функций.
На этом преобразование данных закончено.
Способ 3: применение макроса
Заменить точку на запятую в Экселе можно также при помощи макроса.
-
Прежде всего, нужно включить макросы и вкладку «Разработчик», если они у вас не включены.
Sub Макрос_замены_точки_на_запятую()
Selection.Replace What:=".", Replacement:=","
End Sub
После этого, выполняется преобразование точек на запятые в выделенном диапазоне ячеек.
Внимание! Очень внимательно применяйте данный способ. Последствия действия этого макроса необратимы, поэтому выделяйте только те ячейки, к которым желаете его применить.
Способ 4: использование Блокнота
Следующий способ предполагает копирование данных в стандартный текстовый редактор Windows Блокнот, и изменение их в этой программе.
-
Выделяем в Excel область ячеек, в которых нужно заменить точку на запятую. Кликаем правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать».
Способ 5: изменение настроек Excel
Как один из способов преобразования точки в запятые, можно использовать изменение настроек программы Excel.
-
Переходим во вкладку «Файл».
Способ 6: изменение системных настроек
Этот способ похож на предыдущий. Только на этот раз мы меняем не настройки Excel. А системные настройки Windows.
-
Через меню «Пуск» входим в «Панель управления».
Последний пункт очень важен. Если его не выполнить, то вы не сможете проводить привычные арифметические действия с преобразованными данными. Кроме того, возможно некорректно будут работать и другие программы, установленные на компьютере.
Как видим, существует несколько способов замены точки на запятую в программе Microsoft Excel. Конечно, большинство пользователей предпочитают для данной процедуры использовать наиболее легкий и удобный инструмент «Найти и заменить». Но, к сожалению, в некоторых случаях с его помощью не удаётся корректно преобразовать данные. Вот тогда на помощь могут прийти и другие варианты решения проблемы.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
При выгрузке из учетной программы, при скачивании данных из интернета или если файл заполняется неопытным пользователем случается, что в ячейках остаются лишние символы, пробелы, точки, знаки переноса строки и т.п. Как быстро и просто удалить любой символ в ячейке Excel?
Самая распространенная ошибка, когда Excel не воспринимает текст как число. Об этом можно читать здесь . Способов как удалить символ в ячейке много, постараюсь рассказать о каждом подробнее.
1. Найти и заменить символ в ячейке Excel
Если вкратце, то существует специальный инструмент во всех продуктах MS Office. Вызывается клавишами Ctrl+F (найти) или Ctrl+H (заменить). В первое поле можно вписать символ который нужно удалить, во второе ничего не вписывайте.
Подробнее об этом инструменте написано в этой статье
2. Удалить символ в ячейке Excel формулой
Удалить любой символ можно прекрасной функцией =ПОДСТАВИТЬ().
Эта функция имеет следующую конструкцию =ПОДСТАВИТЬ(текст;старый_текст;новый_текст;номер_вхождения)
текст — собственно, указывается ячейка где записан текст для изменения
старый_текст — что меняем
новый_текст — на что меняем
номер_вхождения — является необязательным. Он предписывает Excel заменить только символы начиная с определенного номера. Интересное дополнение
Представим, что вам нужно заменить все точки на запятые, формула:
3. =СЖПРОБЕЛЫ()
Часто пробелы не видны невооруженным глазом («Иванов Иван «), нужно писать дополнительную проверку, чтобы найти их, в общем предпринимать дополнительные действия. Проще всего воспользоваться формулой =СЖПРОБЕЛЫ(). Она убирает все задвоенные пробелы, а так же лишние пробелы в конце и начале текста в ячейке (станет «Иванов Иван») .
Но! Будьте внимательнее — формула удаляет стандартные пробелы. Если вы к примеру копировали текст с сайта — он может содержать символы похожие на пробелы, но функция =СЖПРОБЕЛЫ() не будет их удалять. В таком случае придется пользоваться возможностью Найти и заменить.
Но в 95% случаев сжпробелы помогает на «отлично».
Удаление пробелов я даже вынес в отдельную статью
4. Удалить первый символ
Часто необходимо удалить первый, несколько последних символов и так далее. Как это сделать быстро и не вручную? Воспользуйтесь функцией ПСТР .
Очень подробно об этом написано здесь .
Например у нас в ячейках задан порядковый номер сотрудника. Нужно удалить первые символы до точки и пробел.
Формула будет выглядеть следующим образом.
Так же можно разделить текст по столбцам и разнести их в разные ячейки.
5. Функция =ПЕЧСИМВ()
Функция с одним аргументом очень похожа на СЖПРОБЕЛЫ, но она удаляет непечатные символы в строке, такие как перенос строки, знаки абзаца, какие-нибудь квадратики и т.п. (первые 32 непечатаемых знаков в 7-разрядном коде ASCII). Особенно полезна она, если нужно удалить перенос строки — мне всегда помогает.
Внимание! ПЕЧСИМВ способна удалить большинство, но не все лишние символы.
Удалить первый символ слева в программе эксель можно с помощью специальной встроенной функции, рассмотрим пошаговую инструкцию, как это сделать.
Перед нами таблица в программе эксель, в которой необходимо удалить первый символ.
Сначала мы должны определить общее количество символов в каждой ячейки. Для этого воспользуемся функцией ДЛСТР, которая подсчитывает количество символов. Пишем в ячейки В2 формулу: =ДЛСТР(A2), а затем её копируем на диапазон В3 по В6.
Теперь приступим к удалению первого символа слева, для этого воспользуемся функцией ПРАВСИМВ. Пишем в ячейки В2 формулу: =ПРАВСИМВ(A2;ДЛСТР(A2)-1), где: A2 – адрес ячейки у котором будем убирать первый символ слева, ДЛСТР(A2)-1 – число знаков, которые возвращаем с конца строки с правой стороны, эта цифра для каждой ячейки расчетная, которая получается путем вычитание одного символа из общего их числа.
Остается скопировать формулу в оставшиеся ячейки. В итоге из каждой ячейки мы удалили первый символ слева.
Бывают ситуации, когда необходимо отрезать/ удалить строго определенное количество символов в тексте справа или слева. Например, когда вы имеете список адресов, и вначале каждого адреса стоит шестизначный индекс. Нужно убрать почтовые индексы из списка, но через замену их не уберешь, так как они имеют совершенно разные значения и не находятся опцией замены.
Функции, которая отрезает лишнее количество символов в ячейке, найти не удается, но существует система из двух функций, которые можно применить. Это система из функции ЛЕВСИМВ (или ПРАВСИМВ) и функции ДЛСТР (длина строки).
Рассмотрим их применение.
Вначале находим количество символов в тексте при помощи функции ДЛСТР. Для этого запускаем менеджер функций, выбираем ДЛСТР, указываем ячейку с текстом. Функция ДЛСТР посчитает количество символов.
Зная длину лишнего текста — 6 знаков в индексе, вычитаем их из общего числа символов посчитанных функцией ДЛСТР и получаем то количество символов, которое должно остаться в тексте, когда удалим индекс.
Полученное значение – количество оставляемых в тексте знаков, вписываем в функцию ЛЕВСИМВ или ПРАВСИМВ. Если нужно удалить знаки справа, то используем ЛЕВСИМВ, если слева, то ПРАВСИМВ. Нажимаем «Enter». Функция ЛЕВСИМВ или ПРАВСИМВ присваивает ячейке нужное нам количество символов из текста в новую ячейку, исключая ненужный нам индекс.
Для уменьшения количества ячеек с расчетами эти функции можно записать в систему следующего вида:
Читайте также: