はじめに
SUMIF関数とCOUNTIF関数のOR条件(複数条件のうち1つでも満たすものをすべて対象とする)は通常の書き方だと文字数が多い数式になってしまいます。
条件が一つ増えるたびにSUMIF関数、COUNTIF関数の式を追加してしまうことになるからです。
この記事では条件が増えれば増えるほど効果の出る、SUMIF関数、COUNTIF関数のOR条件数式の書き方を紹介します!
ひとつ注意点があり、紹介している数式は厳密にOR条件となるわけではありません。
(ワイルドカードを使わず、完全一致を前提とする場合は問題になりません)
その点についても説明をしていますので、最後まで読んで頂けますと幸いです。
注意しなきゃいけない点もあるから…
使うときは気をつけてね
SUMIF関数、COUNTIF関数のOR条件数式を短い文字数で入力する方法
今回は数式をぐっと短く書く方法を紹介します!
最後に注意点についても言及していますので、
目を通して頂けると幸いです。
SUMIF関数とCOUNTIF関数は擬人化キャラクターで紹介してもらいましたね!
通常の書き方と短い書き方の図を用意したのでご覧ください!
<例で使用されている数式>
SUMIF関数 長い数式
=SUMIF(A:A,"あ",B:B)+SUMIF(A:A,"い",B:B)
SUMIF関数 短い数式
=SUM(SUMIF(A:A,{"あ","い"},B:B))
COUTIF関数 長い数式
=COUNTIF(A:A,"あ")+COUNTIF(A:A,"い")
SUMIF関数 短い数式
=SUM(COUNTIF(A:A,{"あ","い"}))
SUM関数との組み合わせになるんですね!
今回はOR条件ですので、条件に一致する場合の和を求めますからね
短い方では見たことのないカッコで複数の条件が括られていますね
{}は中カッコと呼びます
この中に条件を複数入れるとOR条件での結果が計算できるんですよ
それだとたしかに短くなりますね!
しかも条件の数が多ければ多いほど効果的です
{}(中カッコ)が何をしているのか、教えて下さい…
{}(中カッコ) の中は『配列』という状態になっています
これを引数に持たせると一つの関数が複数の値を返せます!
=SUM(SUMIF(A:A,{“あ”,”い”},B:B))
の例ですとSUMIF関数は”あ”と”い”を探した結果の両方を返すんです
その2つの結果をSUM関数で足しているということですか…?
飲み込みが早いですね、その通りです!
上の図のSUMIF関数の例だと、
SUMIF関数が”あ”を探した結果の7と”い”を探した結果の5を返して
その7と5をSUM関数が足して和の12を返しています!
しかし『配列』…
わからないものを使うのは少し怖い気がします
理屈は先ほど説明した通りなのですが、
不安だったら避けた方が良いかもしれませんね
数式の文字数を減らすためにミスをしたら本末転倒です
配列マスターできるように頑張りますっ!
複数の条件をセル参照で指定したい
・条件をセル参照させたいのに、条件の配列に参照が入れられないのが惜しい。
こういった声が寄せられましたので、セル参照でOR条件を複数指定する数式について解説します。
<例で使用している数式>
=SUMPRODUCT(SUMIF(B3:B6,E3:E4,C3:C6))
{=SUM(SUMIF(B3:B6,E3:E4,C3:C6))}
2つ目のSUM関数の数式は配列数式のためCSE(『Ctrl + Shift + Enter』 )で数式を確定させる必要があります。
セル範囲は配列のように扱えるので、セル参照でOR条件を複数指定することはできます。
ただ、配列数式の扱いになるのでSUM関数をSUMPRODUCT関数にするか、SUM関数で配列数式にするかという手段を取ることになります。(スピル未実装の環境)
スピルの環境では普通にSUM関数の数式で計算できるはずです。(未検証)
このように、条件範囲セル範囲E3:E6に「ぶどう」を追加すると、「ぶどう」の金額だけ集計結果が増加します。
「りんご」「パイナップル」「ぶどう」のいずれかに該当する数字を集計しています。
ただし、厳密にはOR条件ではないので、後述の注意点を読むことを推奨します。
【注意点】厳密にはOR条件ではない
Twitterでご指摘頂いたのですが、このTipsを完全なOR条件の数式と認識すると落とし穴があります。
ワイルドカードを使用すると1つのセルが複数の条件に一致する可能性があります。
その場合何が起こるかといいますと、2重に数値が合計されてしまいます。
(厳密なOR条件では、いちど一致した対象が再度計算されることはないはずです)
この点を考慮すると、今回紹介した数式は『完全一致することが前提の場合にのみ使える数式』ということになります。
おわりに
今回はSUMIF関数とCOUNTIF関数のOR条件数式を短く書く方法について扱いました!
作業列を設けたり、配列はよく分からないから使わないという選択もアリだと思いますが、こういう書き方で省力化できますよ~というお話でした。
私はどちらの関数も多用するので、こういう小技は手間が省けて助かります。
最後まで記事を読んで下さり、ありがとうございました!
当ブログではエクセル関数を擬人化したキャラクターによる関数の紹介記事をメインコンテンツとして扱っています!
もしよろしければそちらもご覧頂けますと幸いです!
コメント