• 締切済み

エクセルの複数列の集計

エクセル集計について質問です。 下記のように、列が複数あって、各教科ごとに集計をしたいのですが、列が複数ある場合、どの関数を使えばいいでしょうか? よろしくお願いします。       朝     昼    夜 9-12 英語 2 理科 3 国語 3 1-3 国語 1 社会 2.5 算数 1.4 4-6 社会 1.5 国語 3 理科 2 7-9 理科 1 算数 1.3 算数 2 9-12 算数 1 英語 1 算数 1

みんなの回答

回答No.3

#1のhige_082さんの回答で良いと思いますが、参考までに C8セルに =SUMIF($B$2:$F$6,B8,$C$2:$G$6) 下へオートフィル(添付図参照)

ryoko1104
質問者

お礼

できました! どうもありがとうございました!大変助かりました。

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

既出回答にように各列でSUMIFで出して、列数分だけ+で足すならすぐ思いつく。 まだまだエクセル関数は、複数列を対象にしてできる関数は少ない。 ほとんど無い。 SUMIF関数はその中でも出来るものなのですが(下記注)、その実体は 例データ A1:G5で 9月12日 英語 2 理科 3 国語 3 1月3日 国語 1 社会 2.5 算数 1.4 4月6日 社会 1.5 国語 3 理科 2 7月9日 理科 1 算数 1.3 算数 2 9月12日 算数 1 英語 1 算数 1 として、 挿入ー名前 成績ーC,E,G列 挿入ー名前 範囲ーB,D,FG列 挿入ー名前 範囲1ーB列 挿入ー名前 成績1ーC列 と名づけて、空きセルに =SUMIF(範囲,"国語",成績) でエラー =SUMIF(範囲1,"国語",成績1)で1 =SUMIF(範囲1,"国語",成績)でエラー になる。それで目的を達せられない。 ーーー 従って他の方法は、VBAでユーザー関数を作るか、VBAでやるしかないと思う。 標準モジュールに Function SUMIFX(a, b) Dim cl As Range t = 0 For Each cl In a MsgBox cl If cl = b Then t = t + cl.Offset(0, 1) End If Next SUMIFX = t End Function ーー 空きセルに =sumifx(範囲,"国語") 結果は 7 上記コード内でMsgBoxの行は、科目列の全セルを1つづつ捉えていることを確認用で、本番では削除してください。 ーーー (注) SUMIF関数で複数列を対象に出来る例として =SUMIF(D3:D9,">60",D3:F9) でD3:D9には全て数字が入っている例が解説書に挙がっている。 数字セル範囲の中から、有る数をこれる数だけ足せ、などは出来る。

ryoko1104
質問者

お礼

VBAはまだ習得していないので、関数を使用したらできました! どうもありがとうございました!

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

  A   B C  D E  F  G 1      朝      昼     夜 2 9-12 英語 2  理科 3  国語 3 3 1-3  国語 1  社会 2.5  算数 1.4 4 4-6  社会 1.5  国語 3   理科 2 5 7-9  理科 1   算数 1.3  算数 2 6 9-12 算数 1   英語 1   算数 1 として 英語=SUMIF($B$2:$B$6,B2,$C$2:$C$6)+SUMIF($D$2:$D$6,B2,$E$2:$E$6)+SUMIF($F$2:$F$6,B2,$G$2:$G$6) 国語=SUMIF($B$2:$B$6,B3,$C$2:$C$6)+SUMIF($D$2:$D$6,B3,$E$2:$E$6)+SUMIF($F$2:$F$6,B3,$G$2:$G$6) 社会=SUMIF($B$2:$B$6,B4,$C$2:$C$6)+SUMIF($D$2:$D$6,B4,$E$2:$E$6)+SUMIF($F$2:$F$6,B4,$G$2:$G$6) 理科=SUMIF($B$2:$B$6,B5,$C$2:$C$6)+SUMIF($D$2:$D$6,B5,$E$2:$E$6)+SUMIF($F$2:$F$6,B5,$G$2:$G$6) 算数=SUMIF($B$2:$B$6,B6,$C$2:$C$6)+SUMIF($D$2:$D$6,B6,$E$2:$E$6)+SUMIF($F$2:$F$6,B6,$G$2:$G$6) べたですが

ryoko1104
質問者

お礼

教えて頂いたとおり、できました! どうもありがとうございました!

関連するQ&A

  • エクセルでの集計・・・再度です

    お世話になります。 エクセルでの集計につきまして 思っていたよりも複雑でわからないため、 再度質問させていただきました。 内容 名前 教科名 順位  田中 国語  8 佐藤 算数  5 鈴木 理科  1 山田 国語  2 田中 算数  3 佐藤 算数  4 田中 国語  1 佐藤 理科  2 鈴木 算数  8 田中 理科  11 という感じで、名前・教科・順位の羅列が並んでいます。 同じ生徒がどの教科で、順位がどうであったかを集計したいのです。 ちなみに、もし可能ならば集計時に 1番、2番、3番、4番以下 という風にできればいいなと思っています。 ピポットテーブルを使用すると良いと お伺いしたのですが、この場合でも可能でしょうか? どうぞよろしくお願いします。

  • Excelでのアンケートの集計なのですが、例えば下記の場合、どういう書

    Excelでのアンケートの集計なのですが、例えば下記の場合、どういう書き方(数式・セル分け等)をすればいいのか教えて下さい  ・ 国語 理科 算数 社会 の、うち好きな教科を第1希望、第2希望で書きなさい の時、第1希望 第2希望の計は、COUNTIF で入れたのですが、ここから更に その第1希望は何人、第2希望は何人、と枝分かれする場合、集計等どう作成すればベストでしょうか?

  • データの集計・表示について

    エクセルやgoogleスプレッドシートで、下記のようなデータが入力されていたとします。 【元データ(シート)】         A B C D E F 1行目・・・ 山田 国語 英語  理科  社会  音楽 2行目・・・ 鈴木 理科 社会  英語  数学  国語 3行目・・・ 山田 数学 国語  英語  音楽  社会 4行目・・・ 山田 社会 英語  音楽  理科  数学 上記のデータが入力されているシートから、山田さんのデータのみを別のシートへ下記のように 集計?表示?するような関数ってありますでしょうか? 【作りたいデータ(シート)】 山田のデータのみのシート        A B C D E 1行目・・・国語 英語  理科  社会  音楽 2行目・・・数学 国語  英語  音楽  社会 3行目・・・社会 英語  音楽  理科  数学 希望としては、元データシートに5行・6行とどんどんデータを入力をしていく度に、 元データシートA列の名前で判断をし個人別で別シートにデータを1行目から順に並べたいです。 このような事は可能でしょうか? いろいろと調べてみましたがうまく調べられずわからなかったので、 質問させていただきました。 わかる方いらっしゃいましたら、回答をお願いいたします。

  • エクセルでの集計・・・

    いつもお世話になります。 エクセルで表を作っているのですが 集計(?)の方法が分かりません。 表の内容は下記の通りです(内容は適当です。) 教科  得点 算数  100 算数  100 算数  80 算数  80 算数  80 算数  50 という様な感じです。 算数で、各得点を何回づつ取ったかを自動で計算できる方法はありますか? 今は、並べ替えをして自分で 「100点が2回・・・80点が3回・・・50点が1回」 等と数えているのですが 人数が多くて大変です。 出来れば別のシートに集計ができればと思っています。 何か方法があれば教えていただければ幸いです。

  • アクセス クロス集計と単純集計の齟齬について

    すみません、質問させてください。 アクセス2010を使用しています。 下記のような元の表があります。 ID 試験科目  試験形式    合否(1/0)  当該科目選抜試験参加(1/0) 1  国語    タイプ1    1        1 1 国語    タイプ2    0     1 1  国語    タイプ3    1     1 2  国語    タイプ1    0        0 2 国語    タイプ2    0     0 2  英語    タイプ1    0     1 ※学生は5教科のなかから任意の科目を最低1教科、最大5教科受験しています。 ※各教科には複数の試験形式があります。(例えば国語なら、国語の中でタイプ1~3の複数の試験がある)どれか一つのタイプの試験で合格すると、次の選抜試験に参加する「権利」を得ます。 ※選抜試験参加は任意(希望した者のみ参加)です。また、複数の教科で合格していても、選抜では一人一科目のみしか参加できません。(つまり、英語と国語で合格していても、どちらか一科目の選抜試験のみにしか参加できない。合格しても参加しない者もいる) ※同一教科の複数タイプの試験を受け、タイプ1合格、タイプ2不合格で、選抜試験に参加した場合、タイプ2のレコードにおいても選抜試験参加のフラグがたっている。 このような状況で下記のような集計をしました。 1、元の表から、クエリでID、科目、当該科目選抜試験参加を抜き出し、「固有のキー」をオンにし、科目別選抜試験参加者を重複抜きで抽出した一覧(表A)を作成。  選抜試験参加者を科目ごとに単純集計(集計1)。 2、元の表から、クエリでID、科目、合否=1のみを抜き出し、「固有のキ」ーをオンにし、科目別合格者(選抜試験未参加を含む)を重複抜きで抽出した一覧(表B)を作成。 3、複数の科目で合格した学生が、選抜試験に参加したのか、したとしたらどの教科の選抜試験に参加したのかを集計するクロス表として、   表AとBのクロス集計を行ない、   行=表Aの科目名でグループ化   列=表Bの科目名でグループ化   値=表Aの選抜試験参加フラグをカウント  として実行しました。 目的は下記のような、「国語に合格した生徒のうち、国語(もしくは他の各教科)の選抜に参加した生徒は何人か」がわかるようなクロス表(表C)を作ることです。             合格した科目      国語 英語 数学 理科 社会 選 国語 10 抜 英語 50 参 数学 1 加 理科 1 科 社会 20 目 大体それらしい数字が出たのですが、表Cの斜めの列=つまり国語で合格し国語の選抜を受けた生徒の数、と、集計1で集計した数が合いません。 何が問題なのでしょうか。 長い説明ですみませんが、どうぞご教示をお願いします。 当方Access素人で、SQLというのはどこに記述すればいいのかも、よくわかっていません。 具体的な操作を含めて教えてくださいますと大変助かります。

  • Excel 二つの表を用いたデータ整理

    かなり困っています。 (1)二つのエクセル表が存在 (2)ファイル1には↓のようにデータが並んでいます    A列  B列  C列  D列    生徒A 生徒B 生徒C 生徒D 行1 国語27 国語34 国語54 算数34 行2 数学36 家庭25 算数23 理科23 行3 理科55 理科44 理科21 英語44 行4 社会87 社会33 社会32 行5 英語54  (3)ファイル2は以下のようになっています    A列  B列  C列  D列  E列        国語  算数  理科  社会 行1 生徒A 27   36   55   87 行2 生徒B  (4)要するに、ファイル1のデータから必要な数値を抽出して ファイル2のデータに移し変えたいのですが、ファイルAの中の名称とデータ数が異なる場合があることもあり、整理はコピペしかないのかと半ばあきらめています。 とはいえデータの数は4000…正直なきたいです…何かいい方法はありませんか?

  • Excel2003 エクセル ある行の範囲内で最小値の列の特定のセルの

    Excel2003 エクセル ある行の範囲内で最小値の列の特定のセルの文字を返す方法 Excelで関数を使ってセルの作成方法を教えていただけませんか?    国語  算数  理科     90    85   80 の場合80点が最小値ですので、あるセルに理科と表現したいのです。 よろしくお願いします。

  • Excelの条件書式で複数の条件を指定することは可能でしょうか?

    Excelの条件書式で複数の条件を指定することは可能でしょうか? 下記のように名簿と平均があった時に、名簿の所属クラスの平均より低い項目の背景色を変更したいです。 条件書式で無理な場合はマクロを教えて頂けると助かります。。。 よろしくお願い致します。 名簿 クラス..名前..国語..算数..理科..社会 A.......一郎....50....60....70....80 B.......次郎....40....50....60....70 A.......三郎....10....20....30....40 B.......四郎....45....62....48....90 平均 クラス......国語..算数..理科..社会 A.............60....70....80....75 B.............65....80....70....60

  • エクセルの質問です。

    エクセル2003を使用しています。 元データには   A   B(国語点数) C(算数点数) D(社会点数) E(理科点数 F(英語点) G(合計) 1 名前(1)   90        85        70       100      20    365 2 名前(2)   85        20        40       70       50    265    3 名前(3)   50        90        60       70       80    350 というデータを     A    B    C 1 名前(1)  国語  90 2        算数  85 3        社会  70 4        理科  100 5        英語  20 6        合計  365 7 名前(2)  国語  85 8        算数  20 9        社会  40 10       理科  70 11       英語  50 12       合計  265       ・       ・       ・ となるように表示していきたいのですが… ただのセルのコピーでは人が連続してコピーできませんでした。 何かいい方法があるかたはご教授ねがいます。 よろしくお願いします。   

  • エクセルの集計について教えてください

    エクセルの集計について教えてください 添付のように、A列からは入力用 A列 日付(複数月にまたがる) B列 金額 C列 項目 E列からは集計用として E列 項目 F列からは月ごとに集計できるような表を作りました 集計用は、また別途ほかのシートで参照して使用する予定です A列には、今後も次々データを足していく予定です 月単位でデータを抽出したのち、項目ごとに合計を算出したいのですが、どの関数を組み合わせればいいのかわかりません。 エクセルはほぼ初心者です ピボットテーブルを使用してもよいのですが、ほかのシートで参照できる方法を教えてください よろしくお願いします

専門家に質問してみよう