• ベストアンサー

エクセルで合宿所利用団体数を自動集計したい

下記のような合宿所利用日誌の集計について、以前別の観点から質問した者です。今回は新しい質問で…(質問内容は表の下) 4月1日 ○○高柔道部  10 人 高校  世田谷区  引率あり 4月2日 ○○高柔道部   8 人 高校  世田谷区  引率あり 4月2日 ◇◇大空手道部 15 人 大学  他県    引率なし 4月3日 ○○高柔道部   8 人 高校  世田谷区  引率あり 4月3日 ◇◇大空手道部 15 人 大学  他県    引率なし 4月4日 ○○高柔道部   8 人 高校  世田谷区  引率あり 4月4日 △△中野球部  26 人 中学校 大田区   引率あり この表をエクセルで入力し、「月毎の利用団体数」を自動集計したいのです。(ピボットテーブルを使わない方法を知りたいのです) それで、関数を使って「ユニークなデータ数をカウントする」方法として検索していたら、 =COUNT(INDEX(1/(MATCH(A1:A100,A1:A100,)=ROW(A1:A100)),)) の方法を見つけました。(ただし、式の意味はどうにもわかりません…) さて、しかし、上の式を用いて、「引率ありの団体はいくつだったか」というような複数条件を加えていく方法がわかりません。 分かる方がいらっしゃれば、どうか教えてください。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

◆「利用団体数」 =COUNT(INDEX(1/(MATCH(B1:B10,B1:B10,)=ROW(A1:A10)),)) ★本例では、「3」になります ◆「引率ありの団体はいくつだったか」 =COUNT(INDEX(1/(MATCH(B1:B10&"引率あり",B1:B10&G1:G10,)=ROW(B1:B10)),)) ★「引率あり」は、○○高柔道部と△△中野球部の「2」になります ◆「4月の引率ありの団体数」 =COUNT(INDEX(1/(MATCH(B1:B10&"引率あり"&"200804",INDEX(B1:B10&G1:G10&TEXT(A1:A10,"yyyymm"),),)=ROW(B1:B10)),)) ★本例では、データが4月のみですから上と同じ「2」になります

bansorei
質問者

お礼

ご回答どうもありがとうございます。 さらっと3例も…試してみましたがちゃんと計算できました。 (アホなので、「人」の字の列の処理が変で、始めうまくいかなかったのですが、データを修正してちゃんといくようになりました) おかげさまで仕事が進みそうです。本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

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

#4です。質問の意図を誤解してすみません。 SUMPRODUCTでも、もう1つG列で「引率あり」の条件を加えると出ると思う。 ーー マニアックな、関数でやらずとも DCOUNT関数でも出来そう。 ーーー そのほかに 第1行に1行挿入。項目見出しを「団体」・・と入れる B1:F8が(当月分を見出しも含め範囲指定) 団体 人数 種別 所在地 引率 ○○高柔道部 10 高校 世田谷区 引率あり ○○高柔道部 8 高校 世田谷区 引率あり ◇◇大空手道部 15 大学 他県 引率なし ○○高柔道部 8 高校 世田谷区 引率あり ◇◇大空手道部 15 大学 他県 引率なし ○○高柔道部 8 高校 世田谷区 引率あり △△中野球部 26 中学校 大田区 引率あり となるが ーーーーーー データ フィルタ フィルタオプションの設定 「指定した範囲」を指定 リスト範囲 B1:F8 検索条件範囲 D14:D15    引率    引率あり 抽出範囲(どこでも良いが先頭行に「団体」・・・と入れておくこと。) B16:F21 「重複するレコードは無視する」を指定 OK で B16:F19に 団体     人数 種別 所在地 引率 ○○高柔道部 10 高校 世田谷区 引率あり ○○高柔道部 8 高校 世田谷区 引率あり △△中野球部 26 中学校 大田区 引率あり 3 となり、件数は多い場合は=COUNTA(B17:B20) ででます。少ない場合は数える。 ーーー データが2か月以上に連なっている場合は 5月分でやるときは、5月の最初データの前に1行挿入し、項目見出しを複写して行うか、 日付条件を2つ(月初と月末)を(上例ならE15:F16に)加えてフィルタオプションを行う。

bansorei
質問者

お礼

丁寧なご回答どうもありがとうございます。 フィルタオプションですか! 実はそれもまだ使ったことが無く…初めてでした。 そんな考え方もあるんですね! 大変参考になりました。 また何かありましたらよろしくお願いします。

すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

>月毎の利用団体数」を この表は月をまたいでデータが入力されるのか? 利用団体とは?○○高柔道部などが団体か? 質問には、独りよがりにならぬよう、はっきり書くこと。 ーーー 2(3)条件の件数COUNTでは? 毎日出る質問のパターンです。 SUMPODUCT関数利用が定石です。 日付で月初日より大 日付で月末日より小 団体名に等しい の3条件です。 フィルタオプションででも団体名の行リストを作る。 例データ 4月1日 ○○高柔道部 10 人 高校 世田谷区 引率あり 4月2日 ○○高柔道部 1900/1/8 人 高校 世田谷区 引率あり 4月2日 ◇◇大空手道部 15 人 大学 他県 引率なし 4月3日 ○○高柔道部 8 人 高校 世田谷区 引率あり 4月3日 ◇◇大空手道部 15 人 大学 他県 引率なし 4月4日 ○○高柔道部 8 人 高校 世田谷区 引率あり 4月4日 △△中野球部 26 人 中学校 大田区 引率あり A10以下に ○○高柔道部 3 ◇◇大空手道部 2 △△中野球部 0 B10の式は =SUMPRODUCT((A1:A7>=DATE(2008,4,1))*(A1:A7<=DATE(2008,4,3))*(B1:B7=$A10)*1) データの関係上、わざと4/1-4/3までにしてあります。 B12,B13の式を複写 結果 上記

bansorei
質問者

お礼

早速のご回答どうもありがとうございました。 また、配慮不足の点、ご指摘いただき、どうもすみませんでした。 やはりうまくこちらの意図が表現できておりませんで、大変失礼いたしました。 実は私の欲しかったのは、 「ある月の、月間の、利用団体の数=延べ利用数ではなく、固有団体名(ユニークな団体名)が何種類あるか」ということなのです… 例えば、「5月には、12団体が利用した」ということが自動的に分かること。でした。 今後は、独りよがりにならないようにきちんと伺いたいと思います。 またお世話になることがありましたら、どうかよろしくお願いします。

すると、全ての回答が全文表示されます。
  • keirika
  • ベストアンサー率42% (279/658)
回答No.3

#2です。 補足です。 式を入力した後、最後にEnterだけを押さずに Ctrl+Shift+Enterを押してください。 式の入力に成功すると式が{}で囲まれます。

すると、全ての回答が全文表示されます。
  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

=COUNT(INDEX(1/(MATCH(B1:B100,B1:B100,)=ROW(B1:B100)*(F1:F100="引率あり")),)) でどうでしょうか。

bansorei
質問者

お礼

早速のご回答、どうもありがとうございました。 ctrl+shift+enterを試してみたところ、数値が、2 とでました。 おお!!! と思ったのですが、3にならないとだめなんですよね。 何か間違ってしまったようなので、考えてみます。 しばらく考えてみて、分からない時はまたできれば教えてもらいたいのですが… とにかくがんばってみます。結果は#3の方に書きますね。 つたない私の文章から、意図を組んでくださってありがとうございました。

bansorei
質問者

補足

うあ、恥ずかしい! 本当にすみません。私の頭計算がそもそもまちがいで… 2でいいんですよね!ということは、これで解決だったわけです。 できてないみたいな言い方でホントに失礼いたしました…申し訳ありませんでした。 あらためて、本当にありがとうございました! また、何かありましたら、 何とぞ何とぞよろしくお願いいたします!

すると、全ての回答が全文表示されます。
noname#75528
noname#75528
回答No.1

countifの関数を使うと、件数をもってこれます。 =COUNTIF($F$2:$F$7,"引率あり") 1.$F$2:$F$7  :数えたい件数の設定してあるセルの範囲を設定   $は、他のセルにコピーをしても、変わらないという意味です。 2."引率あり"  :数えたいセルの値を設定 という方法でどうでしょうか。

bansorei
質問者

お礼

早速のご回答、どうもありがとうございました。 ただ、いろいろやってみたものの、実はまだお答えいただいた式をどう使うのかがわかりません… 例えば、 =COUNTIF((INDEX(1/(MATCH(A1:A100,A1:A100,)=ROW(A1:A100)),)),"引率あり") ではないですよね?(こんなレベルです…) そもそも、 =COUNT(INDEX(1/(MATCH(A1:A100,A1:A100,)=ROW(A1:A100)),)) の仕組みがわかってないので、どうしてよいやら… もし、補足いただければ、大変ありがたいです。 どうかよろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A