アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんにちは。
エクセルのCOUNTIF関数についての質問です。
各セルに以下のような数値が入っている表で・・・

 A=10  B=00  C=20   D=30   E=00   F=40   G=50 

AとCとEとGのセルを選択し、0以外のセルの個数を数えるとき
COUNTIF関数で
=COUNTIF(A,C,E,G,"<>0")
という数式を立てたのですが、エラーとなってしまいました。
最終的には
=((COUNTIF(A,"<>0")+(COUNTIF(C,"<>0")+(COUNTIF(E,"<>0")+((COUNTIF(G,"<>0"))
という数式をたてて計算は出来たのですが、もっと簡単(?)な式はあったりするのでしょうか?

ご存知の方がいらっしゃいましたら是非お教え下さい。

A 回答 (5件)

こんばんは



=SUM(A1<>0,C1<>0,E1<>0,G1<>0)
でもできます。
A<>0
の計算結果はTrueかFalseなのですが、
True=1
False=0
と扱われることを利用しています。

ただし、VBAでは
True=-1
となっているように、Excelのシート以外で使った場合には、望むような動作にならないかもしれません。
    • good
    • 0

COUNTIFをもっとよく解説を読むべし。


第1引数は範囲を指定する(出来る)。だからA2:G2が指定できる。
第2引数は条件で">70"なんて例が解説書に必ず載っている。
であれば、0以外であれば、"<>0"が指定できないかやってみたらよい。
=COUNTIF(A2:G2,"<>") は空白で無いセル。0や文字も含まれる。
=COUNTIF(A2:G2,"<>0") は0のセルの数.
CountIFの第2引数は複合条件は指定できないから、文字セルが無い保証があれば、両者を引き算すればよい。
ーー
一般的に2条件以上付きカウントは、2007ではCOUNTIFSそれ以前ではSUMPRODUCT関数で行うのが定石。
本件は
=SUMPRODUCT((A2:G2<>0)*(ISNUMBER(A2:G2))*(A2:G2<>""))
    • good
    • 1

0より大きいなら


=INDEX(FREQUENCY((A1,C1,E1,G1),0),2)
0以外なら
=COUNT(A1,C1,E1,G1)-FREQUENCY((A1,C1,E1,G1),0)
参考まで
    • good
    • 2

=COUNT(A1:G1)-COUNTIF(A1:G1,0)

    • good
    • 0

一例です。


=SUMPRODUCT((A1:G1>0)*(MOD(COLUMN(A1:G1),2)=1))
    • good
    • 2

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!