[EXCEL]文字列にした「数字」を、また「数値」に戻す方法
【まとめ】
文字列(文字データ)の数字を「数値」に直す方法
1 =文字列のセル*1 とする
2 =VALUE(文字列のセル) とする
3「1」をコピーし、「形式を選択してコピー」で「乗算」を選ぶ。
いずれも、文字列である数字に1を掛けることで数値に戻る。
(参考)
・[Excel]数値を文字列にするTEXT関数(Word差込印刷時にカンマを表示させる用)
・[Excel]数値形式の日付を文字列にする計算式(Wordへの差込印刷用)
【説明】
先日、ちょっとした失敗をしました。
WORDへの差し込み印刷をするため、金額を文字列にしました(数値のままだとカンマが表示されないため)。
文字列にした金額から合計を出そうとしたのですが、合計は出ませんでした。
見た目が数字でも、文字列(文字データ)の場合は、合計は出ないのです。
私は金額が文字列になっていることを忘れていました(文字列にした後右寄せしていたことも理由の一つです)。
「数字」は、0,1,2,3~9 で表されますが、
「数値」は、計算できる値のことです(見た目が漢数字でも、数値であれば計算できます。)
「文字列」は、見た目は数字でも文字として扱われているものであり、計算には使えません。
ちょっと混乱するかもしれませんが、EXCELにおいて、数字と数値の違いは、理解しておく必要があります。
下の表で、B列は数値です(通常右寄せ)。
当然、合計が出せます。
B6を選択して、Alt + Shift + = で、一瞬でSUM関数の計算式が入ります。
しかし、C6セルでやっても反応しません。
何も出ません。
隣のB6セルをコピー(Ctrl+R)しても、「0」と入るだけ。
C列のデータは、B列の数値をTEXT関数を使って文字列に直したものです(だから左揃えになっています)。
文字列なので合計は出せません。
合計を出そうとしても出なくて、おかしいな、と思ったのですが、文字列にしてあったことを忘れていたのです。
数値として金額が入っている元の表は取ってありましたが、呼び出すのは面倒なので、文字列になっている金額を数値に変えました。
文字列の数字を数値に直す方法は2つ
1 文字列になっている数字に1を掛ける。
上の表のD列のように、文字列であるC列の数字に1を掛けると数値に戻り、合計も出せます。
1以外でも、四則演算のいずれかを行えば、数(値としての計算結果が出ます。SUM関数で範囲指定しても合計は出ませんが、文字列となっている数字を「+」でつないでいくと、合計が出ます。ここら辺はちょっと不思議というか、だから文字列であることを意識しない場合も出てくる?)
2 VALUE関数を使う
文字列のセルを、VALUE関数で括ると、数値に戻ります。VALUEは「価値」ですが、「値」に戻すという関数です。
※この項目は追加しました。
VALUE関数を使いことについては、sele_chanさんからコメントいただきました。
コメントいただいたように、上の1のように「1」を掛けるよりも、VLAUE関数の方が分かりやすいかと思います。
上の1だと「なぜ1を掛けているのか?」という人もいるでしょうから。
その点、VALUE関数を使っていれば、関数の意味が明らかなので、理解しやすいと思います。
私は普段使わない関数でしたので、ご指摘いただき、ありがとうございました。
3「形式を選択して貼り付け」で「乗数」を選ぶ
上の1・2だと、計算結果を表示するセルが必要になります。
文字列となっている「数字」を、セルを変えずにそのまま「数値」に直したい場合は・・・
① どこかのセルに1を入れる(ここではE1セル)
② 「1」をコピー(Ctrl + C )する
③ 数値に直したいデータを範囲選択する
④ 「形式を選択して貼り付け」(Alt ⇒ E ⇒ S)を開く
⑤ 右下の「乗算」にチェックを入れる。
⑥ 「OK」押下
以上です。
乗算とは掛け算のこと。
範囲選択したセルのデータ(文字列である数字)に、コピーした「1」を掛ける、ということなので、やっていることは上の1と同じになります。
ただし、同一セル内で完了する、という点が違います。
なぜ「形式を選択して貼り付け」でこれができるのか、ちょっとピンときませんが(私には)、そういうものだと、と受け止めるしかないでしょう。
以上、自分の失敗が他山の石になれば幸いですが、私の記憶定着にするため、記事にしてみた次第です。
(参考)
・[Excel]数値を文字列にするTEXT関数(Word差込印刷時にカンマを表示させる用)
・[Excel]数値形式の日付を文字列にする計算式(Wordへの差込印刷用)
(作業 1日 1h)