計算結果などの「数値データ」を文章内に挿入したいときは、そのデータを文字列として扱う必要がある。そこで今回は「数値」を「文字列」に変換する方法を紹介していこう。最も簡単な方法は文字列演算子「&」で文字列と数値を結合する方法だ。また、表示形式を指定して文字列に変換できる「関数TEXT」の使い方も覚えておくとよい。

文字列と数値を「&」(文字列演算子、アンド)で連結

Excelは、各セルのデータを「文字列」または「数値」として扱う仕組みになっている。通常、「News」や「ニュース」などの文字は「文字列」のデータ、「123」や「2023/7/31」といった数値・日付・時刻は「数値」のデータとして扱われる。

今回は、こういった「文字列」と「数値」のデータ型を変換する方法、ならびに「関数TEXT」と「関数VALUE」の使い方を紹介していこう。

  • 「数値データ」と「文字列データ」の型変換(関数TEXT、関数VALUE)

まずは、「数値」を「文字列」として扱う方法を紹介する。Excelには、文字列と文字列を結合する「&」(アンド)という演算子が用意されている。この「&」を使って文字列と数値を結合すると、「数値」→「文字列」の型変換が自動的に行われ、結合したデータが「文字列」として扱われる仕様になっている。

具体的な例を紹介しておこう。以下の図は、「F16のセル参照」の前後に「&」で文字列を結合する、という処理を行った場合の例だ。F16セルに記録されているのは数値データであり、その前後に文字列データを結合する、という処理になる。

  • 「&」(アンド)を使った文字列の結合

この結果は、以下の図のようになる。F16セルの数値データ(132418)がそのまま文字列に変換され、前後の文字列と結合される、という結果になる。

  • 文字列として結合されたデータ

この際に注意すべきポイントは「表示形式は引き継がれない」ということだ。F16セルに記録されているデータは、あくまで「132418」という数値データでしかなく、そこに「通貨」の表示形式を指定することで「\132,418」という表示が実現されている。

F16のセル参照により取得されるのは「132418」の数値データだけで、その表示形式は引き継がれない。よって、これを「&」で結合しても「\132,418」という表示にはなならい。「132418」の数値データが、そのまま文字列に自動変換されることになる。

とはいえ、「\132,418」のように表示形式を含めた形で「数値」を「文字列」に変換したい場合もあるだろう。このような場合に活用できるのが「関数TEXT」だ。

関数TEXTを使った表示形式の指定

それでは、関数TEXTの使い方を紹介していこう。関数TXETの第1引数には「変換前の数値データ」をセル参照などで指定する。続いて、第2引数に「表示形式」を指定する。なお、表示形式を指定するコードは、「"」(ダブルクォーテーション)で囲んで記述する必要がある。

◆関数TEXTの書式
 =TEXT(数値, "表示形式")

第2引数の省略は不可となっているため、関数TEXTを使用するには「表示形式をコードで指定する方法」を学んでおく必要がある。よく分からない方は「Excel 表示形式 コード」などのキーワードでネット検索すると、コードの記述方法を紹介しているページを見つけられるだろう。

簡単な例をいくつか紹介しておこう。数値データを「そのままの形」で文字列に変換したい場合は、表示形式コードを"#"と記述すればよい。

  • 関数TEXTの入力

  • 文字列に変換されたデータ

3桁ごとにカンマで区切った形式にしたいときは「,」を追加して、"#,#"のように表示形式コードを指定する。また、先頭に「\」の記号を追加したいときは"#,#"のように表示形式コードを指定する。そのほか、yyyyやm、dなどのコードを使って日付の表示形式を指定することも可能となっている。

  • 第2引数を使った表示形式の指定例

より具体的な関数TEXTの使用例を紹介していこう。以下の図は、冒頭で示した例に関数TEXTを追加したものだ。第2引数(表示形式)に"#,#"を指定しているため、「\」(円記号)と「,」(桁区切り)を追加した形で、F16セルの数値データが文字列データに変換される。

  • 「\」(円記号)と「,」(桁区切り)を追加する場合

  • 文字列に変換されたデータ

このように関数TEXTを使うと、表示形式を指定した形で「数値」を「文字列」に変換することが可能となる。

関数TEXTの中で計算を行う場合

他のセルにある数値をそのまま表示するだけでは面白みに欠けるので、関数TEXTの中で計算を行った例も紹介していこう。

以下に示した受注伝票は「合計」などの金額が税込金額で表示されている。このままでは「消費税(10%)はいくらか?」を一目で把握することができない。

そこで「合計」の金額に10/110を掛け算して消費税相当額を求めてみよう。これを数式で示すと「F16*10/110」となる。この計算結果を文章中に表示したい場合は、「&」と「関数TEXT」を使って以下のように式を記述すればよい。

  • 関数TEXTの中で「消費税相当額」(×10/110)を計算した例

関数TEXTの第2引数(表示形式)に"#,#"が指定されているため、「\」(円記号)と「,」(桁区切り)を追加した形で、計算結果(数値)が文字列に変換される。その結果、関数TEXTの部分は「\12,038」という文字列として結合が行われる。

  • 計算結果を文字列として表示した例

次の例は、商品の発送日を文章で示す場合だ。注文日(F6セル)の2日後に商品を発送する場合、発送日の日付は「F6+2」で計算できる。この計算結果を文章中に表示したい場合は、「&」と「関数TEXT」を使って以下のように式を記述すればよい。

  • 関数TEXTの中で「2日後の日付」を計算した例

今回の例では、関数TEXTの第2引数(表示形式)に"yyyy年m月d日"が指定されているため、関数TEXTの部分は「2023年7月27日」という文字列になる。これが前後の文字列と結合されて、以下のような表示を実現することが可能となる。

  • 計算結果(日付)を文字列として表示した例

もちろん、営業日ベースで発送日を示すことも可能だ。この場合は、第13回の連載で紹介した関数WORKDAYを併用して、「TEXT(WORKDAY(F6,2),"yyyy年m月d日")」のように関数TEXTを記述すればよい。

このように関数TEXTを使うと、さまざま計算結果を「文章」として表示することが可能となる。伝票などの書類をExcelで作成するときに活用できるので、覚えておくと役に立つだろう。

文字列データを数値データに変換する関数VALUE

これまでに解説してきた内容とは逆に、「文字列」を「数値」に変換する関数も用意されている。この場合は「関数VALUE」を使用する。引数は1つだけで、カッコ内に「文字列データ」を指定すると、そのデータを「数値データ」に変換する、という機能が備えられている。

  • 関数VALUEの入力

  • 数値に変換されたデータ

そのほか、「全角の数字」を数値データに変換する、「日付や時刻」を「シリアル値」に変換する、といった場合にも関数VALUEが活用できる。

  • さまざまな文字列データを数値データに変換した例

ただし、あらゆるデータを「数値データ」に変換できる訳ではない。変換可能なのは「数値」や「日時」として扱える文字に限定される。「500個」のように単位を付けたデータを「500」の数値データに変換する、などの機能は用意されていない。数値データに変換できないときは「#VALUE!」のエラーが表示される仕様になっている。

なお、Excel単体で使用しているときは、「関数VALUEを使う機会は滅多にない」というのが実情である。というのも、Excelに入力したデータは、自動的に「最適な型」に変換される仕組みになっているからだ。

たとえば、数値を全角文字で入力して「Enter」キーを押すと、自動的に半角文字に変換されて「数値データ」として扱われる。日付や時刻を入力した場合も、たいていの場合、「日時データ」(数値データ)として正しく自動認識される。

関数VALUEによる型変換が必要になるのは、

・「文字列」の表示形式を指定したセルに数値や日時を入力した場合
・外部から取り込んだデータが数値や日付として自動認識されなかった場合

といった2つのケースが大半を占めると思われる。それ以外の普通に入力したデータは、たいていの場合、正しく「数値データ」として認識される。

「文字列」→「数値」の型変換は、エラーインジケーターで実行することも可能だ。この場合は、そのセルを選択し、「!」のアイコンから「数値に変換する」を選択すればよい。

  • エラーインジケーターを利用した数値データへの変換

こちらの方が手軽であるし、わざわざ関数VALUEを使って別のセルに「数値データ」として記録する方が手間のかかる作業になってしまうケースが多い。よって、少し特殊な状況でない限り、関数VALUEを使用する機会は滅多にない、と言えるだろう。