インポートされた情報を数値に変換する(Microsoft Excel)
ギャレットは、テキストデータを数値データにすばやく変換する方法があるかどうか尋ねました。彼は、コンマ(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の古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkインポートされた情報を数値に変換する。