• ベストアンサー

進路希望の志望別人数

中学校の教師をしております。 3年生の進路希望を集計しているのですが、以下のように希望をとって入力しています。    公立第一希望 公立第二希望 私立第一希望 私立第二希望 A男   101    102    103    104 B男   102    201    501    105              ・              ・              ・ 学校名は、コードを振って整理しています。上の数字は、コード番号です。 そこで、希望ごとに人数を集計したいのですが、高校に振ったコードが200以上もあるため、   (1)希望のある学校のみ、抽出してカウントしたい   (2)公立第一、公立第二、私立第一、私立第二それぞれで希望している人数をカウントしたい          第1希望     第2希望    A校(101)   4         1        B校(102)   0         3 Countifでは行数が増えすぎて使いにくい。DCOUNTでも作業が面倒走なので・・・。 いい方法がありましたら、是非教えていただきたいのです。 よろしくお願いします。     

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

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

ピボットテーブルで各希望ごとの集計ならできそうです 添付図参照

yokochin07
質問者

お礼

ありがとうございました。 まさに、自分がやりたかったことです!ピボットテーブルも試してみたのですが、設定の方法が間違えていたんですね。 本当に助かりました!感謝します。

その他の回答 (4)

noname#204879
noname#204879
回答No.5

質問を理解するのにお示しのようなサンプル表は必須ですが、書いたからには矛盾しないようにお願いしたいものです。回答者に対してそのくらいの気遣いはしてください。 最初の表では「公立第一希望」に102があるのに、2番目の表では「B校(102)」が0となっています。「何じゃこりゃ!」です。 それはさておき、ピボットテーブルで作成したものが下記のようになればよろしいのでしょうか?尤も、これを得るためには最初の表を加工するか、根本的に作り直す必要がありますが。 データの個数/志望校     優先順 公私         志望校    1    2 総計 公          101     4    1   5            102     1    3   4            201     3    4   7            202     1    1   2 私          103     3       3            104         3   3            105     1    2   3            501     2    2   4            502     3    2   5 総計               18   18  36

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

ごめんなさい。シート2でのC2セルへの入力の式は次のようにしてください。 =IF($B2="","",COUNTIF(Sheet1!B:B,$B2))

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

COUNTIF関数でどうして行数が増えて困るのでしょう。 シート1にお示しの第1の表があるとします。 A2セルから下方に氏名が、B2セルから下方に公立第1希望が、C2セルから下方に公立第2希望が・・・・ シート2にお求めの表を作るとしてA2セルから下方にA校などの名前が、B2セルから下方にコード番号が、C1セルからF1セルまでには公立第1希望・・・私立第2希望までの文字が入力されているとします。 C2セルには次の式を入力しF2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグすればよいでしょう。 =IF(B2="","",COUNTIF(Sheet1!B:B,$B2))

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! すでに回答は出ていますが・・・ 他の方法の一例です。 無理矢理関数を使ってやってみました。 学校コードに基づいて第1希望・第2希望を集計するようにしています。 尚、学校コードを抽出する際に重複を避けるために↓の画像のように A・B列を作業列とさせてもらっています。 (作業列が目障りであれば、数式を入れた後に、非表示にしてみてください。) A3セルに(配列数式になります) =IF(COUNTA($E$3:$H$1000)>=ROW(A1),INDEX($E$3:$H$1000,IF(MOD(ROW(A1),COUNTA($E$3:$E$1000))=0,COUNTA($E$3:$E$1000),MOD(ROW(A1),COUNTA($E$3:$E$1000))),INT((ROW(A1)+1)/COUNTA($E$3:$E$1000))),"") という数式を入れていますので、この画面から数式をコピー&ペーストした後に、F2キーを押すか、数式バー内を一度クリックして 編集可能にします。 そして、Shift+Ctrl+Enterキーを押してみてください。 数式の前後に{ }マークが入り配列数式になります。 そして、B3セルに =IF(COUNTIF($A$3:A3,A3)=1,ROW(A1),"") という数式を入れ、A3・B3セルを範囲指定した後に、 B3セルのオートフィルハンドルで下へずぃ~~~!とコピーします。 とりあえず1000行まで対応できる数式にしていますので そのくらいまでコピーしてもかまいません。 そして、K2セルに =IF(COUNT($B$3:$B$1000)>=ROW(A1),INDEX($A$3:$A$1000,SMALL($B$3:$B$1000,ROW(A1))),"") L2セルに =IF($K2="","",COUNTIF(E$3:E$1000,$K2)+COUNTIF(G$3:G$1000,$K2)) とし、L2セルの数式をM2セルまでオートフィルでコピーします 最後に、K2~M2セルを範囲指定し M2セルのオートフィルハンドルでこれまた、下へずぃ!ずぃ~~!っと コピーすると↓の画像のような感じの表になります。 (学校コードのみ参照し、学校名は無視しています) 尚、学校コードは元データの左上から新出順に表示されますので、 ちょっと、希望とは食い違うかもしれませんね。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。 そして、たぶん画像が小さくて判りづらいと思います。 どうも長々と失礼しました。m(__)m

yokochin07
質問者

お礼

ありがとうございました。 配列数式は難しくて、避けて通っていたところです。 勉強しなければいけませんね。 貴重な時間を割いていただいて、ありがとうございました。

関連するQ&A

  • ACCESS2000でDCount関数の使い方

    ACCESS2000で更新クエリの質問です。 先日同様の質問をさせていただきましたが、その後うまくできないところがあったので再度質問させていただきました。 内容は、フィールドの値のカウントを集計し、更新クエリを使用してデータを更新するという内容です。 前回の質問でDCount関数を用いて下記のとおり実行するとできるとのことでしたが、条件が複数ある場合どのように記述すれば いいのかを教えて下さい。 条件は、 (1)年月 =Aテーブル.年月 (2)コード=Aテーブル.コード (3)区分 =Aテーブル.区分 <こんな感じで実行しようとしたのですがうまく動きません> UPDATE Bテーブル SET" カウント数1 = DCount('区分','Aテーブル','[A年月]=[B年月] And [Aコード]=[Bコード] And [A区分]='001'') カウント数2 = DCount('区分','Aテーブル','[A年月]=[B年月] And [Aコード]=[Bコード] And [A区分]='002'') やりたいことは下記のとおりです。Aテーブルを集計しBテーブルの個数にAテーブルの個数の合計値を更新する。 <Aテーブル> A年月  Aコード A区分      200807  9991   001 200807  9991   001 200807  9991   001 200807  9991   002 200807  9991   002 <Bテーブル> B年月  Bコード Bカウント数1  Bカウント数2 200807  9991        0       0 ↓↓↓更新後 <結果:Bテーブル>   B年月  Bコード Bカウント数1  Bカウント数2 200807  9991        3       2              ↑       ↑    (Aテーブルの区分='001'  (Aテーブルの区分='002'     を集計した結果)       を集計した結果)

  • エクセルで時間帯の人数

    エクセルに A B C 1名前 8:00 17:00 2名前 8:00 18:50 と50人分の入退場が入力されています 別枠に 17:00までいた人の人数 18:00までいた人の人数 18:30 19:00 と出したいのですが countifで作ると 18:00までとすると 18:50に退場した人の人数が カウントされません。 詳しい方教えて下さい!

  • Excelでアンケート集計の関数について教えてください。

    初めて質問します。よろしくお願いします。 アンケートの集計で、複数の条件でカウントする方法を探しています。 COUNT,COUNTIF,DCOUNT,FREQUENCY,SUMPRODUCTなどで試してみましたが、範囲などの指定が悪いのか、エラーばかりが出ます。 集計内容は回答と年齢のみです。   A | B   回答|年齢 1 ○ | 25 2   | 18 3 ○ | 28 4 ○ | 30 5   | 21     :     : とあり、カウントしたい条件は回答の○の個数なのですが、なおかつ10代、20代、30代で数字を出さなければならない場合は、一番有効な関数はどれになりますでしょうか。 よろしくお願いします。

  • Excelで、出勤人数の集計方法は?

     現在、私の手元に工場の作業日報のデーターベースがあります。  いつ、誰が、どんな作業を、何時から、何時まで行っていたかというデーターが約半年分、行数にして1万5千行ほどあります。    このデーターベースから、日付毎の出勤人数を集計したいのですが、集計やピポットテーブルを使用しても上手く往きません。  A列に日付、B列に作業者名、C列以降に作業名や時間が入力されているのですが、一人が一日に複数の作業を行った場合、同じ日付に同じ作業者名が幾つもダブって入力されています。  集計やピポットテーブルを使用しても、例えば同じ日付に同じ作業者名が3回登場すると、1とカウントせず、3とカウントしてしまいます。  このように、データーの個数を集計するのではなく、データーが何種類有るかを集計する方法は無いのでしょうか。詳しい方、どうかご教授下さい。  では。

  • EXCELで工場別人数を出したい(VBA使用で)

    ファイル2のSHEET1に社員名簿で B2からB1200に社員番号順ですので工場名(16社)がバラバラにあります。B1200は、日々かわります。入社、退社があるためです) ファイル1のSHEET1に集計表で A3からA18までに工場名があります。 B3からB18に、各工場別の人数を表示させたいのです。 ファイル1のSHEET1の例    A    B 1 東京工場 345 2 大阪工場 256 3 長崎工場 125 現在は、COUNTIF関数で行なっていますがファイルを立ち上げたときに 自動で処理がしたいのです。 ファイルを呼び出すまでは出来たのですが… 力を貸して下さい。宜しくお願いします。

  • エクセルのCOUNTIF関数とANDの組み合わせについて

    お客さんのデータ集計で、D5からD100にある値が50以上かつ60未満の件数をだしたいのですがDCOUNTを使わずにCOUNTIFとANDを使って次のように入力しましたがTRUEと表示されるだけで、カウントできません。 =and(countif(d10:d100,">=50"),countif(d10:d100,"<60")) COUNTIFでは無理なのでしょうか? どなたかご指導頂けないでしょうか。

  • エクセルでのアンケート集計

    こんにちは。 エクセルでアンケートの集計をしているのですが、分からないことが出てきたので 教えてください。 設問が20問ほどあるアンケートで、A~T列に設問1から20。 縦にアンケート結果を入力していきました。     A      B      C     設問1 設問2 設問3      1     1     2       3     2     2       2           1     複数回答は不可。ただし、当てはまるものがないときは 空白になるので、空白のセルもあります。 A列には回答者の学年が入っています(1~3) 全体の集計はcountifでできたのですが、学年別の数も調べることになりました。 Aが1でBに2と記入した人数をカウントするにはどうしたら良いでしょうか? 集計が記入されたシートを変更することができず、A列を学年別に並び替えて countifの範囲を学年別にすることはできません。 どうかお力を貸してください。

  • Excel関数を使い 人数/人数 と表記したい

    Excelで名前を記入して出欠を取りたいと思い関数を使い 出欠を取りたい総人数(変動あり) A=COUNTA($C$9:$C$18) 出席者の「〇」の数 B=COUNTIF(D9:D18,"〇") B/Aと一つのセルに表記させたいので =COUNTIF(D9:D18,"○")/COUNTA($C$9:$C$18) と関数を入れますが どうしても約分されてしまいます。 約分されない方法があるのならば教えていただけないでしょうか?

  • エクセルの大文字・小文字別のカウント

    エクセルでCountifを使って、A・a・B・bというように、大文字と小文字を区別してカウントしようと思うのですが、いい方法はないでしょうか?

  • 成績と性別毎の人数分布を集計するSQL文は?

    SQL文で成績と性別での人数分布を求めるクロス集計関数が出来ず困ってます。 サンプルとしては 学年 性別 評価(ABC) 1年 男  A 1年 女  A 1年 男  A 1年 男  B 2年 男  B 2年 女  C 欲しい出力としては各サンプル毎の人数です。 1年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価 2年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価 3年 男-A評価,男B評価,男C評価,女A評価,女B評価,女C評価 ・ ・ ・ という具合です。 以前は SELECT COUNT(*) AS 分布人数, 性別, 成績 FROM 成績 GROUP BY 年齢, 性別, 学年 HAVING 学年 = @がくねん ORDER BY 年齢,成績 というSQL文で1学年毎に抽出していました。 クロス集計で1つのSQL文で出力したいのですがいかがでしょうか?

専門家に質問してみよう