Excel の機能をきちんと使おうと思ったとき、本来は事前にしっかりとしっておかなければならないのがセルに格納する値の種類です。

ヘルプなどを見ると「数値」をどうこうしなさい、とか「文字列」ならどうなります、という記載があることがあります。
たとえば、見た目が数字や日付っぽく見えていても実は文字列だから計算がうまくいかないこともあるし、数字が文字列とともに表示されているけれど、実態は数値だけがきちんとセルに格納されているから処理がきちんと行えていることもあります。

セルに入力された数値や文字のことを「値」や「データ」といい、値には数値日付文字列の 3 種類があります。
(これ以外に「論理値」や「エラー値」もありますが、たいていは数式の結果として得られる値なので直接セルに入れることはあまりないのでとりあえずおいておきます。)

■3 つの値の種類
数値      :計算にできる値。“計算” がわかりにくいのなら、足し算できる値かどうかを考えたらよい。
日付      :シリアル値という数値に日付っぽい見た目を適用している値。計算することができるため年齢などを求めることが可能。
文字列   :計算できない値。足し算できない。「1と2」は足し算できるけれど「石田」と「かのこ」は足し算できない。

数値と文字列

セルに格納された値の種類を Excel が自動的に判別し、計算対象とできるかどうかなどが判定されます。
このとき、Excel は表計算ソフトなので “数値” を優先する、と考えたほうがよいでしょう。
既定のセル入力された "数字" をExcel が "数値" と見なすかどうかで、格納される値の種類が変わります。
たとえば、セルに「1000」のように数字だけを入力すると、この値は "数値" と見なされますが、「1000円」のように 1 文字でも文字も含めてセルに入力すると "文字列" と見なされます。
セルの値が数値なら計算できますが、文字列の場合はエラーになったり計算に含まれなかったりします。
数値は右揃え、文字列は左揃えが既定ではありますが、書式設定によってどうとでもなってしまうので、セルに格納されている実際の値は、数式バーで確認するのも 1 つの方法です。

●セル B1 が数値の場合


●セル B1 が文字列の場合


●セル B1 の数値に表示形式を適用した場合
数値を格納したいけど「1,000人」と表示したいのなら、「1000」という数値を格納し、そのセルの表示形式で数値と共に “人” という文字が表示されるように設定します。




●計算結果の違い

Excel のヘルプをみると、

「=A1+B1+C1 のような数式のとき、参照先のセルに数値以外 (テキスト) の値がある場合、数式が破損し、#VALUE! エラーが返される場合があります。SUM はテキスト値を無視して、数値だけを合計します。」

という記載があります。

ここに書いてある「テキスト値」は「文字列」ということです。
破損というのは言い過ぎな気がしますが、ようは、同じ足し算をするという処理でも四則演算を使うときと関数を使ったときで結果に違いがでる、ということです。


多くの計算で使用される SUM 関数ではエラーにはならず文字列を除外した計算結果が表示されるため、間違いに気づかずにそのままにしてしまうことがある、という落とし穴があります。チェックする方法はいくつもありますが、話がごちゃごちゃになっていきそうなのでここでは書きません。
大切なのは、我々ユーザーが “数値” として扱いたいかなんてどうでもよくて、Excel が数値とみなして扱うかどうかが重要ということです。

日付

Excel では、"シリアル値" という日付や時刻を表す数値を使って、日数や時間の計算を可能にしています。
Windows 版の Excel では、1900年1月1日をシリアル値「1」 として、経過日数をプラスしていきます。「1900年1月2日」は 1日経過しているため、シリアル値で表すと「2」です。そこから何万日も経過した「2020年8月10日」のシリアル値は「44053」です。

Excel で “日付” といっている値は、「シリアル値+に表示形式 (見た目)」からできている値です。
シリアル値に表示形式を適用することで、「8月10日」や「2020/8/10」、「令和2年8月10日」のように表示できます。

ユーザーは、日付を入力するときに、わざわざシリアル値を入力して表示形式を設定することはありません。
[標準]の表示形式のセルに、「8/10」や「2020/8/10」などのように、Excel が日付と認識できるように値を入力すれば、自動的にシリアル値を取得して日付の表示形式を適用して表示してくれます。
シリアル値が数式バーにあってもなんのことかわからないので、数式バーには「西暦/月/日」で表示されます。


●日付の入力のしかたと表示形式
日付を入力するときに、日本語入力をオフにして日付と認識できる数字 (例:2020/8/10) を「/」 (半角スラッシュ) でつないで入力して確定すると、日付であると認識されて値が格納されます。

このとき、西暦を含めずに月と日を表す数字のみを「/」で区切って (例:8/10) 入力すると、「この人、西暦は表示したくないのね」という感じで、西暦を表示しない表示形式が適用されます。そしてこのときに指定される西暦は、入力を行っている当日の西暦年です。(下図は、2019年に操作している図です。)

セルには「8月10日」と表示されますが、セルをアクティブにして、数式バーで確認すると西暦年も確認できます。

日付の計算

うるう年などもあり、Excel の日付の複雑な計算は容易ではありません。
ただ、シリアル値という実態の数値を使って計算ができる、ということを知り、問題のない程度の処理であれば計算で対応ができることは知っておいて損はないです。

たとえば、下図のセル B1 には「2019/8/1」 (シリアル値だと 43678) が格納されているとき、その値にプラス 1 すると、翌日の日付を表示できます。


また、DATEDIF 関数などを使うと、年齢や契約年数、勤続年数などを求めることもできます。
日付は広義では数値、といえるでしょう。


我々ユーザーではなく、Excel が日付だと認識できることが重要です。たとえば、日付を「20190810」のように表現したいことがありますが、この数字をそのままセルに格納してしまうと、これは、「二千十九万 八百十」(20,190,810) という (シリアル) 値として処理してしまうので、計算をするととんでもない結果になり、DATEDIF 関数の結果はエラーになります。
(日付を 20190810 と表示したい!なら、それも表示形式で対応します。) 


いまさらといえばいまさらなのですが、ほかの関数の記事を書こうと思って結局ここまで戻ってきてしまいました。 普段から Excel で扱っている値の種類は意識しておくことをおすすめします。  

石田 かのこ

「できる Word思い通り 全部入り。 イライラ解消! わかればスッキリ!」(石田 かのこ著)が、2020年3月6日に株式会社インプレスより発売!

ちょこテクの雰囲気をベースに、Word を使うために大切なポイントをまとめました。
購入できる各社のサイトにサンプルページもありますので是非ご覧ください。

■Impress https://book.impress.co.jp/books/1119101114
■Amazon https://www.amazon.co.jp/dp/429500846X/