• ベストアンサー

IF COUNTIF関数について教えて頂きたいです

=IF(COUNTIF(A:A,B1)=0,"NG","") 上記の式の詳細について教えて頂きたいです。 私の理解としては、A列とB列を比較しB列にあるものを(B列にしかないもの)検索し、一致する値は0と表示、一致しない値はNGの表示といった解釈でいいでしょうか? =0,"NG","")   ←この式の意味が良くわからずにいます。 作業として行いたいことはA列とB列を比較しB列にしかない値をC列に表示したいです。この式の場合C列に一致しない値をNGと表示させる式だと理解しています。 また、上記の様な関数を説明しているサイトなどがあれば教えて頂きたいです。 宜しくお願いします。

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

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

え~っと、次のキーワードでインターネットで検索して、お勉強してみてくださいませ。サイトの紹介を待つより、どんどん検索してください。ネット上には情報があふれています。 ●関数の入れ子(ネスト)、●論理式、●IF関数、●COUNTIF関数 IF関数の第1引数(「COUNTIF=0」という部分)には、論理式を書く決まりです。つまり、COUNTIF=0は成り立つだろうか、それとも成り立たないだろうか?という条件分岐を行っています。だからこのIF関数は、成り立つなら「NG」という文字列を、成り立たないなら空文字列(「""」で指定)を表示させます。 COUNTIF関数は、条件を満たしているセルの個数を数える関数。つまりそういうセルが0個なら「NG」、それ以外のときは何も表示しませんよということです。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.5

式の意味はA列にB1のデータがない場合にはNGと表示させ、ある場合には空白にしなさいという意味ですね。 お望みはA列とB列を比較してB列にしかない値をC列に表示したいということですから、例えばC1セルには次の式を入力して下方にドラッグコピーすればよいでしょう。 =IF(COUNTIF(A:A,B1)=0,B1,"") この式の意味はA列にB1の値が無い場合にはC1セルにB1セルの値を、無い場合には空白にしなさいとの意味になりますね。 ただし上の式ですとB1セルが空白の場合にはC1セルに0が表示されます。それを避けるためにはC1セルには次の式を入力し下方にドラッグコピーするのがよいでしょう。 =IF(B1="","",IF(COUNTIF(A:A,B1)=0,B1,""))

noname#204879
noname#204879
回答No.4

》 =IF(COUNTIF(A:A,B1)=0,"NG","") 私なら =IF(COUNTIF(A:A,B1),"","NG") と書きます。(2文字分短い!)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

>=IF(COUNTIF(A:A,B1)=0,"NG","") もしもB1の値がA列の中に1つも無かったら(COUNTIFがゼロならば)NGを表示する。そうでないとき(=B1の値がA列の中にあったら)何も表示しない。 >私の理解としては だいぶ違います。 >A列とB列を比較し いいえ。上述したように、A列の値とB1を比較しているだけです。 >B列にあるものを(B列にしかないもの)検索し B1がA列にあれば(なければ)を計算しているだけです >一致する値は0と表示 B1がA列にあったら何も表示しません。ゼロを表示するなんて事は、どこにもありません。 >一致しない値はNGの表示 B1がA列になかった(COUNTIFがゼロだったら)NGを表示します。 >この式の場合C列に一致しない値をNGと表示させる式だと理解しています。 B列なのかC列なのか、もう支離滅裂ですね。 >作業として行いたいことはA列とB列を比較しB列にしかない値をC列に表示したいです C1に =INDEX(B:B,SMALL(IF((B1:B1000<>"")*ISERROR(MATCH(B1:B1000,A:A,0)),ROW(B1:B1000),9999),ROW(C1)))&"" と記入し、必ずコントロールキーとシフトキーを押しながらEnterで入力、以下コピー。

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

IF(条件1,a,b)の型ですので、 [条件1]の部分COUNTIF(A:A,B1)=0 検索条件に指定した条件を満たすセルの個数が0個なら [a]の部分のNGを表示し、 そうでなければ[b]の部分の何も表示しない(最後の「""」は空欄にする意味) http://www.eurus.dti.ne.jp/yoneyama/Excel/kansu/if_is.htm COUNTIF(A:A,B1)は COUNTIF(範囲,検索条件)なので A列とセルB1(B列ではないですよ)の値が一致する個数を表示する関数 http://pc.nikkeibp.co.jp/article/technique/20080623/1005367/?rt=nocnt まとめると セルB1の値がA列にいくつあるか検索し、0個なら「NG」、それ以外なら空欄にする式です。 

関連するQ&A

  • この場合の関数を教えてください。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関数、OR関数】について

    先ほどの質問(http://okwave.jp/qa/q6870449.html)の続きというか補足です。 具体的には、 ・F列またはG列に、X5またはX6またはX7またはX8またはX9またはX10のいずれかの値が入れば、I列に「A」と表示させる。 ・F列またはG列に、X14またはX15またはX16またはX17またはX18のいずれかの値が入れば、I列に「B」と表示させる。 ・F列またはG列に、X23またはX24またはX25またはX26またはX27またはX28のいずれかの値が入れば、I列に「C」と表示させる。 ということがやりたいです。 X列の値は全て文字列(人名)です。 先ほどいただいた回答の、 =IF(COUNTIF(X5:X10,F3)+COUNTIF(X5:X10,G3),"A",IF(COUNTIF(X14:X18,F3)+COUNTIF(X14:X18,G3),"B",IF(COUNTIF(X23:X28,F3)+COUNTIF(X23:X28,G3),"C",""))) という式を入れてみましたが、F列、G列が空白でも「A」と表示されてしまいました。 教えてgooを利用するのは初めてなので、おかしなことをしていたら申し訳ありません。

  • COUNTIF

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

  • エクセルでIFとCOUNTIFを組み合わせるようなことは可能でしょうか

    エクセルでIFとCOUNTIFを組み合わせるようなことは可能でしょうか? 現在エクセルを用いてデータの整理を行っているのですが、 今自分がやりたいことをどうすれば行えるのか分からず悩んでおります。 具体的には A B 1 1 1 3 2 2 2 1 1 2 1 1 といった風にデータがあったときに、Aが"1"の場合のみ Bの列をCOUNTIFを使ってCOUNTIF(B2:B7,"1"), COUNTIF(B2:B7,"2")…と求めたいと考えております。 つまりAの条件に従ってBの列をカウントするかどうかを判定したいのですが、 インターネットで調べたところIF関数ではこのような使い方ができません。 どなたかご存知の方いらっしゃいましたら教えていただけると幸いです。

  • COUNTIFの使い方

    現在、COUNTIF関数を使ってC列に数字が入ったときにB列に1,2,3・・・と項番を表示するようにしています(関数(1))。 関数(1) B4=IF($C4<=0,"",COUNTIF($C$4:$C4,">0")) この関数を応用して、C列に数字は入っていて、さらにN列またはO列に数字がが入ったときにB列に1,2,3・・・と項番を表示するようにしたいのですがうまくいきません(関数(2))。 関数(2) B4=IF(OR($N4<>"",$O4<>""),IF($C4<=0,"",COUNTIF($C$4:$C4,">0")),"") 恐らく、COUNTIF関数のところがおかしいとは思うのですが、よくわかりません。 どなたかご教授下さい。よろしくお願いします。

  • IF関数だと思うのですが、

    エクセルで以下のような a b c 2 3 ( ) 3 5 ( ) 4 2 ( ) 5 7 ( ) となっている場合に、bの列が3以上であれば a列とb列を掛けた値をC列に表示させたいのですが、 式はどうすればよいでしょうか。 宜しくお願いします。

  • COUNTIF 複数条件について

    countifを使用し、     A 1 ●●数×× 2 ●●語××     B 1 =if(countif(A1,"*数*"),"数学","") 2=if(countif(A2,"*語*"),"語学","") という式で数が含まれていれば数学、語が含まれていれば語学、とB列に表示させるようにしていますが、 現状フィルターで"数"と"語"を拾ってから式を入れています。 上記の式をつなげ、数が含まれる場合は数学、語が含まれる場合は語学と表示させる式を教えてください。

  • excelのcountif関数の使い方

    EXCEL2000について教えてください。 過去ログにCOUNTIF関数の話題はたくさんありましたので、参考にしてみたのですがうまくできません。何が悪いのでしょう? やりたいことは、A列にある日付データから、B列の日付の度数をC列に計算したいのです。      A列        B列     C列 [1] 2002/10/1 10:31  2002/10/1  度数 [2] 2002/10/1 12:05  2002/10/2  度数 [3] 2002/10/1 13:35  2002/10/3  度数 [4] 2002/10/2 15:51  2002/10/4  度数 [5] 2002/10/2 19:02  2002/10/5  度数 A列は5000~10000行になり、その行数は不定です。 B列は1ヶ月分で、手入力の日付データですので時分秒は00:00:00です。 ここでC1以下に入れる式で悩んでいます。 (A列のデータ数)-(B2以上のデータ数)-(B1未満のデータ数) ということで =COUNT(A:A)-COUNTIF(A:A,">B2")-COUNTIF(K:K,"<B1") この式を検証してみると、中央と右のCOUNTIF関数の部分がゼロになってしまい、いつも総データ数が答えになってしまいます。  どこが間違っているのでしょう? よろしくお願いいたします。

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

    エクセルIF関数について教えていただきたいのですが A    B   C   5    5 -5       -5 上記のようにIF関数を組みたいのですが Aの値がプラスならBへ表示 Aの値がマイナスならCへ表示したいのですが IF関数で表すならどう関数を組めばよろしいでしょうか?

  • =IF(COUNTIFの文字列の複数条件

    A列にある契約先にある特定の文字列が含まれていた場合、B列に1か2の値を返したいです。 A列に契約先 (株)○○、(有)○○、(同)○○、(独)○○、(財)○○、○○大学、(同)○○ B列に契約先の種類を1と2で区別して、1か2の値を返したいです。 調べた結果、IF COUNTIFだと文字列の条件は一つに限るとの事で、文字列を複数にしたい場合どのような数式で値が返せますでしょうか。 下記のような数式ではだめでした。 =IF(COUNTIF(A1,"*(株)*",A1,"*(有)*",A1,"(同)"),"1","2") ちなみにCOUNTIFSというのもだめでした。 ほかにIF関数で文字列の複数条件で1か2を返せる数式がありましたら教えてください。 よろしくお願い致します。

専門家に質問してみよう