• ベストアンサー

カウント関数の応用で。

例えば、下記の様な表で表の地域の列に入力されたデータをカウントしたいのですが、主要な地区以外は、複数まとめて名前を付けて、カウントしたいのですがうまくいきません。教えて下さい。    列D   (地区名) 行1 天間 行2 久沢 行3 伝法 行4 中島 行5 沼津 行6 富士宮      列A 列B 列C 列D 列E  列F   列G 行20 天間 久沢 伝法 沼津 富士宮 富士中 富士南 行21   A21にはcountif($D$1:$D$6,A20)の関数が入っています。  「中島・本町・松岡・岩本」が入力されたら、富士中 「柳島・宮島・森下・宮下」が入力されたら、富士南 がカウントされるような関数を作りたいのですが、うまくいかないのでどなたか解かる様でしたら、教えて下さい。

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

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

D列の横に作業列をもうけて、集計したい地区単位に変換するのが一番簡単だと思います。 別シート(ここではSheet2とします)に A列 B列 天間 天間 久沢 久沢 伝法 伝法 中島 中島 沼津 沼津 富士宮 富士宮 中島 富士中 本町 富士中 松岡 富士中 岩本 富士中 柳島 富士南 宮島 富士南 森下 富士南 宮下 富士南 のように変換用のテーブルを用意します。 E列に =VLOOKUP(D1,Sheet2!$A$1:$B$14,2,0) と入力し、下にコピーします。 これで集計用の関数を countif($E$1:$E$6,A20) にすればOKです。 どうしても作業列なしにしたい、かつ同じ関数で計算したいなら、 =IF(A20="富士中",SUMPRODUCT(($D$1:$D$6={"中島","本町", "松岡","岩本"})*1),IF(A20="富士南",SUMPRODUCT(($D$1:$D$6={ "柳島","宮島","森下","宮下"})*1),COUNTIF($D$1:$D$6,A20))) ぐらいでしょうか?

maki2
質問者

お礼

色々方法があるのですね。この先、地区の追加が出るのでこの方法でやることにしました。ありがとうございました。

その他の回答 (4)

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

判りやすいために索引表を同一シートに作る説明にします。 (原データ) A1(質問ではD列だが)列に地区名 天間 久沢 伝法 中島 沼津 富士宮 中島 本町 松岡 岩本 柳島 宮島 森下 宮下 があるとします。複数出現しても結構ですがこの例では 1回しか出てません。 (索引表1)Sheet1のD1:D6に 天間 久沢 伝法 中島 沼津 富士宮 を入れます。ストレートにカウントするグループです (索引表2)Sheet1のF1:G8に 中島 富士中 本町 富士中 松岡 富士中 岩本 富士中 柳島 富士南 宮島 富士南 森下 富士南 宮下 富士南 まとめるグループです。 (関数式) B1に=IF(ISERROR(VLOOKUP(A1,$D$1:$D$6,1,FALSE)),VLOOKUP(A1,$F$1:$G$8,2,FALSE),VLOOKUP(A1,$D$1:$D$6,1,FALSE)) と入れて、この例ではB14まで複写します。 似た3つの式の中の、第3引数の1と2が大事ですので正確に。 (結果) 天間 天間 久沢 久沢 伝法 伝法 中島 中島 沼津 沼津 富士宮 富士宮 中島 中島 本町 富士中 松岡 富士中 岩本 富士中 柳島 富士南 宮島 富士南 森下 富士南 宮下 富士南 となるのでB列でカウントすれば、COUNTIFの 問題に帰着します。 #4の回答と同系統ですが、多段的検索の体裁を取っており、式において違う点があります。 索引表1,2はSheet2に作ることが出来ます。 その場合Sheet2!を添えれば良いです。

maki2
質問者

お礼

大変解かりやすく、丁寧に書いて頂き、ありがとうございました。この方法もやってみます。

  • jindon
  • ベストアンサー率43% (50/116)
回答No.3

こんなのもあります。 =SUMPRODUCT((範囲="条件1")+(範囲="条件2")+(範囲="条件3")+(範囲="条件4")) 尚、セル値を条件にすると、""は要りません。

maki2
質問者

お礼

良いアドバイスありがとうございました。参考にさせて頂きます。

回答No.2

A21=countif($D$1:$D$6,A20)では天間から富士宮までが、検索範囲で、天間が検索条件になりますよ。 いっそのこと、全地区名を入力して、各地区にデータを入れ、主要な地区以外は、複数まとめて足し算をしたらどうですか? A列に地区名、B列にデータ入力。 中島・本町・松岡・岩本をc列で足す sum(中島の行から岩本まで行を足す)

maki2
質問者

お礼

ありがとうございました。参考にさせて頂きます。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

F21=COUNTIF($D$1:$D$6,"中島")+COUNTIF($D$1:$D$6,"本町")+COUNTIF($D$1:$D$6,"松岡")+COUNTIF($D$1:$D$6,"岩本") たくさんあるなら別の方法もありますが、4つ程度でしたらこんな感じでどうでしょう。 頑張ってくださいヽ(^。^)ノ

maki2
質問者

お礼

思いつきませんでしたので、少ない個所はこの方法を使ってみました。ありがとうございました。

関連するQ&A