• ベストアンサー

IF関数とCOUNTIF関数の混在した式なんですが・・・

A1からA10までAかBの文字が入力されています。 この10個のセルのなかで Aが入力されているセルの数が7個以上の場合、B10にCと入力、 Bが入力されているセルの数が7個以上の場合、B10にDと入力、 それ以外の場合、B10にEと入力したいのです。 そこでB10に =IF(COUNTIF(A1:A10,"A")>=7,"C",COUNTIF(A1:A10,"B")>=7,"D","E") と入力しましたがエラーになってしまいます。 エラー表示の際、"D"の部分が黒く反転しています。 どこが間違っているでしょうか。

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

  • ベストアンサー
noname#132927
noname#132927
回答No.4

#1の方に補足します。 関数は =命令文(パラメータ) の構成を取り、パラメータがないもの(その時間を呼び出す=now()など)、一定個数のパラメータを必要とするもの(命令に対し、何個のパラメータと決まっているタイプです。IF関数も、このタイプです)、複数のパラメータを並べるもの(個数が決まっていないが、複数指定するものです。良い例がsum関数です)があります。 IF関数の場合、 =IF(条件指定、条件に適合した場合、条件に適合しない場合) と3個のパラメータを使用します。 =IF(COUNTIF(A1:A10,"A")>=7,"C",COUNTIF(A1:A10,"B")>=7,"D","E") とすると、 COUNTIF(A1:A10,"A")>7が条件指定で、”C"が適合するときとなりますが、COUNTIF(A1:A10,"B")>=7が適合しない場合となってしまい、そのあとの”D"と”E"の二つがパラメータとして多いことになります。黒く反転しているのは、そのあたりがおかしいという指摘です。 #1さんが記したように、 =IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E")) とすることで、最初のCOUNTIF関数で指定している条件に適合しないときは、3つめの適合しない場合に記しているIF関数内の判定となり、それぞれのパラメータの数が正当な数になります。 複雑な条件を指定するときは、IF関数を7回組み込む(ネストすると言います)ことが可能で、2種のうち1種を満たすときはOR(条件1,条件2)という書き方を、共に満たすときはとするならAND(条件1,条件2)という書き方の関数を、IF関数内に組み込むことで複雑な判定をさせます。

blackleon
質問者

お礼

大変詳しいご解説をありがとうございました。 非常によく理解できました。

その他の回答 (3)

  • tmi2e
  • ベストアンサー率31% (7/22)
回答No.3

=IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E")) だと思います。

blackleon
質問者

お礼

ありがとうございました。 機会がありましたらまたよろしくお願いいたします。

  • t-yamada_2
  • ベストアンサー率40% (587/1460)
回答No.2

IF文は、IF(論理式,真の場合,偽の場合) の書式なので"C"以降は単式にするか、そこでまたIF文で判定をしなければなりません。下の様にしたらできると思います。 =IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E"))

blackleon
質問者

お礼

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

  • hirorin00
  • ベストアンサー率50% (446/884)
回答No.1

はじめまして =IF(COUNTIF(A1:A10,"A")>=7,"C",IF(COUNTIF(A1:A10,"B")>=7,"D","E")) こうしましょう(^^)

blackleon
質問者

お礼

早々のご回答ありがとうございました。 うまくできました。

関連するQ&A

  • COUNTIF

    A列に「a」「b」の文字と、空白のセルがあります。「a」の数を数えたいのでcountif関数で求めました。  =COUNTIF(A2:A26,"A") B列、C列と同じように「a」「b」の文字と、空白のセルがありますが、D列はすべて空白です。 空白のときは「0」ではなく、何も表示されない状態にしたいのですが、IFをうまく組み合わせた式を教えてください。 よろしくお願いします。

  • 【エクセル】離れたセルの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関数で条件が2つある時

    すみません、どなたか教えてください。 シート2のセルD5には数式「=COUNTIF(INDIRECT($C$43),B5)」があり「2」と表示されています。 $C$43は数式「="1!$C$5:$C$"&E42」でE42セルには32の数字が入っています。つまりシート1のセルC5からC32までとシート2のB5が等しかったらシート2のセルD5に「件数を表示」です。 1件の条件の時のカウントはできました。 問題はこの次に、シート1のセルD5からセルD32とシート2のセルE5と等しいときにの条件を加えて「件数の表示」をしたいのですが、二つの条件があるときの書き方が分かりません。 つまり、 シート1のセルC5からセルC32までに入っている文字(1イ、2ロ、5,1ロ・・・)とシート2のB5の文字(1イ)が同じで、かつ、シート1のセルD5からD32までに入っている数字(23、19,21,40・・・)とシート2のセルE5の数字「23」と同じ時の件数を数えたい。と言うことですが、うまく説明できなくてすみません。 シート2のセルD5に数式「「=COUNTIF(INDIRECT($C$43),B5,IF(INDIRECT($D$43),E5,0))」 だとエラーになってしまいます。$D$43は「=1!$D$5:$D$"&E42」、E5はシート2のセルE5です。 おしえてください。

  • エクセルのIFについて

    何度もすみません、いつもありがとうございます。 また行き詰ったのでお力を貸してください。 前回 【状態】 ・B2:E2の中に【空白、◎、●、▲】のいずれかが入っている ・条件によりF2に【S,A,B,C,ネタ】が入る 【条件】 ・S⇒すべて◎ ・A⇒3回連続した◎がある ・B⇒◎3つ以上だが連続していない ・ネタ⇒●が1以下かつ、◎がない ・Cがそれ以外 で関数についてご質問したのですが、条件が変わってしまい以下のように作成したのですが FALSEになってしまいました。 =IF(COUNTIF(B2:E2,"◎")=4,"S",IF(COUNTIF(B2:E2,"◎")=3,IF(COUNTIF(C2:D2,"◎")=2,"A","B"),IF(COUNTIF(B2:E2,"●")=3,IF(COUNTIF(C2:D2,"●")=2,"C","ネタ"),IF(COUNTBLANK(B2:E2)=0,IF(COUNTIF(B2:E2,"▲")=0,"B","ネタ"),IF(COUNTIF(B2:E2,"▲")=1,IF(E2="▲","C","")))))) 新条件は ・S⇒すべて◎ ・A⇒3回連続した◎がある ・B⇒A以下、C以上 ・C⇒●が連続して3つ以上 ・ネタ⇒空白が1つ以上ある、または▲が2つ以上、未達成である 記号は ◎>●>▲>空白で、3/4が●以上かつ、B2からD2が●以上であると達成になります。 Bは組合せが多いですが、たとえば◎が2つ、●が2つだと達成になりますがC以上なのでBになる…といった具合です。 何度もすみません! 皆様のご協力に感謝します*

  • IF関数について

    IF関数について A列のセルに住所が入力されていて、「中野区」という文字列が含まれているときに「○」そうでない場合は「-」をB列セルに表示させる方法で B列セルに、 =IF(COUNTIF(A1,"*中野区*"),"○","-") を入力すれば良いことがわかりました。 この条件に加えて、A列のセルが空白の場合上の行を参照するという条件を加えたいと思います。 例A3のセルが空白の場合A2を参照しB3に表示させる。 因みに、A2も空白の場合A1を参照する。 って感じにしたいです。 宜しく御願いします。

  • Excelの関数「COUNTIF」について

    =COUNTIF(A1:B50,"<=○○") ○○のところは指定のセルから引っ張ってくることは不可能なのでしょうか? 例えばC1が100として =COUNTIF(A1:B50,"<=100")   だと、ちゃんとカウントしてくれるんですが =COUNTIF(A1:B50,"<=C1") だと、A1:B50に100以下の数値が何個あっても0になってしまいます。 「""」で囲っているからだと思うんですが、 「""」を外すと、入力した数式は正しくありませんと警告がでます。 どう入力すれば検索条件をセルから引っ張ってくることができるのでしょうか? どなたか分かる方、知恵をお貸し下さい。 よろしくお願いいたします。

  • Excelのif関数を使ったのですがうまくいきません。

    Excelのif関数を使ったのですがうまくいきません。   | A | B | C | D | E ----------------------- 1 | A | A | A | A | 5 2 | B | A | A | B | 4 3 | C | C | A | C | 2 のようにA1~D4のセルに入力されたA,B,C の組み合わせによって E5のセルに1~5の数字を入れていきたいのですがAAAA~CCCCの組み合わせが 15通りあってif関数では入れ子ができません。 AAABもAABAも同じと判断させて1~5の数字を自動的に入力させたいのですが 何かいい方法はないでしょうか。 教えてください。

  • この場合の関数を教えてください。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が間違い)どの様にして良いか解りません。 どなたか教えてください。宜しくお願いいたします。 (見にくい表で申し訳ありません)

  • IF関数

    セルA1に例えば2000とあり、B1に例えば30と数字が入った場合はD1にA1の2000に30プラスになり2030と出て、C1に例えば30と数字が入ったらマイナスされて1970となるようにしたいのです。 D1のセルにIF(B1<>"",A1,A1-C1)と入力してもプラスはしてくれるのですがマイナスの方はなりません。 どうか教えてください。

  • IF関数の複数条件

    D2のセルに計算式B2+C2が入力されているんですが、 E2のセルに●か▲のどちらか一つが入力されたときにD2のセルの式をB2*C2に切り替えたいです。 この場合のif関数の式を教えてください。

専門家に質問してみよう