• ベストアンサー

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関数のところがおかしいとは思うのですが、よくわかりません。 どなたかご教授下さい。よろしくお願いします。

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

  • ベストアンサー
  • vista2446
  • ベストアンサー率46% (131/279)
回答No.7

#2です。補足に提示された数式からC列に「0」と「#N/A」を表示させたくないんだな~と読み取りましたので、IF関数をもう一つネストさせた数式を提示します。C4セル以下に =IF(ISERROR(VLOOKUP(G4,Sheet2!$H$5:$I$200,2,FALSE)),"",IF(VLOOKUP(G4,Sheet2!$H$5:$I$200,2,FALSE)=0,"",VLOOKUP(G4,Sheet2!$H$5:$I$200,2,FALSE))) B4セル =IF(AND(C4<>"",OR(N4<>"",O4<>"")),1,"") #1さんの数式 B5セル以下 =IF(AND(C5<>"",OR(N5<>"",O5<>"")),COUNT($B$4:$B4)+1,"") #2で提示した数式 G、H、I列に空白セルが存在しなければ、ISERROR関数だけで、IF関数のネストは不要になるかも。。。

tanityuu
質問者

お礼

お礼が遅くなりました。 結局自分でいろいろやったところ、 A列は =IF(AND($C4>0,$C4<>""),COUNTIF($C$4:$C4,">0"),"") B列は =IF(AND($C4>0,$C4<>"",OR($N4<>"",$O4<>"")),COUNTIF($B$3:$B3,">0")+1,"") としました。 皆様のご教授のおかげで目的を達成することができました。 ありがとうございました。

その他の回答 (6)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.6

=IF(COUNT(C4)*COUNT(N4:O4),SUMPRODUCT(ISNUMBER($C$4:C4)*((ISNUMBER($O$4:O4)+ISNUMBER($N$4:N4))>0)),"") ↑でどうでしょうか?

tanityuu
質問者

お礼

お礼が遅くなりました。 結局自分でいろいろやったところ、 A列は =IF(AND($C4>0,$C4<>""),COUNTIF($C$4:$C4,">0"),"") B列は =IF(AND($C4>0,$C4<>"",OR($N4<>"",$O4<>"")),COUNTIF($B$3:$B3,">0")+1,"") としました。 皆様のご教授のおかげで目的を達成することができました。 ありがとうございました。

  • n4330
  • ベストアンサー率24% (215/872)
回答No.5

  大体やりたい事が判りました。 =IF(AND(C4>0,OR(N4<>"",O4<>"")),SUMPRODUCT(ISNUMBER($C4:C4)*((ISNUMBER($O4:O4)+ISNUMBER($N4:N4))>0)),"") これで何とかなりませんか?  

tanityuu
質問者

お礼

お礼が遅くなりました。 結局自分でいろいろやったところ、 A列は =IF(AND($C4>0,$C4<>""),COUNTIF($C$4:$C4,">0"),"") B列は =IF(AND($C4>0,$C4<>"",OR($N4<>"",$O4<>"")),COUNTIF($B$3:$B3,">0")+1,"") としました。 皆様のご教授のおかげで目的を達成することができました。 ありがとうございました。

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.4

No.3です。 Q1. セルC4には、どういう結果が表示されているのでしょうか?数値でしょうか? Q2. セルB4には、どういう結果が表示されているのでしょうか?エラーメッセージであれば、どういうエラーメッセージでしょうか?

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.3

関数(2)は↓でいかがでしょう? =IF(C4="","",SUMPRODUCT(ISNUMBER($C$4:C4)*((ISNUMBER($O$4:O4)+ISNUMBER($N$4:N4))>0))) それから、関数(1)は↓にすべきではないかと思います。 =IF(C4="","",COUNT($C$4:C4))

参考URL:
関数(2)は↓でいかがでしょう?
tanityuu
質問者

補足

ご教授ありがとうございます。 しかし、どうもうまくいきません。 実は参照しているC4セルには下記関数(3)が入っています。 関数(3) C4=IF(ISERROR(VLOOKUP(G4,sheet2!$H$5:$I$200,2,FALSE)=""),"",VLOOKUP(G4,sheet2!$H$5:$I$200,2,FALSE)) ISERROR関数を使っているからなのでしょうか?B列にちゃんと項番をつけてくれません。

  • vista2446
  • ベストアンサー率46% (131/279)
回答No.2

B5セル以下に =IF(AND(C5<>"",OR(N5<>"",O5<>"")),COUNT($B$4:$B4)+1,"") C列じゃなくてB列の個数を返せばよろしいかと。。。

tanityuu
質問者

補足

ご教授ありがとうございます。 確かに教えていただいた関数を新規ファイルでやってみると「1」,「2」,「3」というように目的の項番をつけてくれました。 しかし、実際のファイルでやるとどうもうまくいきません。 実は参照しているC4セルには下記関数(3)が入っています。 関数(3) C4=IF(ISERROR(VLOOKUP(G4,sheet2!$H$5:$I$200,2,FALSE)=""),"",VLOOKUP(G4,sheet2!$H$5:$I$200,2,FALSE)) ISERROR関数を使っているからなのでしょうか?B列にちゃんと項番をつけてくれません。

  • n4330
  • ベストアンサー率24% (215/872)
回答No.1

  =IF(AND(C4<>"",OR(N4<>"",O4<>"")),COUNTIF(C4:C4,">0"),"") 説明 AND(C4<>"",OR(N4<>"",O4<>"") (C4に何か入ってる)さらに(N4かO4のどちらか、又は両方に何か入ってる) これで希望の結果が得られると思いますが・・・・ 一点不思議に思うのはCOUNTIF(C4:C4,">0")の文・・・ C4の中に数値があれば「1」が表示されます、ならばcountifを使わなくても「1」とすれば良いと思うのですが・・・・ =IF(AND(C4<>"",OR(N4<>"",O4<>"")),1,"") これでも同じ結果になりますヨ  

tanityuu
質問者

補足

早速の回答ありがとうございます。 ご教授頂いた関数を試してみました。 この関数でやると必要な場所に「1」は表示されるのですが、 B列には「1」,「2」,「3」・・・と"1"ずつ増えていってほしいのです。 説明が足りずに申し訳ありませんでしたが、 B5=IF(AND(C5<>"",OR(N5<>"",O5<>"")),COUNTIF($C$4:C5,">0"),"") としています。 これだと、"1"ずつ増えていくのですが、例えばC4~C6に数字が入っていてC5だけN5に数字が入っていない場合だと、 B4=1、B5=""、B6=3と数字が飛んでしまいます。 これをB4=1、B5=""、B6=2と表示させたいのです。 いろいろ言って申し訳ありませんが、お知りでしたらご教授下さい。

関連するQ&A

専門家に質問してみよう