• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル関数「countif」に関して)

エクセル関数「countif」で範囲と条件を分離させる方法

このQ&Aのポイント
  • エクセル関数「countif」を使用して、範囲と条件を分離させる方法について調査しています。
  • indirect関数を使用して範囲を指定し、検索条件を別セルに入力することで、カウントを正しく行うことができます。
  • しかし、条件を認識してくれない場合があり、結果が0になってしまいます。関数のみでは難しいかもしれません。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8477/18146)
回答No.2

D1にA1:A40 D2に1 と入力しておいて =COUNTIF(INDIRECT(D1),"="&D2) とすればよい。

mfc4
質問者

お礼

一番シンプルでしたのでBAにさせて頂きます!ありがとうございました!

その他の回答 (4)

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.5

>範囲、条件共に可変するので(B1:B40では"2"を…という感じです)、後々を考え、オートフィルで対応出来たらと思い、 フィルタを使って集計するのが数値であれば 例えば A列の上か下に、=subtotal(9,a1:a40)とでもしておけば計算してくれます。 1以外のものが入っているのであれば、フィルタで"1"を指定する必要はあります。 2をカウントするのなら、=subtotal()/2 にする等の工夫が必要になります。

mfc4
質問者

お礼

ありがとうございました!

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.4

数式を行方向にオートフィルしたいか、列方向にしたいかによって数式は違います。 列方向 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を返す

mfc4
質問者

お礼

なるほど。ありがとうございました!

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

D1に"B1:B40,2"と入力して =COUNTIF(INDIRECT(D1)) でしょうか? これだと =COUNTIF("B1:B40,2",) となりエラーになります。 解決する場合は2セルを使い D1に"B1:B40"、E1に"2"と入力して =COUNTIF(INDIRECT(D1),E1) ですね。 ※E1の方はセル範囲でないのでINDIRECT関数は不要です

mfc4
質問者

お礼

ありがとうございました!

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

=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)) のように変化します。

mfc4
質問者

お礼

なるほど。ありがとうございました!

関連するQ&A