Excel 文字列 数値 変換

Excel 文字列 数値 変換 アイキャッチ画像 データ整理・分析
  1. Excelで文字列を数値に、数値を文字列に変換する方法
    1. 文字列と数値、Excelがどう判断しているのか
    2. 文字列を数値に変換する基本的な方法
      1. 方法1:書式設定を変更する
      2. 方法2:区切り位置指定ウィザードを使う
      3. 方法3:VALUE関数を使う
    3. 数値を文字列に変換する基本的な方法
      1. 方法1:書式設定を変更する
      2. 方法2:TEXT関数を使う
      3. 方法3:&演算子を使う
    4. Excelで文字列と数値を変換する、実用的な例
      1. 例1:顧客IDのゼロ埋め
      2. 例2:請求書の金額計算
      3. 例3:在庫管理システムへのデータ連携
    5. さらに応用!文字列と数値を組み合わせた高度なテクニック
      1. テクニック1:条件付き書式で文字列と数値を区別する
      2. テクニック2:MID関数とVALUE関数で文字列の一部を数値に変換する
      3. テクニック3:SUMIF関数で文字列と数値を条件に集計する
    6. Excelで文字列と数値を変換する際によくあるエラーと対処法
      1. エラー1:#VALUE!エラー
      2. エラー2:計算結果が正しくない
      3. エラー3:日付が正しく表示されない
    7. Excelで文字列と数値を変換する、他の関数・機能との比較
      1. TEXTJOIN関数との比較
      2. CONCATENATE関数との比較
      3. CLEAN関数との比較
    8. 業務効率化のためのヒント:ショートカットキーと自動化
      1. 便利なショートカットキー
      2. VBAによる自動化
    9. 競合製品との違い:Googleスプレッドシートとの比較
    10. バージョン別の対応:Excel 2016/2019/365 での違い
    11. 補足FAQ:文字列と数値の変換に関するよくある質問
      1. Q1:Excelで数値を入力しても、左寄せになってしまうのはなぜですか?
      2. Q2:Excelで日付を入力しても、シリアル値が表示されるのはなぜですか?
      3. Q3:Excelで計算式を入力しても、計算結果が表示されず、数式がそのまま表示されるのはなぜですか?
      4. Q4:ExcelでCSVファイルをインポートすると、数値が文字列として認識されてしまいます。どうすればいいですか?
      5. Q5:Excelで小数点以下の桁数を表示したいのですが、どうすればいいですか?
    12. 明日からの実務に取り入れる3ステップ
    13. 関連記事

Excelで文字列を数値に、数値を文字列に変換する方法

Excelを使っていて、「あれ?この数字、計算に使えないぞ?」とか「この文字、関数でうまく処理できない…」なんて経験、ありませんか?それは、Excelがセルに入力されたデータを「文字列」として認識しているか、「数値」として認識しているかが原因かもしれません。今回は、Excelで文字列と数値を相互に変換する方法を、実務経験に基づいてわかりやすく解説します。

文字列と数値、Excelがどう判断しているのか

Excelは、セルに入力されたデータを見て、自動的に「これは数値だな」「これは文字列だな」と判断します。基本的には、数字だけで構成されていれば数値、文字が含まれていれば文字列と判断します。しかし、見た目が数字でも、書式設定や入力方法によっては文字列として扱われてしまうことがあるんです。これが、計算がうまくいかない原因の一つ。

例えば、経理部で請求書のデータを扱う際、金額が文字列として入力されていると、SUM関数で合計を計算しても「0」になってしまう、なんてことが起こり得ます。筆者の経験では、CSVファイルからデータをインポートした際に、数字が全て文字列として認識されてしまうケースをよく見かけます。こうなると、一つ一つ手作業で修正するのは大変ですよね。

文字列を数値に変換する基本的な方法

Excelで文字列として認識されている数値を、数値に変換する方法はいくつかあります。ここでは、代表的な方法を3つご紹介します。

方法1:書式設定を変更する

一番簡単なのは、セルの書式設定を変更する方法です。見た目は数字なのに計算できない場合、まずこれを試してみましょう。

  1. 数値に変換したいセル範囲を選択します。
  2. 「ホーム」タブの「数値」グループにある「表示形式」ドロップダウンリストをクリックします。
  3. 「数値」または「標準」を選択します。
Excel 文字列 数値 変換 - 表示形式を数値に変更する手順
表示形式を数値に変更する手順

これで、Excelがセルの中身を数値として認識してくれるはずです。ただし、この方法で変換できるのは、本当に数字だけで構成されている文字列だけです。例えば、「1,000」のようにカンマが含まれている場合は、次の方法を試してみましょう。

方法2:区切り位置指定ウィザードを使う

カンマやスペースなど、数値以外の文字が含まれている場合は、「区切り位置指定ウィザード」を使うと便利です。

  1. 数値に変換したいセル範囲を選択します。
  2. 「データ」タブの「データツール」グループにある「区切り位置」をクリックします。
  3. 「区切り位置指定ウィザード」が表示されます。「カンマやタブなどの区切り文字によってフィールドごとに区切られている」を選択し、「次へ」をクリックします。
  4. 区切り文字として「その他」にチェックを入れ、入力欄に不要な文字(カンマなど)を入力します。「次へ」をクリックします。
  5. 「列のデータ形式」で「標準」を選択し、「完了」をクリックします。
Excel 文字列 数値 変換 - 区切り位置指定ウィザードでカンマを取り除く手順
区切り位置指定ウィザードでカンマを取り除く手順

この方法を使うと、カンマやスペースなどの不要な文字を取り除き、数値を数値として認識させることができます。経理部の月次締めで、会計システムから出力したデータにカンマが含まれていて困った、という経験がある方もいるのではないでしょうか。

方法3:VALUE関数を使う

関数を使って文字列を数値に変換する方法もあります。VALUE関数は、文字列を数値に変換する専用の関数です。

=VALUE(A1)

上記の数式は、セルA1に入力されている文字列を数値に変換します。VALUE関数を使うメリットは、数式の中で直接変換できること。例えば、VLOOKUP関数と組み合わせて、検索値を数値に変換しながら検索する、といった使い方ができます。

ポイント: VALUE関数は、変換できない文字列(例えば、完全に文字で構成された文字列)を引数に指定すると、#VALUE!エラーを返します。エラー処理も考慮して数式を組むと、より安定したシートを作ることができます。

数値を文字列に変換する基本的な方法

逆に、数値を文字列に変換したい場合もあります。例えば、商品コードが数値として入力されている場合、先頭に「A」を付けて「A1234」のように文字列として表示したい、といったケースです。

方法1:書式設定を変更する

数値を文字列として表示する最も簡単な方法は、セルの書式設定を変更することです。

  1. 文字列に変換したいセル範囲を選択します。
  2. 「ホーム」タブの「数値」グループにある「表示形式」ドロップダウンリストをクリックします。
  3. 「文字列」を選択します。
Excel 文字列 数値 変換 - 表示形式を文字列に変更する手順
表示形式を文字列に変更する手順

ただし、この方法で変換した場合、見た目は文字列になりますが、Excel内部では数値として扱われることがあります。完全に文字列として扱いたい場合は、次の方法を試してみましょう。

方法2:TEXT関数を使う

TEXT関数は、数値を指定した書式で文字列に変換する関数です。例えば、日付を「YYYY年MM月DD日」形式で表示したり、数値を「#,##0」形式で表示したりすることができます。

=TEXT(A1,"0")

上記の数式は、セルA1に入力されている数値を、小数点以下のない整数として文字列に変換します。TEXT関数の第二引数には、様々な書式を指定することができます。例えば、以下のような書式が使えます。

  • “#,##0″:3桁ごとにカンマを挿入した整数
  • “#,##0.00″:3桁ごとにカンマを挿入し、小数点以下2桁まで表示
  • “YYYY/MM/DD”:日付をYYYY/MM/DD形式で表示
  • “0000”:4桁のゼロ埋め

TEXT関数を使うと、数値の表示形式を細かく制御することができます。営業部の売上報告書で、数値を特定の形式で表示する必要がある場合などに役立ちます。

方法3:&演算子を使う

&演算子は、文字列を連結する演算子です。数値と空の文字列を連結することで、数値を文字列に変換することができます。

=A1&""

上記の数式は、セルA1に入力されている数値と空の文字列を連結し、結果を文字列として返します。この方法は、数式が短くシンプルになるため、よく使われます。

Excelで文字列と数値を変換する、実用的な例

ここからは、具体的な業務シナリオを想定して、文字列と数値の変換方法を解説します。

例1:顧客IDのゼロ埋め

ある小売業の顧客管理システムでは、顧客IDが数値として管理されています。しかし、DMを発送する際、顧客IDを「C0001」「C0002」のように、先頭に「C」を付け、4桁のゼロ埋めされた文字列にする必要があります。このような場合、TEXT関数と&演算子を組み合わせると、簡単に変換できます。

="C"&TEXT(A1,"0000")

上記の数式は、セルA1に入力されている顧客ID(数値)を、4桁のゼロ埋めされた文字列に変換し、先頭に「C」を付けます。この数式を顧客IDの列全体に適用すれば、DM発送用のデータが完成します。

Excel 文字列 数値 変換 - 顧客IDのゼロ埋め変換例
顧客IDのゼロ埋め変換例

例2:請求書の金額計算

ある中小企業の経理部では、請求書の金額を計算する際、単価と数量が別のセルに入力されています。しかし、数量が文字列として入力されているため、単価と数量を掛け算しても正しい金額が表示されません。このような場合、VALUE関数を使うと、数量を数値に変換して計算できます。

=A1*VALUE(B1)

上記の数式は、セルA1に入力されている単価と、セルB1に入力されている数量(文字列)を掛け算します。VALUE関数によって、数量が数値に変換されるため、正しい金額が表示されます。経理の現場では、この設定を忘れて集計がずれるケースをよく見かけます。注意しましょう。

例3:在庫管理システムへのデータ連携

ある製造業の営業部では、Excelで作成した売上データを、基幹システムの在庫管理システムに連携する必要があります。しかし、在庫管理システムでは、商品コードが文字列として管理されているため、Excelの売上データの商品コード(数値)を文字列に変換する必要があります。このような場合、TEXT関数を使うと、商品コードを文字列に変換できます。

=TEXT(A1,"@")

上記の数式は、セルA1に入力されている商品コード(数値)を、文字列に変換します。TEXT関数の第二引数に”@”を指定すると、数値をそのまま文字列として表示できます。この数式を商品コードの列全体に適用すれば、在庫管理システムに連携できるデータが完成します。

注意点: 在庫管理システムによっては、商品コードの形式が厳密に決まっている場合があります。TEXT関数で変換する際、形式が合っているか確認するようにしましょう。

さらに応用!文字列と数値を組み合わせた高度なテクニック

Excelでは、文字列と数値を組み合わせることで、さらに高度な処理を行うことができます。

テクニック1:条件付き書式で文字列と数値を区別する

条件付き書式を使うと、セルに入力されているデータが文字列か数値かによって、セルの色やフォントを変更することができます。例えば、数値のセルを緑色、文字列のセルを赤色にすると、一目で区別できるようになります。

  1. 条件付き書式を設定したいセル範囲を選択します。
  2. 「ホーム」タブの「スタイル」グループにある「条件付き書式」をクリックします。
  3. 「新しいルール」を選択します。
  4. 「数式を使用して、書式設定するセルを決定」を選択します。
  5. 以下の数式を入力します。

=ISTEXT(A1) (文字列の場合)

=ISNUMBER(A1) (数値の場合)

  1. 「書式」ボタンをクリックし、セルの色やフォントを設定します。
  2. 「OK」をクリックします。
Excel 文字列 数値 変換 - 条件付き書式で文字列と数値を区別する設定画面
条件付き書式で文字列と数値を区別する設定画面

この方法を使うと、大量のデータの中から、文字列として認識されている数値を簡単に見つけ出すことができます。

テクニック2:MID関数とVALUE関数で文字列の一部を数値に変換する

MID関数は、文字列の中から指定した文字数分の文字列を抽出する関数です。例えば、「A1234」という文字列から、「1234」の部分だけを抽出することができます。このMID関数とVALUE関数を組み合わせると、文字列の一部を数値に変換することができます。

=VALUE(MID(A1,2,4))

上記の数式は、セルA1に入力されている文字列の2文字目から4文字分の文字列を抽出し、数値に変換します。このテクニックは、商品コードや顧客IDなど、特定の形式で管理されている文字列から、必要な情報だけを数値として取り出したい場合に役立ちます。

テクニック3:SUMIF関数で文字列と数値を条件に集計する

SUMIF関数は、指定した条件に合うセルに対応する値を合計する関数です。SUMIF関数の条件として、文字列や数値を指定することができます。例えば、部署名が「営業部」の人の売上だけを合計したり、売上が100万円以上の人の売上だけを合計したりすることができます。

=SUMIF(A1:A10,"営業部",B1:B10)

上記の数式は、セルA1からA10の範囲で「営業部」という文字列と一致するセルに対応する、セルB1からB10の範囲の値を合計します。このテクニックは、売上分析や顧客分析など、様々な集計業務に役立ちます。

Excelで文字列と数値を変換する際によくあるエラーと対処法

Excelで文字列と数値を変換する際、いくつか注意すべき点があります。ここでは、よくあるエラーとその対処法をご紹介します。

エラー1:#VALUE!エラー

VALUE関数を使って文字列を数値に変換しようとした際に、#VALUE!エラーが表示されることがあります。これは、VALUE関数が数値に変換できない文字列を引数に指定された場合に発生します。例えば、「ABC」という文字列をVALUE関数で変換しようとすると、#VALUE!エラーが表示されます。

対処法:IFERROR関数を使ってエラーを回避する

IFERROR関数は、数式がエラーを返した場合に、指定した値を返す関数です。IFERROR関数を使うと、VALUE関数が#VALUE!エラーを返した場合に、別の値を返すように設定できます。

=IFERROR(VALUE(A1),0)

上記の数式は、セルA1に入力されている文字列をVALUE関数で数値に変換しようとします。もし、VALUE関数が#VALUE!エラーを返した場合、0を返します。このように、IFERROR関数を使うと、エラーを回避し、安定した数式を作ることができます。

エラー2:計算結果が正しくない

見た目は数値なのに、計算結果が正しくない場合があります。これは、セルが文字列として認識されていることが原因です。例えば、セルに「1000」と入力されているのに、SUM関数で合計を計算しても「0」になる、といったケースです。

対処法:書式設定を確認する

まずは、セルの書式設定を確認しましょう。「ホーム」タブの「数値」グループにある「表示形式」ドロップダウンリストを確認し、「数値」または「標準」が選択されていることを確認します。もし、「文字列」が選択されている場合は、「数値」または「標準」に変更してください。

また、数値の先頭にスペースが入っている場合も、文字列として認識されてしまうことがあります。TRIM関数を使って、文字列の先頭と末尾のスペースを削除すると、数値として認識されるようになります。

エラー3:日付が正しく表示されない

日付を数値に変換したり、数値を日付に変換したりすると、日付が正しく表示されない場合があります。これは、Excelが日付をシリアル値という数値で管理していることが原因です。例えば、「2023/10/27」という日付は、Excel内部では「45220」という数値で管理されています。

対処法:書式設定を日付形式にする

日付が正しく表示されない場合は、セルの書式設定を日付形式に変更しましょう。「ホーム」タブの「数値」グループにある「表示形式」ドロップダウンリストをクリックし、「日付」を選択します。日付の表示形式は、様々な種類がありますので、好みの形式を選択してください。

Excel 文字列 数値 変換 - 日付のシリアル値と表示形式の関係
日付のシリアル値と表示形式の関係

Excelで文字列と数値を変換する、他の関数・機能との比較

Excelには、文字列と数値を変換する以外にも、様々な関数や機能があります。ここでは、代表的な関数や機能と比較しながら、それぞれの使い分けについて解説します。

TEXTJOIN関数との比較

TEXTJOIN関数は、複数の文字列を連結する関数です。TEXTJOIN関数とTEXT関数を組み合わせると、数値を特定の書式で文字列に変換しながら連結することができます。例えば、商品名、単価、数量を連結して、請求書の明細を作成することができます。

=TEXTJOIN(" ",TRUE,A1,TEXT(B1,"#,##0"),TEXT(C1,"0"))

上記の数式は、セルA1に入力されている商品名、セルB1に入力されている単価(数値)、セルC1に入力されている数量(数値)を、スペースで区切って連結します。TEXT関数によって、単価は3桁ごとにカンマが挿入され、数量は小数点以下のない整数として表示されます。TEXTJOIN関数を使うと、複雑な文字列の連結も簡単に行うことができます。

CONCATENATE関数との比較

CONCATENATE関数も、複数の文字列を連結する関数です。CONCATENATE関数は、TEXTJOIN関数よりも古い関数ですが、基本的な使い方は同じです。CONCATENATE関数とTEXT関数を組み合わせても、数値を特定の書式で文字列に変換しながら連結することができます。

=CONCATENATE(A1," ",TEXT(B1,"#,##0")," ",TEXT(C1,"0"))

上記の数式は、セルA1に入力されている商品名、セルB1に入力されている単価(数値)、セルC1に入力されている数量(数値)を、スペースで区切って連結します。TEXT関数によって、単価は3桁ごとにカンマが挿入され、数量は小数点以下のない整数として表示されます。CONCATENATE関数は、TEXTJOIN関数よりも引数の数が少ないため、数式が少し長くなることがあります。

CLEAN関数との比較

CLEAN関数は、文字列から印刷できない文字を削除する関数です。CLEAN関数は、TEXT関数やVALUE関数と組み合わせて使うことで、より正確な文字列と数値の変換を行うことができます。例えば、Webサイトからコピーしたデータには、印刷できない文字が含まれていることがあります。このような場合、CLEAN関数で不要な文字を削除してから、TEXT関数やVALUE関数を使うと、正しい結果を得ることができます。

業務効率化のためのヒント:ショートカットキーと自動化

Excelの操作を効率化するためには、ショートカットキーを積極的に活用しましょう。また、VBA(Visual Basic for Applications)を使って、文字列と数値の変換を自動化することも可能です。

便利なショートカットキー

  • Ctrl + 1:セルの書式設定ダイアログを表示
  • Alt + H + F + N:セルの表示形式を「数値」に変更
  • Alt + H + F + T:セルの表示形式を「文字列」に変更
  • Ctrl + Shift + ~:セルの表示形式を「標準」に変更

これらのショートカットキーを覚えることで、マウスを使わずに、キーボードだけでセルの書式設定を変更することができます。筆者の経験では、Ctrl + 1を覚えておくだけでも、作業効率が大幅に向上します。

VBAによる自動化

VBAを使うと、文字列と数値の変換を自動化することができます。例えば、特定のフォルダにある全てのExcelファイルの、特定シートの、特定範囲のセルを、数値に変換する、といった処理を自動化することができます。VBAのコードは、以下のようになります。


Sub ConvertToNumber()
  Dim ws As Worksheet
  Dim rng As Range

  ' 処理対象のシートを指定
  Set ws = ThisWorkbook.Sheets("Sheet1")

  ' 処理対象のセル範囲を指定
  Set rng = ws.Range("A1:B10")

  ' セル範囲の値を数値に変換
  For Each cell In rng
    If IsNumeric(cell.Value) Then
      cell.Value = CDbl(cell.Value)
    End If
  Next cell

  MsgBox "変換完了"
End Sub

上記のVBAコードは、同じブックの”Sheet1″シートのA1からB10の範囲にあるセルの値を、数値に変換します。CDbl関数は、文字列を倍精度浮動小数点数に変換する関数です。VBAを使うと、複雑な処理も自動化することができます。総務部で毎月発生する、従業員の勤怠データの変換作業などに活用できます。

プロのコツ: VBAのコードを書く際は、エラー処理を必ず記述するようにしましょう。エラー処理を記述しておくと、予期せぬエラーが発生した場合でも、プログラムが停止することなく、処理を継続することができます。

競合製品との違い:Googleスプレッドシートとの比較

Excelと並んでよく使われる表計算ソフトとして、Googleスプレッドシートがあります。Googleスプレッドシートでも、文字列と数値の変換を行うことができますが、Excelとは少し異なる点があります。

Googleスプレッドシートでは、セルの書式設定を変更する際に、「表示形式」ではなく「書式」というメニューを使います。また、TEXT関数やVALUE関数の使い方は、Excelとほぼ同じですが、一部の書式指定が異なる場合があります。例えば、日付の書式指定は、Excelでは”YYYY/MM/DD”のように指定しますが、Googleスプレッドシートでは”yyyy/MM/dd”のように指定します。

また、Googleスプレッドシートでは、Excelのような「区切り位置指定ウィザード」はありません。代わりに、「データを分割」という機能を使って、文字列を分割することができます。データの分割機能は、Excelの区切り位置指定ウィザードとほぼ同じように使うことができます。

筆者の経験では、Googleスプレッドシートは、複数人で共同作業を行う際に便利です。しかし、Excelに比べて、関数や機能が少ないため、複雑な処理を行う場合は、Excelの方が適しているでしょう。

バージョン別の対応:Excel 2016/2019/365 での違い

Excelには、様々なバージョンがあります。Excel 2016、Excel 2019、Microsoft 365など、バージョンによって、使える関数や機能が異なる場合があります。文字列と数値の変換に関しても、一部の関数や機能が、特定のバージョンでしか使えない場合があります。

例えば、TEXTJOIN関数は、Excel 2019以降のバージョンでしか使えません。Excel 2016以前のバージョンでは、CONCATENATE関数を使う必要があります。また、FILTER関数やUNIQUE関数など、比較的新しい関数は、Microsoft 365でのみ利用可能です。

Excelのバージョンによって、使える関数や機能が異なることを覚えておきましょう。社内研修で教えていると、受講者の方が使っているExcelのバージョンが古く、最新の関数が使えなくて困る、というケースをよく見かけます。事前に、受講者の方のExcelのバージョンを確認しておくことが大切です。

ポイント: Microsoft 365は、常に最新の機能が使えるというメリットがあります。しかし、月額料金が発生するため、費用対効果を考慮して導入を検討する必要があります。

補足FAQ:文字列と数値の変換に関するよくある質問

ここでは、文字列と数値の変換に関するよくある質問とその回答をご紹介します。

Q1:Excelで数値を入力しても、左寄せになってしまうのはなぜですか?

A1:Excelでは、文字列は左寄せ、数値は右寄せで表示されます。数値が左寄せになる場合、セルが文字列として認識されている可能性があります。セルの書式設定を確認し、「数値」または「標準」に変更してください。

Q2:Excelで日付を入力しても、シリアル値が表示されるのはなぜですか?

A2:Excelでは、日付はシリアル値という数値で管理されています。日付がシリアル値で表示される場合、セルの書式設定が「標準」になっている可能性があります。セルの書式設定を「日付」に変更してください。

Q3:Excelで計算式を入力しても、計算結果が表示されず、数式がそのまま表示されるのはなぜですか?

A3:計算式が文字列として認識されている可能性があります。数式を入力する際に、先頭に「’」(シングルクォーテーション)を付けてしまうと、数式は文字列として認識されます。「’」を削除して、数式を再入力してください。

Q4:ExcelでCSVファイルをインポートすると、数値が文字列として認識されてしまいます。どうすればいいですか?

A4:CSVファイルをインポートする際に、「区切り位置指定ウィザード」を使って、数値の形式を指定することができます。区切り位置指定ウィザードの3番目の画面で、「列のデータ形式」を「標準」または「数値」に設定してください。

Q5:Excelで小数点以下の桁数を表示したいのですが、どうすればいいですか?

A5:セルの書式設定を変更することで、小数点以下の桁数を表示することができます。「ホーム」タブの「数値」グループにある「小数点以下の表示桁数を増やす」「小数点以下の表示桁数を減らす」ボタンをクリックするか、セルの書式設定ダイアログで、小数点以下の桁数を指定してください。

明日からの実務に取り入れる3ステップ

今回の記事では、Excelで文字列と数値を変換する方法について、様々な角度から解説しました。最後に、明日からの実務に取り入れるための3つのステップをご紹介します。

  1. まずは、セルの書式設定を確認する習慣をつけましょう。数値が文字列として認識されていないか、日付がシリアル値で表示されていないか、常に意識するようにしましょう。
  2. 次に、TEXT関数とVALUE関数の使い方をマスターしましょう。これらの関数を使いこなせるようになると、文字列と数値の変換に関する様々な問題を解決することができます。
  3. 最後に、VBAによる自動化を検討してみましょう。VBAを使いこなせるようになると、定型的な作業を自動化し、大幅な業務効率化を実現することができます。

これらのステップを実践することで、Excelのスキルを向上させ、より効率的な業務遂行を目指しましょう。基本を押さえれば、応用は自然と広がる。

コメント

タイトルとURLをコピーしました