• ベストアンサー

countif関数で離れた場所を検索範囲にする。

countif関数で離れた場所を検索範囲にしたいのですが、いい方法がありますか? 普通に範囲指定するとA1:F6のようにはできますよね。 2列おきに範囲指定するよい方法はないかと思っています。どなたか教えていただけませんか?  A B C D E F 1 2 3 4 5 6

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

  • ベストアンサー
回答No.2

いくつか考えてみました。  (COUNTIF1つで出来る方法は見つかりませんでした。) 気に入る方法があればいいですけど。 1.範囲毎に分ける =COUNTIF(A1:A6,">5")+COUNTIF(D1:D6,">5") 又は =SUMPRODUCT((A1:A6>5)+(D1:D6>5)) 2.Mod関数とColumn関数を利用する。   列番号を3で割った時の余りが1で、値が5より大きいセルの個数 =SUMPRODUCT((MOD(COLUMN(A1:F6),3)=1)*(A1:F6>5))   (こちらは普通の関数。入力後、[Enter]で確定) 又は =SUM((MOD(COLUMN(A1:F6),3)=1)*(A1:F6>5))   (こちらは配列数式。入力後、[Enter]の代わりに[Ctrl]+[Shift]+[Enter]) 3.VBAでユーザー関数を作成 =Countif2(">5",A1:A6,D1:D6) (Countif2(条件,セル範囲1,セル範囲2,・・・・) 標準モジュール Function COUNTIF2(条件, ParamArray セル()) As Long   Dim i As Long   For i = 0 To UBound(セル)     COUNTIF2 = COUNTIF2 + Application.WorksheetFunction.CountIf(セル(i), 条件)   Next i End Function すべて同じ結果になります。 ・SUMPRODUCTと配列数式は列全体の指定は出来ません。A:F等 ・2列分位なら範囲毎に指定してもいいと思います。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

CountIf関数は範囲を1つしか指定できないようですが 2つ以上の範囲指定をできるようにして見ました(ユーザー関数を作りました。) ツール-マクロ-VBE(ここでVBE画面に変る)-挿入-標準モジュール-(ここで出ている画面に)下記のコードをコピペする。 Function countx(a As String, b As String) d = Split(a, ",") c = 0 For i = 0 To UBound(d) c = c + Application.WorksheetFunction.CountIf(Range(d(i)), b) Next i countx = c End Function そしてワークシートに戻り、答えを入れたいセルに =countx("A2:A9,C2:C9,D2:D9",">20")のようにいれて 下さい。 A2:A9,C2:C9,D2:D9の部分は(A)(前後)両端を””(半角)で括ること(CountIf関数と違う点)(B)範囲を並べるとき、区切りを半角カンマ(,)で区切ること (C)カンマで区切って入れる数は10や20までなら制限なしと思う、でお願いします。範囲は列に拘ることなく、規則性なく、指定しても良い。 例 "A2:A3,C2:C9,E2:E9,D5:D5"など。

関連するQ&A

  • エクセルのCOUNTIF関数について教えてくださいm(__)m

    現在、エクセルのCOUNTIFを利用して、アンケートを集計中です。 その中で、例えば、集計(見たい)場所がC3~C472の範囲 を指定した場合には・・      =COUNTIF(Sheet3!C3:C472,"<"&50) 上記の式でOKでした。 そこで、F3~F472も同時に読ませて、その中から50未満 のデータ数を出力することとしておりますが、D、Eの列にも数 値があるものですから、      =COUNTIF(Sheet3!C3:F472,"<"&50) とはできないものですから、COUNTIFをしたい、場所を複数ヶ所 指定する方法を教えてください。 よろしくお願いします。

  • この場合の関数を教えてください。IF関数とCOUNTIF関数?

      A      B    C  D  F  G 1 12300 2 9800 3 14500 上記の様な表($a$1:$d$3) がある時、 B1 ◎      D1 △   F1◎     C2◎         F2△ B3△      D3◎ F1 に◎を入れた時に、 もし、A列の値が10000より大きいなら(注)、範囲$a$1:$d$3の◎の数を数え結果をG1に2と表示させたいです。(F2に△と入れたら2と表示) (注) 1行目は、12300(A1)なので1行目はカウントの範囲。 2行目は、9800で10000より小さいのでカウントの範囲から外れる。 3行目は、14500はカウントの範囲。 2行目の◎(C2)はカウントされないようにするには、 G1にどのようなCOUNTIFの関数を入れればよいのでしょうか? いつも教えているので、考えたのですが? =IF(A1>10000,COUNTIF($B$1:$D$3,F1),"0")では、間違いとは気づいたのですが? (A1>10000が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

  • COUNTIF関数を記録したいのですが

    どう説明していいのかわからないので色々書きます。 検索範囲 B列~E列(数値) 条件   A列(数値) B~F列の数値でA列より大きかった数を求めたいのですが、A列は毎行違う数字が入ってます。 G列にアクティブセルをおき値をもとめたいのですが ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-5]:RC[-1],この部分?)" A列の数値を指定できません。どう入力すれば良いでしょうか?どなたか宜しくお願い致します。

  • COUNTIF 関数について

    エクセル関数(COUNTIF)を教えてください    例題   勤務  氏名 1 日勤   A 2 日勤   B 3 公休   C 4 特休   D 5 日勤   E 6 年休   F 7 日勤   G 8 公休   H 9 日勤   I 10 特休   J A列に勤務、B列に氏名が入力されています 質問の関数でCOUNTIF(A5:A10、"日勤”)ですが ”E”さんの位置より後に”日勤”が何人いるかをカウントしたい 計算式のA5の値を自動的に判別した計算式にしたい(Eさんの位置が変動するためにA5が固定できないためです) 以上よろしくお願いいたします

  • COUNTIF関数の検索条件

    COUNTIF関数で範囲を指定し、検索対象として文字列を指定しているのですが、その文字列は2つあります。ダブルコーテーションで文字列をくくり、そのあと、もうひとつの文字列を追加しようとするのですが、エラーが出てだめです。どうしたらよいのでしょうか。それとも、この関数で、検索条件を複数でしていできないのでしょうか。

  • 関数の件

    年間の日にち及指定曜日に連動して表示の方法は?     A列      B列        C列       D列       E列      F列       1  2014/5/4   日曜日      AA       AA        AA      祝日  平日はE1にAA表示、土曜日はD1に表示、日曜日はD1及びE1にAA表示の関数は       D1に=IF(OR(WEEKDAY(A1,2)>5,COUNTIF(F2:F20、A1)=1)、C1,””)  E1に=IF(OR(WEEKDAY(A1,1)>6、COUNTIF(F2:F20、A2)=1)、””、C1)  上記の関数では5/4、5/5、はD1,E1にAAが表示されます、5/4から5/5までD1にAA  のみ表示又、7/20(日)はD1、E1にそれぞれAAが表示されます、7/20はD1にAA   のみ 表示関数有りますか、可能であれば教えてください。      よろしくお願いします。     

  • 【エクセル】離れたセルのCOUNTIF関数

    こんにちは。 エクセルの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")) という数式をたてて計算は出来たのですが、もっと簡単(?)な式はあったりするのでしょうか? ご存知の方がいらっしゃいましたら是非お教え下さい。

  • エクセル 重複データの検索(COUNTIF関数!?)

    A列とB列で、重複しているデータ(数字)を検索するための関数を教えて下さい。 確か、こんなような↓関数だったと思うのですが、ちょっと違うようです。 C2=IF(COUNTIF(A2,B1:B2377),"","×")

  • エクセルのCOUNTIF関数について

    エクセルのCOUNTIF関数について、というかCOUNTIF関数でよいのかどうかもよく分からないのですが、教えて下さい。 (1)まず、ワークシートのA列の1~100行目までの100マスを範囲として、数値を入力していくときに、仮に同じ数値を入力しようとしても、入力ができないようにしたいのです。 (2)次に、ワークシートのA列とC列のそれぞれ1~100行目までの合計200マスを範囲として、(1)と同じことをしたいのです。(つまりB列はとばして) (1)と(2)のようなことは可能でしょうか? お分かりの方がおられましたら、ぜひよろしくお願いします!

  • EXCELでCountif内に2つ以上の列を入れる場合

    0 A、B、C、D 1 a、1、h、2 2 b、0、i、1 3 c、1、j、2 4 d、0、k、1 5 e、1、l、0 6 f、0、m、2 7 g、1、n、0 上の用にaからnチームまでの得点表があります。 1点を得点したチーム数を計算するときに countif(B:B,"1">+countif(D:D,"1") を使うと実際にでるのですが、Countifを一つだけ使用して範囲の部分をB列からD列という形ではなくB列のみとD列のみの中から探すように指定するにはどうしたらいいのでしょうか? countif(B:D,"1")とやったのですが、こうするとB,D列だけでなくC列もカウントされてしまいます。今回はC列に数字がないので問題内のですが、チーム名で1の入るチームがあると計算がくるってしまうと思います。B列のみD列のみと指定する仕方を教えてください PS 一列にすべてを書けば問題ないのですが、列を分けることでスクロールせずに見ることができ見やすいと思い、複数列にしました。

専門家に質問してみよう