- ベストアンサー
エクセル関数「countif」で範囲と条件を分離させる方法
- エクセル関数「countif」を使用して、範囲と条件を分離させる方法について調査しています。
- indirect関数を使用して範囲を指定し、検索条件を別セルに入力することで、カウントを正しく行うことができます。
- しかし、条件を認識してくれない場合があり、結果が0になってしまいます。関数のみでは難しいかもしれません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
D1にA1:A40 D2に1 と入力しておいて =COUNTIF(INDIRECT(D1),"="&D2) とすればよい。
その他の回答 (4)
- shintaro-2
- ベストアンサー率36% (2266/6245)
>範囲、条件共に可変するので(B1:B40では"2"を…という感じです)、後々を考え、オートフィルで対応出来たらと思い、 フィルタを使って集計するのが数値であれば 例えば A列の上か下に、=subtotal(9,a1:a40)とでもしておけば計算してくれます。 1以外のものが入っているのであれば、フィルタで"1"を指定する必要はあります。 2をカウントするのなら、=subtotal()/2 にする等の工夫が必要になります。
お礼
ありがとうございました!
- dogs_cats
- ベストアンサー率38% (278/717)
数式を行方向にオートフィルしたいか、列方向にしたいかによって数式は違います。 列方向 E1式 =COUNTIF(A1:A40,COLUMN(A1)) F1までオートフィル 行方向 I1式 =COUNTIF(OFFSET($A$1,,ROW(A1)-1,40),ROW(A1)) I1をI3までオートフィル OFFSET関数 http://excel.onushi.com/function/offset.htm row(),COLUMN()関数は行番号、列番号を返します。 row(A1),COLUMN(A1)は両方1を返す row(A2),COLUMN(B1)は両方2を返す
お礼
なるほど。ありがとうございました!
- mshr1962
- ベストアンサー率39% (7417/18945)
D1に"B1:B40,2"と入力して =COUNTIF(INDIRECT(D1)) でしょうか? これだと =COUNTIF("B1:B40,2",) となりエラーになります。 解決する場合は2セルを使い D1に"B1:B40"、E1に"2"と入力して =COUNTIF(INDIRECT(D1),E1) ですね。 ※E1の方はセル範囲でないのでINDIRECT関数は不要です
お礼
ありがとうございました!
- bunjii
- ベストアンサー率43% (3589/8249)
=COUNTIF(A1:A40,"1") 上記の数式は文字データの"1"がセットされているセルの数をA1:A40から計数するものです。 条件が数値の1についてもカウントされますが問題ないでしょうか? >検索条件部分の「"1"」の扱いをどのようにすれば条件として認識してくれるのでしょうか? 「"1"」が文字データでなく数値で良ければ次の数式で問題ないでしょう。 =COUNTIF(A1:A40,COLUMN(A1)) 上記の数式があるセルを右にオートフィルコピーすると =COUNTIF(B1:B40,COLUMN(B1)) =COUNTIF(C1:C40,COLUMN(C1)) のように変化します。
お礼
なるほど。ありがとうございました!
お礼
一番シンプルでしたのでBAにさせて頂きます!ありがとうございました!