Преобразование импортированной информации в числовые значения (Microsoft Excel)
Гаррет спросил, есть ли способ быстро преобразовать текстовые данные в числовые. Он импортирует текстовый файл, в котором вместо запятой (1256) используются пробелы в разряде тысяч (1 256).
Есть несколько способов подойти к этой проблеме. Первое — понять источник проблемы. Текстовый файл, вероятно, создан в системе, соответствующей метрическому стандарту. Некоторые страны, следуя метрическому стандарту, используют пробел для разделителя тысяч вместо запятой. Таким образом, вы можете правильно импортировать файл в Excel, если вы измените свои региональные настройки в Windows перед запуском Excel и выполнением импорта. Вы можете изменить региональные настройки с помощью апплета «Региональные параметры» на панели управления.
Если вы не хотите изменять региональные настройки в своей системе, вы можете воспользоваться другими подходами. После того, как Excel импортирует информацию, вы можете выбрать диапазон ячеек, содержащих числа, и просто выполнить поиск и заменить. Вы ищете одно место и ничего не заменяете. Это полностью устраняет пространство, и Excel будет рассматривать содержимое ячейки как число.
При желании вы также можете использовать формулу для изменения импортированных данных. Например, если импортированное число (содержащее пробел) находится в ячейке A3, вы можете использовать эту формулу для удаления пробела:
=1*SUBSTITUTE(A3," ","")
Обратите внимание, что между первым набором кавычек есть пробел и ничего между вторым набором кавычек.
Если у вас есть довольно много данных для преобразования или если у вас есть текст, перемежающийся с ячейками «только числа», вы можете решить использовать макрос для выполнения преобразования. Следующий макрос работает с выделением, которое вы делаете перед его вызовом. Он также проверяет, что ячейка — после удаления пробелов — содержит числовое значение. Если этого не произойдет, преобразование не будет выполнено.
Sub ClearSpacesIfNumeric() Dim c As Range 'Cell under examination Dim tmpText As String 'Cell contents without spaces Dim i As Integer 'Simple counter For Each c In Selection tmpText = "" 'Initialize 'Check each character to see if it's a space 'If it isn't, add it to 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 is now the cell contents without spaces 'If tmpText is a number, assign its value to 'the current cell If IsNumeric(tmpText) Then c.Value = tmpText End If Next c End Sub
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (2248) относится к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Converting_Imported_Information_to_Numeric_Values [Преобразование импортированной информации в числовые значения]
.