Excelで数値が文字列として保存されることがあります。
数値が文字列として保存されていると、できない計算があったり、並べ替え順序がおかしくなったり予期せぬことが起こります。
数値が文字列として保存される原因としては
- 数値の頭に'(シングルクォーテーション)が含まれている
- セルの書式設定で表示形式が「文字列」になっている
- 他のアプリケーションから数字なのに文字列のデータをコピー&ペーストした
などが考えられるかと思います。
あえて文字列としている場合は問題ありませんが、通常は数値として保存しておいたほうが色々と便利です。
文字列を数値に変換する
文字列を数値に変換する方法を紹介します。
表示形式を数値に変更する
数値に変換したいセルを選択または範囲選択します。
「ホーム」タブの「数値」にあるドロップダウンリストから[数値]を選択します。
これでセルの表示形式は数値となりましたが、実は中のデータは数値となっていません。
そのセルを編集モードに切り替えることで初めて数値に切り替わります。
変換するセルが少ない場合はこの方法で問題ありませんが、数が多い場合1つ1つ編集するのは時間がかかりすぎます。
一括変換するには
エラーチェック機能で数値を変換する
エラーチェック機能が有効になっていると、セルの左上に緑色の三角形(エラーインジケーター)が表示されていると思います。
エラーインジケーターが表示されている場合は、簡単に数値に変換できます。
数値に変換したいセルを選択します。
すべて同じエラーであれば範囲選択でも問題ありません。
一括で変換したい場合は対象を範囲選択します。
選んだセルの隣に表示されているエラーボタンをクリックし[数値に変換する]を選択します。
これで、文字列として保存されている数字を数値として保存できます。
「形式を選択して貼り付け」で数値に変換する
指定したそれぞれのセルを1で乗算して、文字列形式を数値形式に変換します
セルの内容を1で乗算するので、結果は同じように見えますが、数値に置き換えられます。
まず、任意のセルを選択し「ホーム」タブの「数値」にあるドロップダウンリストが「標準」もしくは「数値」となっていることを確認します。
そのセルに「1」を入力します。
「1」と入力されたセルを[Ctrl]+[C]でコピーします。
文字列として保存されている数値に変換したいセルを選択します。
一括で変換したい場合は変換対象のセルを範囲選択します。
「ホーム」タブにある「クリップボード」内の「貼り付け」の下にある矢印をクリックし[形式を選択して貼り付け]をクリックします。
「演算」欄の[乗算]を選択し[OK]をクリックします。
正常に変換された後は「1」を入力したセルは削除して問題ありません。
区切り位置指定ウィザードを使用する
1列ずつしか変換できませんが、区切り位置指定ウィザードで数値に変換することも可能です。
通常はCSVやタブ区切りのファイルをインポートする場合によく使うウィザードですが、数値変換にも用いることができます。
数値に変換したい列、またはセルを範囲選択(この場合も1列のみ)します。
「ホーム」タブの「数値」にあるドロップダウンリストが「標準」もしくは「数値」となっていることを確認します。
「データ」タブの[区切り位置]をクリックします。
区切り位置指定ウィザードが表示されるため[完了]をクリックします。
VALUE関数を使用する
別セルにVALUE関数を使用して、数値に変換してから元の場所に貼り付けるという方法もあります。
=VALUE(文字列)
文字列部分に"(ダブルクォーテーション)で囲った文字列を入れるか、数値に変換したい文字列が入力されているセルを指定します。
セルを対象にしている場合、オートフィルで一括変換可能です。
元のセルに値を戻したい場合は、表示形式が「標準」か「数値」となっていることを確認してから、コピーして「形式を選択して貼り付け」の「値」で貼り付けてください。
数値を文字列に変換する
ここからは、あえて数字を文字列に変換したい場合の方法です。
文字列に変換する場合は数値に変換するよりも選択肢は少ないです。
表示形式を文字列に変更する
数値を文字列に変換したい時とは逆にセルを選択後、「ホーム」タブの「数値」にあるドロップダウンリストから[文字列]を選択します。
これでセルの表示形式は文字列となりましたが、同じように中のデータは文字列となっておらず数値のままです。
そのセルを編集モードに切り替えることで初めて文字列に切り替わります。
数が多い場合に1つ1つ編集する必要があるのは数値変換と同様です。
一括変換するには
区切り位置指定ウィザードを使用する
数値変換時と同様に区切り位置指定ウィザードを用いることで
通常はCSVやタブ区切りのファイルをインポートする場合によく使うウィザードですが、数値変換にも用いることができます。
文字列に変換したい列、またはセルを範囲選択(この場合も1列のみ)します。
文字列に変換したい場合は「ホーム」タブの「数値」にあるドロップダウンリストの確認は必要ありません。
「データ」タブの[区切り位置]をクリックします。
区切り位置指定ウィザードが表示されるため[カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ]を選択し[次へ]をクリックします。
「区切り文字」のチェックをすべて外して[次へ]をクリックします。
「列のデータ形式」で[文字列]を選択し[完了]をクリックします。
これで数値が文字列に変換されます。
TEXT関数を使用する
VALUE関数の時と同様に、別セルにTEXT関数を使用して、文字列に変換してから元の場所に貼り付けるという方法もあります。
=TEXT(値,表示形式)
表示形式は、セルの書式設定のユーザー定義の表示形式と同じ書式で指定します。
セルの値を単純に文字列に変換するだけであれば"@"で問題ありません。
元のセルに戻したい場合は、表示形式が「文字列」となっていることを確認してから、コピーして「形式を選択して貼り付け」の「値」で貼り付けてください。
コメント