- ベストアンサー
数式の結果である数値のみカウント・合計
=COUNTIF(A3:A9,">=0")で「0以上の、数式の結果である数値」のセル数のカウントと、 「数式の結果である数値」のセルのみ合計計算したいのですが、 「直接入力した数値」はカウント(計算)せずに、 「数式の結果である数値」のみカウント(計算)することはできますか? 例えば、A3~A9セルに表示されている数値が A3:5 A4:3 A5:8(=SUM(A3:A4)) A6:2 A7:空白 A8:4 A9:-2(=A6-A8) の場合、=COUNTIF(A3:A9,">=0")で「5」となりますが、 数式の結果の数値で>=0である個数の「1」(A5が該当)となるようにカウントするにはどうすればよいでしょう? また、0以上の条件部分が「0未満」、「条件なし」の場合も可能でしょうか? そして、=SUM(A3:A9)だと「20」となりますが、 「数式の結果である数値」のみ合計計算して「6」(A5とA9の合計)を結果として表示させることはできますか? できれば数式での解決が第一希望です。 以前、全く逆の、「数式の結果である数値を除いた、直接入力した数値のみカウント」する方法を質問し、 おかげさまで、数式をSUBTOTAL関数で小計等を避けて集計することで無事解決したのですが、 今度は小計等の数式の結果の数値のみをカウントするという、逆のパターンが必要になってしまいました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
B3を選択して、[挿入]-[名前]-[定義]で、[名前]に「formula」、 [参照範囲]に「=GET.CELL(48,A3)+NOW()*0」と入力して、 [追加]-[OK]。セル範囲B3:B9に「=formula」を入力します。 数式の結果の数値で0以上である個数=SUMPRODUCT((A3:A9>=0)*(B3:B9=1)) 数式の結果の数値で0未満である個数=SUMPRODUCT((A3:A9<0)*(B3:B9=1)) 数式の結果の数値である個数=SUM(B3:B9) 「数式の結果である数値」のみ合計=SUMIF(B3:B9,1,A3:A9)
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
SUBTOTAL関数などの特殊性を使うのも良いが、基本的に関数はセルの「値」を問題にするもので、計算結果での0も、直接入力の0も区別できません、区別しません。そのセルに、式が入っているかどうかをTRUE、FALSE等で返してくれる関数はありません。CELL関数もこの点では使えないようです。 時々回答に出る、エクセル4.0マクロに判別法がありかどうかは判りません。 VBAを使えは、HasFormulaプロパティがありますので、判別してカウントしたり、ユーザー関数でも作れば2,3行で作れますが。
お礼
そうですね。 あまり無理を言わずに、うまくExcelを使っていければと思います。 ありがとうございました。
- keirika
- ベストアンサー率42% (279/658)
小計を避けてカウントする方法をご存知と言うことであれば、 小計の個数=全体の個数-直接入力の個数 ということではダメでしょうか・・・
お礼
小計欄が多く、小計は単純に足したり引いたりなので、SUBTOTAL関数で小計欄を入力するのがちょっと手間で、できれば小計は普通にサムや引き算で入力して、その結果のみ数えたり計算したりできる便利な数式があればと思いました。 そのような数式の方法がなければ、 小計の個数=全体の個数-直接入力の個数 で運用してみようと思います。 どうもありがとうございました。
お礼
B列に入力できないので(同列上の他のセルで表示しなければならないので)、別の方法を考えてみます。 でもこれも非常に良い方法だと思うのでちょっと他のデータで試してみたのですが、うまくいきませんでした。 この方法ももう少し調べて活用できるようにしたいと思います。ありがとうございました。