Excelでうっかりミス!IF関数が原因でSUMによる合計ができないトラブル

MMDにて3DCGによる多彩な動画が作れる事に魅入られ、「カイト伝」をはじめとするMMDアニメーションを制作中。
2018、バーチャルYoutuberにも手を出す。

この記事は2017年8月19日に書かれたものです。
現在は内容が古い可能性もありますのでご注意ください。

今日は、Microsoftの表計算ソフト「Excel(エクセル)」を使用していた時、簡単なミスで数十分悩んでしまったという出来事があったので、それについて書こうと思います。

その出来事とは、「足し算を使えば計算されるけど、SUMを使うと計算されない(0ゼロ)になる」という現象です。

計算方法が「手動」になっている

「計算ができない!」の代表的な例としては、計算方法が「手動」になっているというのがあります。

これは、メニューの「ファイルオプション数式」で、計算方法の設定で「手動」が選択されていると、単純に数式を入れただけでは計算されないというものです(保存などをすれば計算される)。

この場合、当然「自動」を選択すれば解決します。

しかし今回はこのケースには当てはまりませんでした。

 

SUMで合計ができない!

今回のトラブルは「IF関数」を使っていた時に起きました。

例えば「日勤」であれば「日」、「夜勤」であれば「夜」、「年休」であれば「1」と入力して、年休の数をカウントする式を作ったとします。
※ポイントは、IFで答えを返す際に「文字」と「数字」が混在するということですね。

はじめに作った式(ミスをした式)はこちらです。

=IF(A1=”日勤”,”日”,IF(A1=”夜勤”,”夜”,IF(A1=”年休”,”1″,)))

これを表の全てのセルに設定し、「年休合計」で年休の数をカウントします。

表示は「年休」なら「1」、「日勤」なら「日」となっていますが、C2のSUM関数では「0(ゼロ)」になっています。
本来であれば「1」にならなければいけません。

気づく人は「こんなミスするなよw」って笑っていると思います。

さっそく結論を言うと、

=IF(A1=”日勤”,”日”,IF(A1=”夜勤”,”夜”,IF(A1=”年休”,“1”,)))

この1の部分を「“1”」とダブルクォーテーションで囲っていることで、数字ではなく文字として認識しているためです。

なので正しくは

=IF(A1=”日勤”,”日”,IF(A1=”夜勤”,”夜”,IF(A1=”年休”,1,)))

と入力すれば、きちんと数字として認識してくれるので、SUMによる合計が可能となります。

今回ハマったのは、誤った式でも下図のように足し算を使えば計算できてしまう点でした。

基本的なことですが、同じことで悩んでいる人がいるかもと思い、記事にしてみました!