セル番地+セル番地で出しますか?
ちょっと前に「足し算にエラーが出る!!」と相談を受けて説明したのですが、意外と知らない人が多いようなので、書いてみます。
どう違うの?
この場合、結果はどちらも30です。
ではこちらは?
2行目は、文字が入っているため、#VALUE!になります。
※#VALUEについては コチラ
人間だったら、数字に文字を足すなんてできないのはわかっているから文字を無視して10という答えを出せますが、パソコンは勝手に気の利かせてくれるなんてしてくれません。(されたら困る)
ワイ、無理ぽ( ゚д゚)と言われちゃいます。
では、なぜSUM関数の場合、#VALUE!にならず30が返るのでしょうか?
SUM関数でエラーが出ない理由
SUM関数の
参照先のセルに数値以外 (テキスト) の値がある場合、数式が破損し、#VALUE! エラーが返される場合があります。 SUM はテキスト値を無視して、数値だけを合計します。
と書いてあります。
そう、SUM関数は気の利く子なんです!!
SUM関数は、セルの値をチェックして、数字だけを拾って合計します。
セル番地+セル番地は単純な四則演算のみで、セルの値のチェックまではしてくれません。
さらに言うと、Excelはセル参照は遅いという弱点があります。
セル番地+セル番地だと、いちいちどのセルにどんな値が入っているかを見にいきます。
対してSUM関数の引数は配列です。
(配列とは:超ざっくり言うと、内部メモリに保持した値。内部メモリから値を取得するので、セル参照より処理が速い)
画像のようなちょっとしたものだったら全然わかりませんが、何万行もあるデータだと再計算の処理時間が体感できるくらい変わることもあります。
で、どっちがいいの?
どちらも正解です。
例えば、システムから落としてきたようなデータ等絶対に数字!というデータだったらパフォーマンス優先でSUM関数がオススメです。
ですが、人間が手入力しているデータ等は、気を付けていても文字が入ってしまうこともあります。
その場合、SUM関数だとエラーが出ないので、正しく入力できていないことに気づけなかったり。
あえてエラーを出すほうが良いときもあったりします。
この特性を知っておけば、使い分けができますね♪
これはどのバージョンでも共通です。(今のところ)
へなちょこが扱うデータはこーゆーのが多いです。
B列がブランクだと入力モレなのか本当にゼロなのかがわからないので、「無し」と入力してもらっています。
お金に関わることだから、後で入力モレが発覚すると困るんです。
最終的にはC列の合計を集計するので、セル番地+セル番地だと「無し」の場合、C列は#VALUE!になってしまうので集計されなくなってしまいます。
「無し」の場合でも合計の値がほしいので、SUM関数を使っています。
※サンプルなので2列しかありませんが、実際のデータは列数も行数も多いので、目視とか無理
小技
1.離れたセルをSUMしたかったら
=SUM(A1,C1)
というように、セル番地をカンマで区切ればおk。
2.SUM関数を挿入するショートカットキー
セルを選択した状態で(セル内にカーソルがあっちゃだめ)
[Shift]+[Alt]+[=] ←同時に押す
自動的に=SUM()が挿入され、隣接する連続した範囲が引数に入ります♪
データが飛び飛びだと自分の希望の範囲じゃなかったりしますが、自動的に入力フォーカスがセル範囲になるので、そのままドラッグで範囲選択したり、手入力すれば早いです。
SUM関数ってよくスキルチェックで判断材料に使われることが多いので、初心者向けな関数だと思われがちですが、実はとっても優秀なんです。
合計を出すだけなら、IF関数をネストしまくってエラー回避する必要なんてありません。
SUM関数を使うだけで、#VALUE!回避になるんです。
へなちょこが勝手に思う、優秀関数第2位です。
【このカテゴリーの最新記事】
- no image