Гаррет спросил, есть ли способ быстро преобразовать текстовые данные в числовые. Он импортирует текстовый файл, в котором вместо запятой (1256) используются пробелы в разрядах тысяч (1 256).
Есть несколько способов решения этой проблемы. Во-первых, понять источник проблемы. Текстовый файл, вероятно, создан в системе, соответствующей метрическому стандарту. В некоторых странах, следуя метрическому стандарту, вместо запятой используется пробел для разделителя тысяч. Таким образом, вы можете правильно импортировать файл в Excel, если вы измените свои региональные настройки в Windows перед запуском Excel и выполнением импорта. Вы можете изменить региональные настройки с помощью апплета «Региональные параметры» на панели управления.
Если вы не хотите изменять региональные настройки в своей системе, вы можете воспользоваться другими подходами. После того, как Excel импортирует информацию, вы можете выбрать диапазон ячеек, содержащих числа, и просто выполнить поиск и заменить. Вы ищете одно место и ничего не заменяете. Это полностью устраняет пространство, и Excel будет рассматривать содержимое ячейки как число.
При желании вы также можете использовать формулу для изменения импортированных данных. Например, если импортированный номер (содержащий пробел) находится в ячейке A3, вы можете использовать эту формулу для удаления пробела:
= 1 * SUBSTITUTE (A3, «», «»)
Обратите внимание, что между первым набором кавычек есть пробел и ничего между вторым набором кавычек.
Если у вас есть довольно много данных для преобразования, или если у вас есть текст, перемежающийся с ячейками «только числа», тогда вы можете решить использовать макрос для выполнения преобразования. Следующий макрос работает с выделением, которое вы делаете перед его вызовом. Он также проверяет, что ячейка – после удаления пробелов – содержит числовое значение. В противном случае преобразование не выполняется.
Sub ClearSpacesIfNumeric () Dim c As Range ‘Ячейка исследуется Dim tmpText As String’ Содержимое ячейки без пробелов Dim i As Integer ‘Простой счетчик Для Каждый c In Selection tmpText = «» ‘Initialize’ Проверить каждый символ, чтобы увидеть, является ли он пробелом ‘Если это не так, добавьте его в tmpText For i = 1 To Len (c.Text) If Mid (c.Text, i , 1) «» Then tmpText = tmpText & Mid (c.Text, i, 1) End If Next i ‘tmpText теперь является содержимым ячейки без пробелов’ Если tmpText является числом, присвойте его значение ‘текущей ячейке If IsNumeric (tmpText) Then c.Value = tmpText End If Next cEnd Sub
Источник: