ギャレットは、テキストデータを数値データにすばやく変換する方法があるかどうか尋ねました。彼は、コンマ(1,256)の代わりに千の位(1 256)のスペースを使用するテキストファイルをインポートしています。

この問題に取り組むにはいくつかの方法があります。 1つ目は、問題の原因を理解することです。テキストファイルは、おそらくメートル法に準拠しているシステムで作成されています。一部の国では、メートル法に従って、カンマの代わりに千単位の区切り文字にスペースを使用しています。したがって、Excelを起動してインポートを実行する前に、Windowsで地域の設定を変更すると、ファイルをExcelに正しくインポートできます。コントロールパネルを使用して、地域の設定を変更できます。

システムの地域設定を変更したくない場合は、他の方法をとることができます。 Excelが情報をインポートした後、数値を含むセルの範囲を選択し、検索と置換を行うだけです。単一のスペースを検索し、それを何も置き換えていません。これによりスペースが完全になくなり、Excelはセルの内容を数値として扱います。

必要に応じて、数式を使用してインポートされたデータを変更することもできます。たとえば、インポートされた数値(スペースを含む)がセルA3にある場合、次の数式を使用してスペースを取り除くことができます。

=1*SUBSTITUTE(A3," ","")

最初の引用符のセットの間にはスペースがあり、2番目の引用符のセットの間には何もないことに注意してください。

変換するデータがかなりある場合、または「数値のみ」のセルにテキストが散在している場合は、マクロを使用して変換を行うことを決定できます。次のマクロは、呼び出す前に行った選択に対して機能します。また、スペースを削除した後、セルに数値が含まれていることを確認します。そうでない場合、変換は行われません。

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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(12058)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。