• 締切済み

excelの、count ifかと思うのですが

列C5からC1000の各セルに、トマトA、りんごC、バナナD、トマトA、メロンCなどと、日本語とアルファベットが入っています。 重複を避けて、数を数えるなら、 =SUMPRODUCT(1/COUNTIF(C5:C1000,C5:C1000)) 末尾がAの数を数えるなら、 =SUMPRODUCT(1/COUNTIF(C5:C1000,"*A")) かなと思うのですが、重複を避け、末尾がA(B、C・・・)の数を数えるにはどうしたらいいでしょうか。例えば上記5つ(トマトA~メロンC)だとA=1,C=2という結果を得たいのです。

みんなの回答

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

例データ A1:A10  実質データA2:A10 商品 トマトA りんごC バナナD トマトA メロンC メロンC トマトC 柿C ぶどうC ーー 件数を出すセルに =SUM((IF(ISERROR(SEARCH("*C",A2:A10)),0,1))*(COUNTIF(OFFSET($A$2,0,0,ROW(A2:A10)-1,1),A2:A10)=1)) と入れて、SHIFT,CTRK,ENTERの3つのキーを同時押し。 配列数式。 ーー 結果5 ーー 式でやっていることは A2:A10までに、わたって、 「Cを含む」 AND(且つ) 「第2行からその行までその名が初出」 の行の数を足しこんでいる。

noname#37681
質問者

お礼

ありがとうございます。私には難しすぎるので、今回はあきらめがつきました。もう少しexcelの実力がついたら試してみます。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

以下の式でC列で末尾が"A"の重複しない文字列の数がカウントできます 質問ではC5:C1000の範囲となっていますが、MATCH関数で行番号を取得するため、あえてC1:C1000の範囲にしています。 =COUNT(INDEX(1/((MATCH(C1:C1000,C1:C1000,0)=ROW(C1:C1000))*(RIGHT(C1:C1000,1)="A")*1),)) もし「C1:C4に末尾にA,B,C…があるため、範囲はC5:C1000にしたい」ということであれば以下の式に変えても同じ結果になります =COUNT(INDEX(1/((MATCH(C5:C1000,C5:C1000,0)=ROW(C5:C1000)-4)*(RIGHT(C5:C1000,1)="A")*1),))

noname#37681
質問者

お礼

ありがとうございます!勉強になりましたが、人に説明する自信がないので、今回は半分手作業で、もう少し簡単な式でやろうかなと思います。私がやりたいことをそのまま式にすると難しいということがわかっただけでも、参考になりました。

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

DSUM?

参考URL:
http://pc.nikkeibp.co.jp/pc21/tech/excel36/index.shtml
noname#37681
質問者

お礼

さっそくありがとうございます。見てみましたが、DSUMで私のやりたい式を作るのは難しそうです。

関連するQ&A