Макрос для excel замена точек на запятые

Содержание

  • Способы смены точки на запятую
    • Способ 1: инструмент «Найти и заменить»
    • Способ 2: использование функции ПОДСТАВИТЬ
    • Способ 3: применение макроса
    • Способ 4: использование Блокнота
    • Способ 5: изменение настроек Excel
    • Способ 6: изменение системных настроек
  • Вопросы и ответы

Замена точек на запятые в Microsoft Excel

Многие пользователи программы Эксель сталкиваются с вопросом замены точек на запятые в таблице. Это чаще всего связано с тем, что в англоязычных странах принято отделять десятичные дроби от целого числа точкой, а у нас – запятой. Хуже всего то, что числа с точкой не воспринимаются в русскоязычных версиях Excel, как числовой формат. Поэтому, именно данное направление замены настолько актуально. Давайте разберемся, как поменять точки на запятые в программе Microsoft Excel различными способами.

Способы смены точки на запятую

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

Способ 1: инструмент «Найти и заменить»

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

  1. Находясь во вкладке «Главная», в группе инструментов «Редактирование» на ленте жмем на кнопку «Найти и выделить». В появившемся меню переходим по пункту «Заменить».
  2. Переход к замене в Microsoft Excel

  3. Открывается окно «Найти и заменить». В поле «Найти» вставляем знак точки (.). В поле «Заменить» — знак запятой (,). Кликаем по кнопке «Параметры».
  4. Переход в параметры замены в Microsoft Excel

  5. Открываются дополнительные настройки поиска и замены. Напротив параметра «Заменить на…» кликаем по кнопке «Формат».
  6. Переход в формат замены в Microsoft Excel

  7. Открывается окно, в котором мы сразу можем установить формат изменяемой ячейки, какой бы она до этого не была. В нашем случае главное установить числовой формат данных. Во вкладке «Число» среди наборов числовых форматов выделяем пункт «Числовой». Жмем на кнопку «OK».
  8. Устанорвка формата в Microsoft Excel

  9. После того, как мы вернулись в окно «Найти и заменить», выделяем весь диапазон ячеек на листе, где нужно будет выполнить замену точки на запятую. Это очень важно, ведь если вы не выделите диапазон, то замена произойдет по всему листу, что не всегда нужно. Затем, жмем на кнопку «Заменить все».

Запуск замены в Microsoft Excel

Как видим, замена выполнена успешно.

Замена завершена в Microsoft Excel

Урок: замена символов в Excel

Способ 2: использование функции ПОДСТАВИТЬ

Ещё одним вариантом замены точки на запятую является использование функции ПОДСТАВИТЬ. Правда, при использовании этой функции замена происходит не в исходных ячейках, а отображается в отдельной колонке.

  1. Выделяем ячейку, которая станет самой первой в колонке для вывода измененных данных. Кликаем по кнопке «Вставить функцию», которая располагается слева от места нахождения строки функций.
  2. Переход в Мастер функций в Microsoft Excel

  3. Запускается Мастер функций. В списке, представленном в открытом окне, ищем функцию ПОДСТАВИТЬ. Выделяем её и жмем на кнопку «OK».
  4. Выбор функции ПОДСТАВИТЬ в Microsoft Excel

    Lumpics.ru

  5. Активируется окно аргументов функции. В поле «Текст» нужно ввести координаты первой ячейки столбца, где располагаются числа с точками. Это можно сделать, просто выделив эту ячейку на листе с помощью мыши. В поле «Стар_текст» вставляем точку (.). В поле «Нов_текст» ставим запятую (,). Поле «Номер_вхождения» заполнять не нужно. Сама функция будет иметь такой шаблон: «=ПОДСТАВИТЬ(адрес_ячейки;».»;»,»)». Жмем на кнопку «OK».
  6. Аргументы функции ПОДСТАВИТЬ в Microsoft Excel

  7. Как видим, в новой ячейке у числа уже вместо точки запятая. Теперь нам нужно сделать подобную операцию для всех других ячеек столбца. Конечно, вводить для каждого числа функцию не нужно, есть намного более быстрый способ выполнить преобразование. Становимся на правый нижний край ячейки, которая содержит преобразованные данные. Появляется маркер заполнения. Удерживая левую кнопку мыши, тянем его вниз до нижней границы области, содержащей преобразуемые данные.
  8. Копирование функции ПОДСТАВИТЬ в Microsoft Excel

  9. Теперь нам нужно присвоить ячейкам числовой формат. Выделяем всю область преобразованных данных. На ленте во вкладке «Главная» ищем блок инструментов «Число». В выпадающем списке меняем формат на числовой.

Установка числового формата в Microsoft Excel

На этом преобразование данных закончено.

Способ 3: применение макроса

Заменить точку на запятую в Экселе можно также при помощи макроса.

  1. Прежде всего, нужно включить макросы и вкладку «Разработчик», если они у вас не включены.
  2. Включение макросов в Microsoft Excel

  3. Переходим во вкладку «Разработчик».
  4. Переход в меню разработчика в Microsoft Excel

  5. Жмем на кнопку «Visual Basic».
  6. Переход в Visual Basic в Microsoft Excel

  7. В открывшееся окно редактора вставляем следующий код:

    Sub Макрос_замены_точки_на_запятую()
    Selection.Replace What:=".", Replacement:=","
    End Sub

    Закрываем редактор.

  8. Вставка кода в Microsoft Excel

  9. Выделяем область ячеек на листе, которую нужно преобразовать. Во вкладке «Разработчик» жмем на кнопку «Макросы».
  10. Переход в макросы в Microsoft Excel

  11. В открывшемся окне представлен список макросов. Выбираем из списка «Макрос замены запятых на точки». Жмем на кнопку «Выполнить».

Переход к выполнению макроса в Microsoft Excel

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

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

Урок: как создать макрос в Microsoft Excel

Способ 4: использование Блокнота

Следующий способ предполагает копирование данных в стандартный текстовый редактор Windows Блокнот, и изменение их в этой программе.

  1. Выделяем в Excel область ячеек, в которых нужно заменить точку на запятую. Кликаем правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать».
  2. Копирование данных в Microsoft Excel

  3. Открываем Блокнот. Делаем клик правой кнопкой мыши, и в появившемся списке кликаем по пункту «Вставить».
  4. Вставка в Блокноте

  5. Кликаем по пункту меню «Правка». В появившемся списке выбираем пункт «Заменить». Или же, можно просто набрать на клавиатуре комбинацию клавиш Ctrl+H.
  6. Замена в Блокноте

  7. Открывается окно поиска и замены. В поле «Что» ставим точку. В поле «Чем» — запятую. Жмем на кнопку «Заменить все».
  8. Замена в программе Блокнот

  9. Выделяем измененные данные в Блокноте. Кликаем правой кнопкой мыши, и в списке выбираем пункт «Копировать». Или жмем на клавиатуре сочетание клавиш Ctrl+C.
  10. Копирование в Блокноте

  11. Возвращаемся в Эксель. Выделяем диапазон ячеек, где следует заменить значения. Кликаем по нему правой кнопкой. В появившемся меню в разделе «Параметры вставки» кликаем по кнопке «Сохранить только текст». Либо, жмем сочетание клавиш Ctrl+V.
  12. Вставка данных в Microsoft Excel

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

Установка формата в Microsoft Excel

Способ 5: изменение настроек Excel

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

  1. Переходим во вкладку «Файл».
  2. Переход во вкладку Файл в Microsoft Excel

  3. Выбираем раздел «Параметры».
  4. Переход в параметры в Microsoft Excel

  5. Переходим в пункт «Дополнительно».
  6. Переход в Дополнительно настроек в Microsoft Excel

  7. В разделе настроек «Параметры правки» снимаем галочку с пункта «Использовать системные разделители». В активировавшееся поле «Разделитель целой и дробной части» ставим точку. Жмем на кнопку «OK».
  8. Изменение параметров в Microsoft Excel

  9. Но, данные сами собой не изменятся. Копируем их в Блокнот, а после вставляем на то же место обычным способом.
  10. Данные в блокноте в Microsoft Excel

  11. После завершения операции рекомендуется вернуть настройки Эксель по умолчанию.

Возврат к настройкам по умолчанию в Microsoft Excel

Способ 6: изменение системных настроек

Этот способ похож на предыдущий. Только на этот раз мы меняем не настройки Excel. А системные настройки Windows.

  1. Через меню «Пуск» входим в «Панель управления».
  2. Переход в Панель управления

  3. В Панели управления переходим в раздел «Часы, язык и регион».
  4. Переход в раздел Часы в Microsoft Excel

  5. Переходим в подраздел «Язык и региональные стандарты».
  6. Переход в подраздел Язык и региональные стандарты в Microsoft Excel

  7. В открывшемся окне во вкладке «Форматы» жмем на кнопку «Дополнительные настройки».
  8. Переход в дополнительные параметры в Microsoft Excel

  9. В поле «Разделитель целой и дробной части» меняем запятую на точку. Жмем на кнопку «OK».
  10. Изменение системных настроек Windows

  11. Копируем данные через Блокнот в Excel.
  12. Вставка в Microsoft Excel

  13. Возвращаем прежние настройки Windows.

Возврат к прежним системным настройкам Windows

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

Как видим, существует несколько способов замены точки на запятую в программе Microsoft Excel. Конечно, большинство пользователей предпочитают для данной процедуры использовать наиболее легкий и удобный инструмент «Найти и заменить». Но, к сожалению, в некоторых случаях с его помощью не удаётся корректно преобразовать данные. Вот тогда на помощь могут прийти и другие варианты решения проблемы.

 

при замене на экране все нормально, макросом — просто убирает точки, запятые не вставляет.  
формат стоит текстовый, но пробовал и с другими.  
нашел два способа:    
1 поставить впереди апостроф — потом все меняет, но слишком муторно.  

  2 более красиво :) ставлю автозамену точки на запятую..  
 потом меняю макросом в нужном диапазоне.. точку на точку — получается запятая :)  

  как еще?

 

Меняем числа в текстовом формате с не тем разделителем дробной части на числовой формат? Или я не так понял?

 

да! правда и я мог не так понять .. :)

 

вот файл.  

  поменяйте мне точки на запятые

 

Ctrl+H, «.» на «,». Лист NEW.

 

а первый мой пост читали?  

  макросом мне надо!

 

{quote}{login=слэн}{date=27.05.2008 03:25}{thema=}{post}вот файл.  

  поменяйте мне точки на запятые{/post}{/quote}В результате должны получится числа или должен остаться текст?  
И решение зависит от используемого разделителя дробной части.  
Поменять на запятую потому что запятая Application.DecimalSeparator?

 
 

нужно макросом и с наибольшей скоростью ибо данных может быть много

 

На первый вопрос, содержащий «или», ответ «да» непонятен.  
Может так пойдет?  
   Selection.Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False

 

на самом деле ответ совершенно верен :)  

  уж из текста числа я сделаю..  

  но, подчиняясь , в конечном виде нужны числа, и, значит, будем считать это ответом на первую часть вопроса, после получения которого, ответ на вторую часть будет очевиден :)

 

{quote}{login=Лузер™}{date=27.05.2008 04:03}{thema=}{post}На первый вопрос, содержащий «или», ответ «да» непонятен.  
Может так пойдет?  
   Selection.Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _  
       SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _  
       ReplaceFormat:=False{/post}{/quote}  

  врят ли — но щас попробуююю

 

снимаю шляпу — работает.  

  теперь объясните разницу..    
пожалста-а-а

 

Вариант:  
‘Sub Макрос1()  
   With Range(«A1:D2»)  
       .Replace What:=»,», Replacement:=».», LookAt:=xlPart  
   End With  
End Sub

 

{quote}{login=слэн}{date=27.05.2008 04:18}{thema=}{post}снимаю шляпу — работает.  

  теперь объясните разницу..    
пожалста-а-а{/post}{/quote}А фиг его знает. Я точно знаю, что DecimalSeparator в VBA «.»  
Думаю, что VBA меняет точку на точку, имея в виду DecimalSeparator, а эксель меняет вбашный DecimalSeparator на свой.  
Плюс этого кода в независимости от региональных настроек юзера.

 

да, возможно.  

  еще раз спасибо

 

ZVI

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

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

—  
Application.DecimalSeparator всегда возвращает тот разделитель, который прописан в Сервис – Параметры – Международные – Разделитель целой и дробной части, даже если выбран флажок «Использовать системные разделители».  

  А символ десятичного разделителя чисел Excel зависит еще и от того, использованы ли системные разделители через меню: Сервис – Параметры – Международные — Использовать системные разделители.  

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

  Например:  
— системный десятичный знак – запятая;  
— в меню: Сервис – Параметры – Международные – Разделитель целой и дробной части указана точка, и при этом установлен флаг «Использовать системные разделители».  

  При этом Application.DecimalSeparator выдаст точку, а Excel-ю для числовых ячеек нужна запятая.  

  Чтобы не зависеть от подобных накладок я использую такую функцию:  

  ‘ Символ десятичного разделителя  
Function DecSep() As String  
With Application  
If .UseSystemSeparators Then  
DecSep = Mid$(CStr(0.1), 2, 1)  
Else  
DecSep = .International(xlDecimalSeparator)  
End If  
End With  
End Function  

  —  
ZVI

 

zvi, больше интересовала другая особенность:  

  при непосредственном указании             Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=»,», LookAt:=xlPart, _  

  точки убираются, но запятые не появляются  

  при             Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _  

    все нормально, точки меняются на запятые

 

{quote}{login=ZVI}{date=28.05.2008 01:37}{thema=Re:}{post}—  
Application.DecimalSeparator всегда возвращает тот разделитель, который прописан в Сервис – Параметры – Международные – Разделитель целой и дробной части, даже если выбран флажок «Использовать системные разделители».  

  А символ десятичного разделителя чисел Excel зависит еще и от того, использованы ли системные разделители через меню: Сервис – Параметры – Международные — Использовать системные разделители.  

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

  Например:  
— системный десятичный знак – запятая;  
— в меню: Сервис – Параметры – Международные – Разделитель целой и дробной части указана точка, и при этом установлен флаг «Использовать системные разделители».  

  При этом Application.DecimalSeparator выдаст точку, а Excel-ю для числовых ячеек нужна запятая.  

  Чтобы не зависеть от подобных накладок я использую такую функцию:  

  ‘ Символ десятичного разделителя  
Function DecSep() As String  
With Application  
If .UseSystemSeparators Then  
DecSep = Mid$(CStr(0.1), 2, 1)  
Else  
DecSep = .International(xlDecimalSeparator)  
End If  
End With  
End Function  

  —  
ZVI{/post}{/quote}Да. По поводу DecimalSeparator  
я ошибался.  
Сейчас провел небольшие изыскания и выяснил, что  
1. VBA всегда использует системный DecimalSeparator, хотя в коде употребляется только точка. Это понятно, т.к. запятая испоьзуется для других известных целей.  
2. Конструкция Application.International(xlDecimalSeparator) всегда корректно возвращает DecimalSeparator используемый в экселе, вне зависимости стоит галка UseSystemSeparators или нет  
3. Конструкция Mid$(CStr(0.1), 2, 1)  
всегда возвращает системый DecimalSeparator    
В приложении пример для опытов с услов. форматированием точка — красный, запятая — желтый.  
А также в модуле 2 нарытая аццкая функция для возврата системного DecimalSeparator :)  
2 слэн. Теперь думаю так: у Вас DecimalSeparator стоял точкой потому и прошло :)  
Можно тупо менять точку на точку, при этом ячейка переписывается заново, но уже с DecimalSeparator в понимании VBA  
Что характерно: Код типа Cells.Replace What:=».», Replacement:=Application.International(xlDecimalSeparator), LookAt:=xlPart, SearchOrder _  
       :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False  
работает, но корежит числа делая их текстом с «правильным» разделителем.  
Резьюм: меняем что-то на точку.

 
 

ZVI

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

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

{quote}{login=слэн}{date=28.05.2008 09:47}{thema=}{post}zvi, больше интересовала другая особенность:  

  при непосредственном указании             Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=»,», LookAt:=xlPart, _  

  точки убираются, но запятые не появляются  

  при             Range(Cells(2, 4), Cells(i, 7)).Replace What:=».», Replacement:=Application.DecimalSeparator, LookAt:=xlPart, _  

    все нормально, точки меняются на запятые{/post}{/quote}  
—  
Метод .Replace хоть и со странностями, но с ним то все понятно.  

  Функция DecSep() мною была приведена в развитие темы, так как звучало «и с наибольшей скоростью ибо данных может быть много». С этой функцией замена текстовых ячеек на числовые работает в 2-3 раза быстрее, чем Replace. На моем компе — примерно в 2.9 раза быстрее.  

  Для того, чтобы сравнить эффективность 2-х методов замены прилагаю файл небольшой тест-системы с подробными комментариями.  
—  
ZVI

 

ZVI, безусловно, Вы нам уже не раз доказывали, что считать массив, обработать, записать гораздо быстрее, чем непосредственная обработка экселем.  
У меня показывает преимущество метода 2 в 1.89 раза.  
Но, с учетом моего предыдущего поста, я решил проэксперементировать и закоментировал следующий код  
‘    ds = DecSep()  
‘    For Each v In x  
‘      i = InStr(1, v, «.», 0)  
‘      If i > 0 Then Mid$(v, i, 1) = ds  
‘    Next  
Т.е. реально осталось:  
   x = .Value  
   .NumberFormat = «General»  
   .Value = x  
Работает, даже если поставить разделитель дробной части «%» :)  
Можно даже так:  
   .NumberFormat = «General»  
   .Value = .Value  
Но все это работает в отношении текста с точкой.

 

ZVI, простите, но я нашел у Вас ошибку.  
Mid$(v, i, 1) = ds меняет символ только для переменной v  
массив х остается без изменений. Т.е. работает так:  
x = .Value  
.NumberFormat = «General»  
.Value = x  
А «фор ич в ин х» пустая трата времени.  
Попробуйте с    
TestString = «1,5518»  
и    
i = InStr(1, v, «,», 0)  
В результате получаем числа, но такие: 15518. Без разделителя.

 

Придумал метод 3  
Идея такая:    
Пусть TestString = «1,5518», т.е. у нас некий текст с разделителем «запятая»  
Запоминаем текущие настройки .UseSystemSeparators и .DecimalSeparator  
меняем .DecimalSeparator на запятую или тот разделитель, который был в TestString    
копируем пустую ячейку, вставляем значения со сложением.  
Возвращаем настройки на место.  
Скорость приятно удивляет даже без оптимизации кода (см. файл)  
Поправил метод 2 немного.

 

ZVI

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

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

{quote}{login=Лузер™}{date=29.05.2008 09:21}{thema=}{post}ZVI, простите, но я нашел у Вас ошибку.  
Mid$(v, i, 1) = ds меняет символ только для переменной v  
массив х остается без изменений. Т.е. работает так:  
x = .Value  
.NumberFormat = «General»  
.Value = x  
А «фор ич в ин х» пустая трата времени.  
Попробуйте с    
TestString = «1,5518»  
и    
i = InStr(1, v, «,», 0)  
В результате получаем числа, но такие: 15518. Без разделителя.{/post}{/quote}  
—  
Да, Вы абсолютно правы!  
Действительно, у меня получился частный случай с лишним For Next.  

  Ваша идея с манипуляцией .UseSystemSeparators и .DecimalSeparator замечательная!  
Но только и она пока, к сожалению, является частным случаем, т.к. не работает, если системный разделитель запятая — выдает 15518.  
Возможно, нужно манипулировать системым разделителем вместо Excel-ного.  

  Смогу подключиться к проблеме уже на выходных.  
—  
ZVI

 

Она не совсем не работает. Я эксперементировал с запятой и получил работающий код. На радостях выложил. Продолжил эксперименты с разделителем «%» — не работает. Вернулся к запятой, снова не работает.  
Но работает с любым разделителем, если операцию спец вставки выполнять вручную. Даже записав их макрорекордером, я получаю 15518. Хотя еще один раз у меня сработал код, но отследить и повторить не удалось. :(

 

{quote}{login=Лузер™}{date=30.05.2008 10:24}{thema=}{post}Она не совсем не работает. Я эксперементировал с запятой и получил работающий код. На радостях выложил. Продолжил эксперименты с разделителем «%» — не работает. Вернулся к запятой, снова не работает.  
Но работает с любым разделителем, если операцию спец вставки выполнять вручную. Даже записав их макрорекордером, я получаю 15518. Хотя еще один раз у меня сработал код, но отследить и повторить не удалось. :({/post}{/quote}  

  вот-вот :)  

  но ваш первый код работает(у меня) без проблем.(это с replace и decimalseparator)  

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

  файлов может быть до 1000  
строк в каждом до 20000  

  в конечной таблице строк до 800 000  

  сейчас работаю с 60 000 строк основной таблицы — для этого требуется обработать около 40 файлов — на генерацию таблицы уходит 27сек

 

Если есть возможность занести значения в эксель как текст с точкой (если установленный разделитель запятая то любые цифры разделённые точкой воспринимаются общим форматом как текст)  
для активного листа  
Sub USNumbers()  
  Application.ScreenUpdating = False  
  Application.Calculation = xlCalculationManual  
  Dim cell As Range  
  On Error Resume Next  
  For Each cell In ActiveSheet.Cells.SpecialCells(xlConstants, xlTextValues)  
     On Error Resume Next  
     cell.Value = Val(cell.Value)  
     On Error GoTo 0  
  Next cell  
  Application.Calculation = xlCalculationAutomatic  
  Application.ScreenUpdating = True  
End Sub  

  ‘функция вал работает только с us-строками  
‘aeyrwbz свид, тьфу cdbl работает с региональными стандартами, то бишь запятой

 

ZVI

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

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

{quote}{login=dl}{date=02.06.2008 08:40}{thema=val  и cdbl}{post}Если есть возможность занести значения в эксель как текст с точкой (если установленный разделитель запятая то любые цифры разделённые точкой воспринимаются общим форматом как текст)  
для активного листа  
Sub USNumbers()  
  Application.ScreenUpdating = False  
  Application.Calculation = xlCalculationManual  
  Dim cell As Range  
  On Error Resume Next  
  For Each cell In ActiveSheet.Cells.SpecialCells(xlConstants, xlTextValues)  
     On Error Resume Next  
     cell.Value = Val(cell.Value)  
     On Error GoTo 0  
  Next cell  
  Application.Calculation = xlCalculationAutomatic  
  Application.ScreenUpdating = True  
End Sub  

  ‘функция вал работает только с us-строками  
‘aeyrwbz свид, тьфу cdbl работает с региональными стандартами, то бишь запятой{/post}{/quote}  
—  
Верно, но это в 4 раза медленнее, чем модифицированный Лузером™ вариант 2.  
С учетом уточненой Слэном задачи (наверное, уже и выполненной), эффективнее, пожалуй, было бы считать весь текстовый файл в переменную, произвести в этой переменной замену точки на запятую, и затем с помощью .TextToColumns скопировать в ячейки как числа.  
Или, не мудрствуя, использовать исходный вариант 2 без For Next, так как речь идет о преобразовании точки в запятую, а не наоборот  
—  
ZVI

 

слэн

Гость

#30

05.06.2008 14:51:16

«спешу» предоставить уважаемому сообществу третий способ преобразования, еще более быстрый..  
благодаря предоставленному ZVI тесту, мне не пришлось себя утруждать :)  
см вложение  

  ps мне этот способ не понадобился  — я обошелся вообще без преобразования(вернее оно выполняется встроенными средствами иксель при открытии текстового файла). Надо конечно попробовать упомянутый ZVI способ чтения файла в переменную..

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

  • post_19474.rar (13.8 КБ)

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

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

Содержание

  • Метод 1: использование инструмента “Найти и заменить”
  • Метод 2: функция “ПОДСТАВИТЬ”
  • Метод 3: использование макроса
  • Метод 4: применение Блокнота
  • Метод 5: настройка параметров Эксель
  • Метод 6: системные настройки
  • Заключение

Метод 1: использование инструмента “Найти и заменить”

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

  1. Переходим во вкладку “Главная”, и кликаем по кнопке “Найти и выделить” (значок в виде лупы) в блоке “Редактирование”. Откроется список, где выбираем команду “Заменить”. Или же можно просто нажать комбинацию клавиш Ctrl+H.Запуск инструмента Заменить в Экселе
  2. На экране отобразится окно “Найти и заменить”:
    • в поле для ввода значения напротив пункта “Найти” пишем символ “.” (точка);
    • в поле “Заменить на” пишем знак “,” (запятая);
    • жмем кнопку “Параметры”.Поиск и замена точек на запятые в Эксель
  3. Появятся дополнительные параметры для выполнения поиска и замены. Щелкаем по кнопке “Формат” для параметра “Заменить на”.Детальная настройка поиска и замены точек на запятые в Эксель
  4. В появившемся окне указываем формат корректируемой ячейки (ту, что мы получим в итоге). Согласно нашей задаче выбираем “Числовой” формат, после чего щелкаем OK. При желании, можно задать количество знаков после запятой, а также, разделить группы разрядов путем установки соответствующего флажка.Замена формата на числовой в Excel
  5. В результате мы снова окажемся в окне “Найти и заменить”. Здесь нам обязательно нужно выделить область ячеек, в которых будет осуществляться поиск точек и их дальнейшая замена на запятые. В противном случае операция по замене будет выполнена по всему листу и могут быть затронуты данные, которые не нужно было менять. Выделение диапазона ячеек происходит с помощью зажатой левой кнопки мыши. По готовности нажимаем “Заменить все”.Запуск функции найти и заменить в Excel
  6. Все готово. Операция благополучно завершена, о чем свидетельствует информационное окошко с количеством выполненных замен.Результат работы инструмента Найти и заменить в Эксель
  7. Закрываем все окна (за исключением самого Эксель), после чего можем продолжить работу с преобразованным данными в таблице.Результат замены точек на запятые в Excel

Примечание: чтобы не выбирать диапазон ячеек во время настройки параметров в окне “Найти и заменить”, можно сделать это заранее, т.е. сначала выделить ячейки, и затем запустить соответствующий инструмент через кнопки на ленте программы или с помощью сочетания клавиш Ctrl+H.

Выбор инструмента Заменить в Excel

Метод 2: функция “ПОДСТАВИТЬ”

Давайте теперь рассмотрим функцию “ПОДСТАВИТЬ”, которая также позволяет выполнять замену точек на запятые. Но в отличие от метода, который мы рассмотрели выше, замена значений выполняется не в начальных, а выводится в отдельные ячейки.

  1. Переходим в самую верхнюю ячейку столбца, куда планируем выводить данные, после чего жмем кнопку “Вставить функцию” (fx) слева от строки формул.Вставка функции в ячейку таблицы Эксель
  2. В открывшемся окне Мастера функций выбираем категорию – “Текстовые”, в котором находим оператор “ПОДСТАВИТЬ”, выбираем его и щелкаем OK.Выбор оператора ПОДСТАВИТЬ в Excel
  3. Мы окажемся в окне с аргументами функции, которые нужно заполнить:
    • в значении аргумента “Текст” указываем координаты первой ячейки столбца, в которой нужно заменить точки на запятые. Сделать это можно вручную, прописав адрес с помощью клавиш на клавиатуре. Или можно сначала кликнуть мышью внутри поля для ввода информации, после чего – по нужной ячейке в таблице.
    • в значении аргумента “Стар_текст” пишем символ “.” (точка).
    • для аргумента “Нов_текст” указываем в качестве значения символ “,” (запятая).
    • значение для аргумента “Номер_вхождения” можно не заполнять.
    • по готовности щелкаем OK.Заполнение аргументов функции ПОДСТАВИТЬ в Эксель
  4. Получаем в выбранной ячейке требуемый результат.Результат функции ПОДСТАВИТЬ в ячейке таблицы Excel
  5. Осталось только распространить данную функцию на оставшиеся строки столбца. Делать это вручную, разумеется, не нужно, так как в Эксель есть удобная функция автозаполнения. Для этого наводим курсор на правый нижний угол ячейки с формулой, когда вид указателя сменится на черный плюсик (маркер заполнения), зажав левую кнопку мыши тянем его вниз до самой последней строки, участвующей в преобразовании данных.Растягивание функции на другие ячейки в Эксель
  6. Остается только переместить преобразованные данные в то место таблицы, где они должны быть. Для этого выделяем ячейки столбца с результатами (если после предыдущего действия выделение снято), кликаем по любому месту выделенного диапазона правой кнопкой мыши и выбираем пункт “Копировать” (или нажимаем сочетание клавиш Ctrl+C).Копирование ячеек столбца в Эксель
  7. Затем выделяем аналогичный диапазон ячеек в исходном столбце, данные которого были преобразованы. Кликаем правой кнопкой мыши по выделенной области и в раскрывшемся контекстном меню в вариантах вставки выбираем “Значения”.Вставка скопированных данных в виде значений в Эксель
  8. После вставки скопированных данных рядом с ними появится значок в виде восклицательного знака. Щелкаем на него и в раскрывшемся перечне выбираем “Преобразовать в число”.Преобразование вставленных данных в число в Excel
  9. Все готово, мы получили столбец, в котором все точки заменены на запятые.Замена точек на запятые в столбце таблицы Эксель
  10. Рабочий столбец, используемый для работы с функцией ПОДСТАВИТЬ, теперь не нужен, и его можно удалить через контекстное меню. Для этого щелкаем правой кнопкой мыши по обозначению столбца на горизонтальной панели координат и выбираем в появившемся перечне команду “Удалить”.Удаление столбца в Excel через контекстное меню
  11. Перечисленные выше действия, если требуется, можно выполнить в отношении других колонок исходной таблицы.

Метод 3: использование макроса

Макросы также позволяют заменить точку на запятую. Вот, как это делается:

  1. Сперва нужно убедиться в том, что включена вкладка “Разработчик”, которая по умолчанию в Эксель выключена. Для включения нужной вкладки переходим в меню “Файл”. Переход в меню Файл в Excel
  2. В перечне слева переходим в раздел “Параметры”.Переход в Параметры Excel
  3. В параметрах программы щелкаем по разделу “Настроить ленту”, после чего в правой части окна ставим галочку напротив пункта “Разработчик” и кликаем OK.Включение вкладки Разработчика в параметрах Эксель
  4. Переключаемся во вкладку “Разработчик”, в которой кликаем по кнопке “VisualBasic”.Активация инструмента Visual Basic в Эксель
  5. В редакторе щелкаем по листу, на котором мы хотим произвести замену, в открывшемся окне вставляем код ниже, после чего закрываем редактор:
    Sub Макрос_замены_точки_на_запятую()
    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    End Sub
    Замена точек на запятые через редактор Visual Basic в Эксель
  6. Теперь выделяем диапазон ячеек на листе, где планируем выполнить замену, после чего кликаем по кнопке “Макросы” все в той же вкладке “Разработчик”.Применение макросов в Excel
  7. Откроется окно с перечнем макросов, в котором выбираем “Макрос_замены_точки_на_запятую” и нажимаем “Выполнить”.Выбор макроса для выполнения в Excel
  8. В результате мы получим ячейки с преобразованными данными, в которых точки были заменены на запятые, что нам и требовалось.Результат замены точек на запятые с помощью макросов в Эксель

Метод 4: применение Блокнота

Данный метод реализуется через копирование данных во встроенный в операционную систему Windows редактор Блокнот для последующего редактирования. Порядок действий прдеставлен ниже:

  1. Для начала производим выделение диапазона ячеек, в значениях которых нужно выполнить замену точек на запятые (рассмотрим на примере одного столбца). После этого правой кнопкой мыши щелкаем по любому месту выделенной области и в раскрывшемся меню выбираем команду “Копировать” (или можно использовать сочетание клавиш Ctrl+C).Копирование ячеек столбца в Эксель
  2. Запускаем Блокнот и вставляем скопированную информацию. Для этого щелкаем правой кнопкой мыши и выбираем в раскрывшемся меню команду “Вставить” (или используем комбинацию Ctrl+V).Вставка скопированных данных в Блокнот
  3. В верхней строке меню щелкаем по пункту “Правка”. Откроется перечень, в котором кликаем по команде “Заменить” (или жмем горячие клавиши Ctrl+H).Инструмент Замены в Блокноте
  4. На экране появится небольшое окошко замены:
    • в поле для ввода значения параметра “Что” печатаем символ “.” (точка);
    • в качестве значения для параметра “Чем” ставим символ “,” (запятая);
    • нажимаем “Заменить все”.Замена точек на запятые в Блокноте
  5. Закрываем окно замены. Выделяем преобразованные данные, затем кликаем правой кнопки мыши по ним и выбираем команду “Копировать” в открывшемся контекстном меню (также, можно использовать Ctrl+C).Копирование данных в Блокноте
  6. Снова переходим в Excel. Отмечаем область, куда нужно вставить измененные данные. Затем щелкаем по выделенному диапазону правой кнопкой мыши и выбираем команду “Сохранить только текст” в вариантах вставки (или жмем Ctrl+V).Вставка скопированных данных в виде текста в Excel
  7. Осталось только задать формат ячеек как “Числовой”. Выбрать его можно в блоке инструментов “Число” (вкладка “Главная”), кликнув по текущему формату и выбрав нужный.Изменение формата данных на Числовой в Excel
  8. Поставленная задача успешно выполнена.Столбец с числовыми данными в Эксель

Метод 5: настройка параметров Эксель

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

  1. Заходим в меню “Файл”, где щелкаем по разделу “Параметры”.Параметры в Эксель
  2. В параметрах программы в перечне слева кликаем по разделу “Дополнительно”. В блоке настроек “Параметры правки” убираем флажок напротив опций “Использовать системные разделители”. После этого активируются поля для ввода символов в качестве разделителей. В качестве разделителя целой и дробной части пишем символ “.” (точка) и сохраняем настройки нажатием кнопки OK.Настройка разделителя целой и дробной части в параметрах Эксель
  3. Визуальных изменений в таблице не произойдет. Поэтому движемся дальше. Для этого копируем данные и вставляем их в Блокнот (рассмотрим на примере одного столбца).Числовые данные в Блокноте
  4. Выделяем данные из Блокнота и вставляем обратно в таблице Эксель в том же самое месте, откуда скопировали их. При этом выравнивание данных сменилось с левого края на правый. Это означает то, что теперь программа эти значения воспринимает как числовые.Столбец с числовыми данными в Эксель
  5. Снова заходим в параметры программы (раздел “Дополнительно”), где возвращаем флажок напротив пункта “Использовать системные разделители” на место и нажимаем кнопку OK.Настройка разделителя целой и дробной части в параметрах Excel
  6. Как видим, точки были автоматически заменены программой на запятые. Не забываем сменить формат данных на “Числовой” и можно работать с ними дальше.Столбец с числовыми данными в Эксель c запятой в качестве разделителя

Метод 6: системные настройки

И напоследок, рассмотрим еще один метод, который схож с тем, который описан выше, но предполагает изменение настроек не Эксель, а операционной системы Windows.

  1. Заходим в Панель управления любым удобным способом. Например, это можно сделать через Поиск, набрав нужное название и выбрав найденный вариант.Запуск Панели управления через Поиск в Windows
  2. Настраиваем просмотр в виде мелких или крупных значков, после чего щелкаем по разделу “Региональные стандарты”.Раздел Региональные стандарты в Панели управления Windows
  3. Появится окно настроек региона, в котором, находясь во вкладке “Форматы” щелкаем по кнопке “Дополнительные настройки”.Дополнительные параметры в настройках региональных стандартов в Windows
  4. В появившемся следом окне с настройками формата видим параметр “Разделитель целой и дробной части” и значение, установленной для него. Вместо запятой пишем точку и нажимаем OK.Настройка разделителя целой и дробной части в Windows
  5. Аналогично рассмотренному выше пятому методу, производим копирование данных из Excel в Блокнот и обратно.Выделенный столбец в Эксель с числовыми данными
  6. Возвращаем настройки формата в исходное положение. Данное действие критически важно, так как противном случае возможны ошибки в работе других программ и утилит.Настройка разделителя целой и дробной части в Панели управления Windows
  7. Все точки в столбце, над которым мы работали, автоматически заменились на запятые.Выделенный столбец в Excel с числовыми данными

Заключение

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

Содержание

  1. Изменение параметров Excel
  2. Изменение системных настроек Windows
  3. Как изменить разделитель в Excel 2007
  4. Инструмент «Найти и заменить»
  5. Применение функции
  6. Использование макроса
  7. Правила замены точек и запятых в программе Excel
  8. Как заменить точку с запятой во всем документе Excel
  9. Временно меняем настройки Excel
  10. Временно меняем системные настройки Windows
  11. Использование функции ПОДСТАВИТЬ
  12. Использование Блокнота
  13. Как поменять точки на запятые в Excel в определенном месте
  14. Заключение

Один из самых легких способов доступный любому новичку, да и вообще любому пользователю Excel. Вы заходите в пункт меню «Файл», выбираете «Параметры» и в окне которое открылось, выбираем пункт «Дополнительно», здесь нас интересует пункт «Использовать системные разделители». Вы заходите в пункт меню «Файл», выбираете «Параметры» и в окне которое открылось, выбираем пункт «Дополнительно», здесь нас интересует пункт «Использовать системные разделители». Если галочка на этом пункте уже стоит, то программа будет смотреть на системные настройки, о них мы поговорим чуть ниже. Но если вам надо сейчас изменить настройки, то вы должны убрать галочку с данного пункта и поставить ее на пункт «Разделитель целой и дробной части» и вписываем в разблокированные поля вместо «точки» — «запятую», ну или наоборот.

Замечание! Уже выгруженные в Excel данные не изменяются и не преобразуются в числовое значение, для текущих изменений нужно использовать совсем другие способы, к примеру:

Изменение системных настроек Windows

Этот способ, заменить точки на запятые в Excel, также не является сложным в исполнении и как было сказано выше нужен, если у вас в Excel стоят настройки на систему. Системные изменения нужно внести по следующему адресу «Пуск» — «Панель управления» — «Часы, язык и регион», далее выбираете в разделе «Язык и региональные стандарты» пункт «Изменение форматов даты, времени и чисел», в открывшемся окне выбираем системную вкладку «Форматы» — «Дополнительные настройки», в открывшемся окне «Настройка формата», на вкладке «Числа», в поле «Разделитель целой и дробной части» вам необходимо заменить «точку» на «запятую» либо наоборот и нажать «ОК».


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

Как изменить разделитель в Excel 2007

Нажмите кнопку «Office» и откройте окно параметров Excel.

Выберите «Дополнительно», а в разделе «Параметры правки» введите в поле разделителя целой и дробной части запятую. Изменение вступит в силу как только вы нажмете кнопку «ОК».

Инструмент «Найти и заменить»

Наиболее простой способ выполнение трансформации запятой на точку – это применение инструмента «Найти и заменить». Но, сразу нужно отметить, что для вычислений такой способ не подойдет, так как содержимое ячеек будет преобразовано в текстовый формат.

  1. Производим выделение области на листе, где нужно трансформировать запятые в точки. Выполняем щелчок правой кнопкой мышки. В запустившемся контекстном меню отмечаем пункт «Формат ячеек…». Те пользователи, которые предпочитают пользоваться альтернативными вариантами с применением «горячих клавиш», после выделения могут набрать комбинацию клавиш Ctrl+1.
  2. Производится запуск окна форматирования. Производим передвижение во вкладку «Число». В группе параметров «Числовые форматы» перемещаем выделение в позицию «Текстовый». Для того чтобы сохранить внесенные изменения, щелкаем по кнопке «OK». Формат данных в выбранном диапазоне будет преобразован в текстовый.
  3. Опять выделяем целевой диапазон. Это важный нюанс, ведь без предварительного выделения трансформация будет произведена по всей области листа, а это далеко не всегда нужно. После того, как область выделена, передвигаемся во вкладку «Главная». Щелкаем по кнопке «Найти и выделить», которая размещена в блоке инструментов «Редактирование» на ленте. Затем открывается небольшое меню, в котором следует выбрать пункт «Заменить…».
  4. После этого запускается инструмент «Найти и заменить» во вкладке «Заменить». В поле «Найти» устанавливаем знак «,», а в поле «Заменить на»«.». Щелкаем по кнопке «Заменить все».
  5. Открывается информационное окно, в котором предоставляется отчет о выполненной трансформации. Делаем щелчок по кнопке «OK».

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

Применение функции

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

  1. Выделяем пустую ячейку напротив первой ячейки диапазона с данными, в котором запятые следует трансформировать в точки. Щелкаем по пиктограмме «Вставить функцию», размещенную слева от строки формул.
  2. После этих действий будет запущен Мастер функций. Ищем в категории «Тестовые» или «Полный алфавитный перечень» наименование «ПОДСТАВИТЬ». Выделяем его и щелкаем по кнопке «OK».
  3. Открывается окно аргументов функции. Она имеет три обязательных аргумента «Текст», «Старый текст» и «Новый текст». В поле «Текст» нужно указать адрес ячейки, где размещены данные, которые следует изменить. Для этого устанавливаем курсор в данное поле, а затем щелкаем мышью на листе по первой ячейке изменяемого диапазона. Сразу после этого адрес появится в окне аргументов. В поле «Старый текст» устанавливаем следующий символ – «,». В поле «Новый текст» ставим точку – «.». После того, как данные внесены, щелкаем по кнопке «OK».
  4. Как видим, для первой ячейки преобразование выполнено успешно. Подобную операцию можно провести и для всех других ячеек нужного диапазона. Хорошо, если этот диапазон небольшой. Но что делать, если он состоит из множества ячеек? Ведь на преобразование подобным образом, в таком случае, уйдет огромное количество времени. Но, процедуру можно значительно ускорить, скопировав формулу ПОДСТАВИТЬ с помощью маркера заполнения.

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

  5. Как видим, все содержимое целевого диапазона было преобразовано в данные с точками вместо запятых. Теперь нужно скопировать результат и вставить в исходную область. Выделяем ячейки с формулой. Находясь во вкладке «Главная», щелкаем по кнопке на ленте «Копировать», которая расположена в группе инструментов «Буфер обмена». Можно сделать и проще, а именно после выделения диапазона набрать комбинацию клавиш на клавиатуре Ctrl+1.
  6. Выделяем исходный диапазон. Щелкаем по выделению правой кнопкой мыши. Появляется контекстное меню. В нем выполняем щелчок по пункту «Значения», который расположен в группе «Параметры вставки». Данный пункт обозначен цифрами «123».
  7. После этих действий значения будут вставлены в соответствующий диапазон. При этом запятые будут трансформированы в точки. Чтобы удалить уже не нужную нам область, заполненную формулами, выделяем её и щелкаем правой кнопкой мыши. В появившемся меню выбираем пункт «Очистить содержимое».

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

Использование макроса

Следующий способ трансформации запятых в точки связан с использованием макросов. Но, дело состоит ещё в том, что по умолчанию макросы в Экселе отключены.

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

  1. Перемещаемся во вкладку «Разработчик» и щелкаем по кнопке «Visual Basic», которая размещена в блоке инструментов «Код» на ленте.
  2. Открывается редактор макросов. Производим вставку в него следующего кода:

    Sub Макрос_трансформации_запятых_в_точки()
    Selection.Replace What:=",", Replacement:="."
    End Sub

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

  3. Далее выделяем диапазон, в котором следует произвести трансформацию. Щелкаем по кнопке «Макросы», которая расположена все в той же группе инструментов «Код».
  4. Открывается окно со списком имеющихся в книге макросов. Выбираем тот, который недавно создали через редактор. После того, как выделили строку с его наименованием, щелкаем по кнопке «Выполнить».

Выполняется преобразование. Запятые будут трансформированы в точки.

Правила замены точек и запятых в программе Excel

  1. Если в настройках программы Excel разработчиком в основных настройках точка задана как десятичный разделитель, то изменить ее на запятую можно в стандартной панели установок программы Excel. Открыть ее можно сочетанием клавиш Alt+«Ф».
  2. В появившемся перед вами меню выберите строчку «Дополнительно» и следом «Использовать системные разделители». Далее просто проведите замену и сохраните произведенные изменения. После этого именно запятая будет выступать разделителем десятичных дробей.

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

  1. Если вам необходимо заменить точку запятой только в одной определенной ячейке сделать это лучше вручную. Просто нажмите дважды на ячейку и проведите замену. Убедитесь заранее, что файл открыт для редактирования. Просто удалите точку и поставьте на ее место запятую. После чего закройте ячейку для редактирования.
  2. Для массового замещения запятыми абсолютного количества точек необходимо применить диалоговое окошко поиска и замены. Он расположен в верхнем меню программы справа. Перед вами откроется диалоговое окно, в котором производится автозамена символов.
  3. В поле диалогового окна «Найти» введите точку, а запятую — в поле «Заменить на». Далее нажмите на вариант меню «Заменить все» и программа приступит к выполнению заданной команды. Это может занять некоторое время, если объем данных табличного редактора достаточно велик. Это же относится и к обратным действиям по замене запятой на точку во всем документе. Обратите внимание на тот момент, что будет произведена автозамена абсолютно всех символов в документе, поэтому внимательно отнеситесь к данной операции, для того чтобы ваши данные не были полностью испорчены ошибочными действиями при автозамене.

Временно меняем настройки Excel

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

Для этого нужно открыть «Файл»-«Параметры»-«Дополнительно». В разделе «Параметры правки» следует временно убрать галочку «Использовать системные разделители». А в поле «Разделитель целой и дробной части» следует удалить запятую и ввести точку.

После выполнения вычислений настоятельно рекомендуется вернуть настройки по умолчанию.

Внимание! Данный способ сработает, если сделать все изменения до импорта данных, а не после.

Временно меняем системные настройки Windows

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

Открываем «Пуск»-«Панель управления»-«Языки и региональные стандарты». Нажимаем на кнопку «Дополнительно». В появившимся окне изменяем в первом поле «Разделитель целой и дробной части» – вводим нужное нам значение. Дальше ОК и ОК.

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

Использование функции ПОДСТАВИТЬ

Ещё одним вариантом замены точки на запятую является использование функции ПОДСТАВИТЬ. Правда, при использовании этой функции замена происходит не в исходных ячейках, а отображается в отдельной колонке.

  1. Выделяем ячейку, которая станет самой первой в колонке для вывода измененных данных. Кликаем по кнопке «Вставить функцию», которая располагается слева от места нахождения строки функций.
  2. Запускается Мастер функций. В списке, представленном в открытом окне, ищем функцию ПОДСТАВИТЬ. Выделяем её и жмем на кнопку «OK».
  3. Активируется окно аргументов функции. В поле «Текст» нужно ввести координаты первой ячейки столбца, где располагаются числа с точками. Это можно сделать, просто выделив эту ячейку на листе с помощью мыши. В поле «Стар_текст» вставляем точку (.). В поле «Нов_текст» ставим запятую (,). Поле «Номер_вхождения» заполнять не нужно. Сама функция будет иметь такой шаблон: «=ПОДСТАВИТЬ(адрес_ячейки;».»;»,»)». Жмем на кнопку «OK».
  4. Как видим, в новой ячейке у числа уже вместо точки запятая. Теперь нам нужно сделать подобную операцию для всех других ячеек столбца. Конечно, вводить для каждого числа функцию не нужно, есть намного более быстрый способ выполнить преобразование. Становимся на правый нижний край ячейки, которая содержит преобразованные данные. Появляется маркер заполнения. Удерживая левую кнопку мыши, тянем его вниз до нижней границы области, содержащей преобразуемые данные.
  5. Теперь нам нужно присвоить ячейкам числовой формат. Выделяем всю область преобразованных данных. На ленте во вкладке «Главная» ищем блок инструментов «Число». В выпадающем списке меняем формат на числовой.

На этом преобразование данных закончено.

Использование Блокнота

Следующий способ предполагает копирование данных в стандартный текстовый редактор Windows Блокнот, и изменение их в этой программе.

  1. Выделяем в Excel область ячеек, в которых нужно заменить точку на запятую. Кликаем правой кнопкой мыши. В контекстном меню выбираем пункт «Копировать».
  2. Открываем Блокнот. Делаем клик правой кнопкой мыши, и в появившемся списке кликаем по пункту «Вставить».
  3. Кликаем по пункту меню «Правка». В появившемся списке выбираем пункт «Заменить». Или же, можно просто набрать на клавиатуре комбинацию клавиш Ctrl+H.
  4. Открывается окно поиска и замены. В поле «Что» ставим точку. В поле «Чем» — запятую. Жмем на кнопку «Заменить все».
  5. Выделяем измененные данные в Блокноте. Кликаем правой кнопкой мыши, и в списке выбираем пункт «Копировать». Или жмем на клавиатуре сочетание клавиш Ctrl+C.
  6. Возвращаемся в Эксель. Выделяем диапазон ячеек, где следует заменить значения. Кликаем по нему правой кнопкой. В появившемся меню в разделе «Параметры вставки» кликаем по кнопке «Сохранить только текст». Либо, жмем сочетание клавиш Ctrl+V.
  7. На весь диапазон ячеек устанавливаем числовой формат тем же способом, как делали это ранее.

Как поменять точки на запятые в Excel в определенном месте

Нередки ситуации, когда работая с отчетом Excel, где используются в качестве разделителя, например, запятые, а вам присылают данные с точками и стоит задача поменять запятые на точки или наоборот. Самый простой способ – это выделить все данные с точками, нажать одновременно Ctrl+H (либо необходимо перейти (Excel 2007-2013) во вкладку Главная, раздел Редактирование, выбрать бинокль и в выпадающем меню выбрать пункт Заменить

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

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

Макрос замены точки на запятую в выделенных ячейках

Sub Макрос_замены_точки_на_запятую() Selection.Replace What:=".", Replacement:="," End Sub

Макрос замены запятой на точку в выделенных ячейках

Sub Макрос_замены_запятых_на_точки() Selection.Replace What:=",", Replacement:="." End Sub

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

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

Заключение

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

Источники

  • https://topexcel.ru/5-bistrih-sposobov-kak-zamenit-tochki-na-zapyatye-v-excel/
  • https://myblaze.ru/kak-v-excel-zamenit-tochku-na-zapyatuyu/
  • https://lumpics.ru/how-change-comma-to-dot-in-excel/
  • https://besthard.ru/faq/kak-v-excel-zamenit-tochku-na-zapyatuyu/
  • https://exceltable.com/formatirovanie/zamenit-tochku-na-zapyatuyu
  • https://lumpics.ru/how-replace-dot-to-comma-in-excel/
  • https://sirexcel.ru/priemi-excel/kak-pomenyat-tochki-na-zapyatye-v-excel/
  • https://MicroExcel.ru/zamena-tochki-na-zapyatuyu/

wp2

9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

1

Замена точки на запятую в столбце

26.10.2012, 15:42. Показов 16828. Ответов 18

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

записывался макрос, который во всём столбце заменяет точку на запятую:

Visual Basic
1
2
3
4
Columns("J:J").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

но, при выполнении этого макроса точка заменилась на пробел!

Я решил вот так попробовать

Visual Basic
1
2
3
4
Columns("J:J").Select
Selection.Replace What:=".", Replacement:=Chr(44), LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Но, и это не помогло.

Вручную:

Visual Basic
1
2
3
4
5
6
7
Do While ActiveSheet.Range("A" + CStr(i)).Value = "" 
     s = Trim(ActiveSheet.Range("G" + CStr(i)).Value)
     ActiveSheet.Range("G" + CStr(i)).Value = Replace(s, ".", ",")
     
     DoEvents
     i = i + 1
Loop

или так:

Visual Basic
1
2
3
4
5
6
Do While ActiveSheet.Range("A" + CStr(i)).Value = "" 
     s = Trim(ActiveSheet.Range("G" + CStr(i)).Value)
     ActiveSheet.Range("G" + CStr(i)).Value = Left(s, InStr(s, ".") - 1) + "," + Right(s, Len(s) - InStr(s, "."))
     DoEvents
     i = i + 1
Loop

ничто не помогло!
(хотя, если сделать частично Left(s, InStr(s, «.») — 1) + «,» то видно, что точку находит правильно, и еще после неё добавляет запятую.)

Пробовал в начале проставлять формат:
Columns(«G:G»).NumberFormat = «General»
Или
Columns(«G:G»).NumberFormat = «@»

то же не так.



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 16:15

2

Visual Basic
1
Intersect(Columns("J:J"), ActiveSheet.UsedRange).Replace What:=".", Replacement:=",", LookAt:=xlPart

Никаких пробелов не видел…



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

26.10.2012, 16:19

3

Цитата
Сообщение от wp2
Посмотреть сообщение

Do While ActiveSheet.Range(«A» + CStr(i)).Value = «»

может нужно так:

Visual Basic
1
Do While ActiveSheet.Range("A" + CStr(i)).Value <> ""

Первый код из сообщения #1 у меня заменил точку на запятую.



0



wp2

9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

26.10.2012, 16:33

 [ТС]

4

Цитата
Сообщение от Скрипт
Посмотреть сообщение

нужно:

Visual Basic
1
Do While ActiveSheet.Range("A" + CStr(i)).Value <> ""

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

Добавлено через 9 минут

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Visual Basic
1
Intersect(Columns("J:J"), ActiveSheet.UsedRange).Replace What:=".", Replacement:=",", LookAt:=xlPart

Никаких пробелов не видел…

не помогло



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

26.10.2012, 16:35

5

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



0



9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

26.10.2012, 16:38

 [ТС]

6

небольшая поправка. Там не пробел, а просто разделение из-за формата ячейки (числовой).



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 16:42

7

Т.е. вопрос решён?



0



9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

26.10.2012, 16:55

 [ТС]

8

ну вот, попробуйте запустить макрос:
Ссылка удалена

там надо выбрать «Click here to start download from sendspace»

Добавлено через 22 секунды

Цитата
Сообщение от Hugo121
Посмотреть сообщение

Т.е. вопрос решён?

нет. Там всё равно ж нет запятой.
Чую, там какое-то автоматическое приведение формата.



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 17:25

9

Отработало так:

Visual Basic
1
2
3
4
5
6
Sub tt()
    For Each cc In Intersect(Columns("B:B"), ActiveSheet.UsedRange)
        cc.Value = "'" & cc.Value
        cc.Replace What:=".", Replacement:=",", LookAt:=xlPart
    Next
End Sub

Но так спереди добавляется «‘», пробелы впереди остаются.



1



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

26.10.2012, 17:51

10

wp2, у вас, видимо, какая-то нестандартная ситуация. Нужно заново переделать, я так думаю.



0



9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

26.10.2012, 17:52

 [ТС]

11

ага, рабочий вариант. Спасибо

Интересно, почему в лоб не работает…

Добавлено через 55 секунд

Цитата
Сообщение от Скрипт
Посмотреть сообщение

wp2, у вас, видимо, какая-то нестандартная ситуация. Нужно заново переделать, я так думаю.

да уже не раз переделывалось.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

26.10.2012, 17:53

12

Цитата
Сообщение от wp2
Посмотреть сообщение

да уже не раз переделывалось.

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



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 17:58

13

Просто думаю у wp2 разделителем тысячных стоит пробел — вот Эксель пробел и ставит вместо запятой. А у меня запятая — и я её вижу в ячейке, но её нет в строке формул, т.е. в самом числе (а это уже число, а не строка).

Это если теми первыми кодами делать.



0



9 / 9 / 8

Регистрация: 20.07.2012

Сообщений: 67

26.10.2012, 18:13

 [ТС]

14

Цитата
Сообщение от Скрипт
Посмотреть сообщение

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

документ создается путём открытия текстового файла. Кодировка 866, разделитель «|»

Добавлено через 2 минуты
здесь чуть ниже, кстати, интересная тема высвечивается:
Корректная замена точки на запятую в текстовом файле
только ж я всё равно пересохраняю его в xls



0



SoftIce

es geht mir gut

11264 / 4746 / 1183

Регистрация: 27.07.2011

Сообщений: 11,437

26.10.2012, 18:16

15

Вот так тоже работает

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub oborot()
On Error Resume Next
'
   Dim r As Range
    'Intersect(Columns("B:B"), ActiveSheet.UsedRange).Replace What:=".", Replacement:=",", LookAt:=xlPart
    For Each r In Selection.Cells
 
        r = CDbl(Replace(r, ".", ","))
        
    Next
 
 
End Sub



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

26.10.2012, 18:17

16

wp2, выложите фрагмент этого текстового файла.



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 18:25

17

SoftIce, у меня так не работает, на выходе шестизначные числа.
Думаю тут влияет десятичный разделитель — у меня точка.



0



es geht mir gut

11264 / 4746 / 1183

Регистрация: 27.07.2011

Сообщений: 11,437

26.10.2012, 18:39

18

Странно. У меня работает. Только числа выравниваются вправо.

Выделяешь нужные ячейки — запускаешь макрос.

Вложения

Тип файла: rar mc.rar (8.7 Кб, 47 просмотров)



0



Hugo121

6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

26.10.2012, 21:28

19

Да, проверил на домашней системе, где разделитель запятая — работает код
SoftIce, а мой первый так же выдаёт шестизначные числа, но с видимым пробелом посередине, как у wp2.
Т.е. если нужно получить числа и десятичный разделитель запятая — используйте код SoftIce.
А пропавшие нули в конце можно добавить форматом ячейки.
Если же нужен текст, и разделитель точка, то такой вариант (чуть подправил):

Visual Basic
1
2
3
4
5
6
7
8
Sub tt()
    For Each cc In Intersect(Columns("B:B"), ActiveSheet.UsedRange)
        If Len(Trim(cc.Value)) Then
            cc.Value = "'" & Trim(cc.Value)
            cc.Replace What:=".", Replacement:=",", LookAt:=xlPart
        End If
    Next
End Sub



1



Если вы попали на эту статью, значит тоже столкнулись с проблемой, что русской версии Excel числа можно разделять только запятой. А если к вам перекочевал документ из англоязычной версии или из Google Docs (а у меня еще и через импорты программ), то их числа с точками будут открываться как обычные строки, а все формулы будут поломаны. Ну ничего страшного, в этой статье мы обсудим рабочие варианты как можно правильно массово заменить точку на запятую в Excel. Попробую сделать все как можно проще и без воды. Поехали!

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

Содержание

  1. Способ 1 – Простая замена
  2. Способ 2 – Формула (для продвинутых)
  3. Способ 3 – Макрос (для очень продвинутых)
  4. Способ 4 – Блокнот и CSV
  5. Способ 5 – Меняем настройки
  6. Видео по теме
  7. Задать вопрос автору статьи

Способ 1 – Простая замена

Как заменить точку на запятую в Excel и наоборот

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

  1. Итак, имеем стандартную таблицу, но замечаем в ней, что числа в некотором столбце отображаются как простые строки (если определять на глаз – то правильные числа по умолчанию выравниваются вправо, а вот строки в лево). С такими «числами» в формулах не поработать. Нужно исправлять.

Как заменить точку на запятую в Excel и наоборот

  1. Выделяем эти данные. Делайте это как удобнее вам – выделю целый столбец щелчком по его заголовку (здесь буква «I»). Вы можете просто выделить их мышкой, как и любые другие файлы в Windows. Можно щелкнуть в начале, зажать Shift и щелкнуть по последней ячейке – так будет выделен весь диапазон. А вообще на нашем сайте есть отдельная статья по профессиональному выделению ячеек в Excel. Переходим и читаем. А к этому моменту я буду считать, что вы все успешно выделили.

Как заменить точку на запятую в Excel и наоборот

  1. Полдела сделано, теперь переходим к замене. На первой вкладке «Главная» находим кнопку «Найти и выделить», щелкаем по ней, а в выпадающем списке выбираем «Заменить» (а можно было просто сразу использовать сочетание клавиши Ctrl + H).

Как заменить точку на запятую в Excel и наоборот

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

Как заменить точку на запятую в Excel и наоборот

  1. После успешной замены строки автоматически становятся числами:

Как заменить точку на запятую в Excel и наоборот

А еще обратите в окне замены напротив поля «Заменить на» есть кнопка «Формат». Вот там можно вручную задать выходной формат ячеек, например, числовой, т.к. в некоторых случаях запятая успешно заменяется, но ячейка остается текстовой.

Способ 2 – Формула (для продвинутых)

Способа выше хватит для большинства читателей этой статьи. Но в некоторых случаях нужно провести замену формулой. Минус этого способа – придется перемещать данные в новую ячейку, но на практике это обычно нам и нужно.

Можете пользоваться мастером функций, но я сразу здесь пишу верный вариант (на примере ячейки А2, вы подставляете свои):

=ПОДСТАВИТЬ(A2;”.”;”,”)

Вроде бы все просто – какую ячейку меняем (А2), что в ней меняем (точку), на что меняем (запятая). В формуле есть кавычки, но они необходимы для подставки именно текста. Далее можно спокойно это формулу применить ко всем нужным ячейкам привычным для вас способом. Но у этого варианта есть минус – выходная строка останется строкой, так что не забываем после через формат ячейки поменять ее на число.

Способ 3 – Макрос (для очень продвинутых)

Если вы очень продвинутый и просто искали, какая функция отвечает за замену точки на запятую на уровне языка макросов офиса, привожу пример:

Sub my_replacer()
Selection.Replace What:=”.”, Replacement:=”,”
End Sub

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

Способ 4 – Блокнот и CSV

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

  1. Щелкаю правой кнопкой мыши по файлу CSV, выбираю «Открыть с помощью» и открываю его через «Блокнот» или аналог вроде «NotePad++». Результат уже открытого файла CSV:

Как заменить точку на запятую в Excel и наоборот

  1. Выделяю весь текст (Ctrl + A) и делаю привычную нам замену точки на запятую через пункт «Изменить – Заменить». После замены не забываем сохранить файл.

Как заменить точку на запятую в Excel и наоборот

Способ 5 – Меняем настройки

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

  1. Переходим в «Файл – Параметры».
  2. В открывшихся параметрах слева выбираем «Дополнительно», ищем раздел «Параметры правки». И тут снимаем галочку с «Использовать системные разделители», а в поле «Разделитель целой и дробной части» указываем точку. Пользуемся.

Как заменить точку на запятую в Excel и наоборот

Такое же можно провернуть на уровне самой Windows (в настройках форматов «Язык и региональные стандарты»), но это уж точно выходит за пределы статьи. Надеюсь, то такого никому не захочется идти. Суть метода – делаем в Windows забугорный разделитель, а Excel сам подхватит правильную настройку, тогда и не нужно будет менять точку на запятую.

Видео по теме

Проблема в необходимости замены точек на запятые в Excel присутствует из-за разных правил записи дробных чисел. В англоязычных странах целую часть от дробной отделяют с помощью точки, в то время как в странах СНГ и некоторых других для этого используется запятая. Разработчики предусмотрели этот момент, поэтому в русскоязычной версии программы дробные числа с точкой могут вообще не восприниматься в качестве числового формата. Исправить это можно только выполнив замену точки в дробных на запятую.

Содержание

  1. Как заменить точку на запятую в Excel
  2. Вариант 1: “Найти и заменить”
  3. Вариант 2: Функция “ПОДСТАВИТЬ”
  4. Вариант 3: Применить макрос
  5. Вариант 4: Воспользоваться “Блокнотом”
  6. Вариант 5: изменить настройки Excel
  7. Вариант 6: Изменить системные настройки

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

Вариант 1: “Найти и заменить”

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

Инструкция к данному варианту выглядит следующим образом:

  1. Нужный нам инструмент находится во вкладке “Главная”. В группе инструментов “Редактирование” найдите “Найти и выделить”. При нажатии на него появится контекстное меню, где потребуется выбрать “Заменить”.
  2. В поле “Найти” поставьте значение точки, а в “Заменить” укажите запятую. Также рекомендуется еще внести некоторые дополнительные настройки. Для этого воспользуйтесь кнопкой “Параметры”.
  3. Появятся дополнительные настройки замены. Около поля “Заменить на” воспользуйтесь кнопкой “Формат”, чтобы указать корректный формат для измененных ячеек.
  4. Откроется окошко настройки формата. Там переключитесь во вкладку “Число”. Перед вами появится список числовых форматов. Укажите там вариант “Числовой”. Примечательно, что менять формат необязательно, поэтому в некоторых случаях рассматриваемые шаги можно пропустить.
  5. Вы можете выполнить сразу замену всех найденных точек на запятую, воспользовавшись кнопкой “Заменить все”.
  6. Чтобы избежать замены ненужных компонентов, можно нажать кнопку “Найти далее”. После этого вам будет отображаться в порядке очереди найденные элементы. Если вам требуется заменить показываемый элемент, то жмите кнопку “Заменить”, если замена не требуется, то жмите “Найти далее” для перехода к следующему элементу.

Вариант 2: Функция “ПОДСТАВИТЬ”

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

  1. Выделите первую ячейку той колонки, в которую собираетесь переносить исправленные данные. В строке функций воспользуйтесь кнопкой вставки функции. Оно обозначена в виде букв fx.
  2. В открывшемся окне мастера функций выберите функцию “ПОДСТАВИТЬ”. Для удобства поиска функции поставьте в поле “Категория” значение “Полный алфавитный перечень”. Выделите нужную функцию и нажмите кнопку “Ок”.
  3. Откроется окошко заполнения формы настройки функции. В поле “Текст” введите название ячейки, где расположены элементы для замены. В поле “Стар_текст” поставьте точку. В поле “Нов_текст” поставьте запятую. Нажмите “Ок” для записи функции в строку ввода функций. Она будет в итоге иметь следующий вид: “=ПОДСТАВИТЬ(адрес_ячейки;».»;»,»)”.
  4. В указанной ячейке будет выведен вариант с измененными символами. Вы можете быстро заполнить последующие ячейки с помощью возможности автозаполнения. Выделите ячейку с корректными данными и протяните выделение за правый нижней край для преобразования данных в других ячейках.
  5. Вы получите замену точки на запятую. Теперь останется только скопировать полученный результат и вставить его в ту ячейку, замена из которой производилась.
  6. Дополнительно поставьте числовой формат для ячеек с измененными данными. Это можно сделать во вкладке “Главная” В блоке инструментов “Число” в выпадающем списке установите числовой формат.

Вариант 3: Применить макрос

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

Читайте также:
Делаем поиск в Excel
Функция подбора параметра в программе MS Excel
Что такое абсолютные и относительные ссылки в Excel
Конвертируем таблицу Excel в PDF-файл

Инструкция по работе с ним выглядит следующим образом:

  1. Для начала нужно убедиться, что в вашем Excel включены макросы. По умолчанию они могут быть отключены. Делается в разделе “Разработчика”. Подробно про то, как включить и управлять макросами написано в нашей отдельной статье.
  2. Чтобы добавить макрос к конкретному документу переключитесь во вкладку “Разработчик”.
  3. Там запустите инструмент “Visual Basic”. Он находится в группе инструментов “Код”, которая появится сразу после активации работы с макросами в Excel.
  4. Пропишите код для нашего макроса, который выглядит так:
    Sub Макрос_замены_точки_на_запятую()
    Selection.Replace What:=".", Replacement:=","
    End Sub
  5. Закройте редактор макросов. Данные сохранятся автоматически.
  6. В этой же вкладке “Разработчик” нажмите по кнопке “Макросы”. Предварительно выделите ячейки на листе, которые требуется преобразовать.
  7. В открывшемся окне представлен список макросов. Выбираем из списка “Макрос замены запятых на точки”. Жмем на кнопку “Выполнить”.
  8. Начнется выполнение заданного макроса. После этого в выделенном диапазоне ячеек будет проведена замена данных.

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

Вариант 4: Воспользоваться “Блокнотом”

Этот вариант предполагает задействование стандартного “Блокнота”. В него требуется скопировать данные из столбца, где нужно выполнить замену. Дальнейшие действия будут производится в данной программе. Примечательно, что вместо “Блокнота” можно использовать любой другой текстовый редактор, например, Word и подобные.

  1. В таблице выделите ячейки, в которых вам требуется провести замену. Скопируйте данные из них. Это можно сделать с помощью сочетания клавиш Ctrl+C или кликнув правой кнопкой мыши по выделенным ячейкам и выбрав в контекстном меню вариант “Копировать”.
  2. Теперь откройте “Блокнот” и там воспользуйтесь сочетанием клавиш Ctrl+V для вставки данных из таблицы. Также вы можете просто нажать правой кнопкой мыши и выбрать в контекстном меню вариант “Вставить”.
  3. В верхней части интерфейса “Блокнота” нажмите по кнопке “Правка”. Там найдите и воспользуйтесь пунктом “Заменить”. Также это можно сделать, используя сочетание клавиш Ctrl+H.
  4. Откроется окошко замены символов. В поле “Что” поставьте точку, а в поле “Чем”. Подтвердите замену, нажав кнопку “Заменить все”.
  5. Данные во вставленном столбце будут успешно заменены на те, что вы указали. Выделите их и нажмите правой кнопкой мыши по выделению. В контекстном меню выберите вариант “Копировать” или используйте сочетание клавиш Ctrl+C.
  6. Верните в Excel. Если выделение с того столбца, что вы выбирали ране, было снято, то выделите его снова. Кликните по нему правой кнопкой мыши и выберите в контекстном меню кнопку “Сохранить только текст”. Она расположена в блоке “Параметры вставки”. Имеет вид буквы “А” на планшете.
  7. На весь диапазон ячеек поставьте числовой формат тем же способом, как делали это ранее.

Вариант 5: изменить настройки Excel

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

  1. Откройте раздел “Файл”, нажав на соответствующую кнопку в верхнем меню программы.
  2. В открывшемся окне выберите вариант “Параметры”. Он расположен в левой части окна.
  3. Появится окошко настройки Excel. Там переключитесь в раздел “Дополнительно”.
  4. Нужные нам параметры расположены в самом первом блоке — “Параметры правки”. Там снимите галочку с пункта “Использовать системные разделители”.
  5. В поле “Разделитель целой и дробной части” поставьте точку и нажмите кнопку “Ок”.
  6. Уже введенные данные сами собой не поменяются после применения новых параметров. Их потребуется вписать заново. Чтобы это надолго не растягивать просто скопируйте их и вставьте в любой текстовый редактор, а затем скопируйте оттуда и вставьте обратно в таблицу.
  7. У данных, которые будут вставлены запятая автоматически заменяется на точку.

Рекомендуется после завершения операции поставить настройки обратно.

Вариант 6: Изменить системные настройки

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

  1. Откройте “Панель управления”. В Windows 10 это можно сделать через поисковую строку по системе. Она открывается при нажатии на иконку поиска или при использовании сочетания клавиш Win+S.
  2. Обратите внимание, что напротив строки “Просмотр” должно стоять значение “Категория”.
  3. Выберите категорию “Часы, язык и регион”.
  4. Здесь перейдите в подраздел “Язык и региональные стандарты”.
  5. В открывшемся окне во вкладке “Форматы” жмем на кнопку “Дополнительные настройки”.
  6. Обратите внимание на поле “Разделитель целой и дробной части”. В качестве разделителя выберите символ запятой из выпадающего меню. По умолчанию там будет стоять символ точки. Нажмите “Ок” для применения.
  7. Вставьте данные в столбцы Excel заново чтобы символы заменяются окончательно.
  8. Завершив работу очень желательно вернуть системные настройки в изначальное положение. В противном случае привычные арифметические операции могут выполняться некорректно в других программах.

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

This seems to be a continuation to my answer to your previous question, but if so I think you misunderstood what I meant. I’ve taken your code and amended it with my suggestion, but I’ve not tested it:

Public Sub VirgulaPunct()
Dim oRow As Range
Dim cell As Range
Dim i As Long, j As Long
Dim MyString As String
Dim aux As String

    Application.ScreenUpdating = False

    For i = Selection(Selection.Count).Row To Selection.Cells(1, 1).Row Step -1

        For j = Selection(Selection.Count).Column To Selection.Cells(1, 1).Column Step -1
            MyString = Cells(i, j).Value
            MyString = Replace(MyString, ",", ";+;", 1)
            MyString = Replace(MyString, ".", ",", 1)
            MyString = Replace(MyString, ";+;", ".", 1)
            Cells(i, j).Value = MyString
        Next j
    Next i
    Application.ScreenUpdating = True
End Sub

So as I said in my previous answer, I do 3 calls to Replace, but I do them for the whole string rather than per character in the string.

For future reference, it would probably be better if you updated your original question rather than to create a new one and then you could leave a comment for me under my answer and I’d seen that you have done so.

Понравилась статья? Поделить с друзьями:
  • Макрос в excel таблица в ячейках
  • Макрос для excel добавить кнопку
  • Макрос для excel где хранятся
  • Макрос в excel сумма чисел
  • Макрос для excel выделенный диапазон