• 締切済み

エクセルの関数について

お世話になります。エクセルのことで教えてほしいことがあります。 学校アンケートの集計についてです。保護者の人にアンケートに答えてもらいます。ですが、その家庭に複数の児童(きょうだい)がいても、アンケート用紙は1枚のため、学年とその結果をまとめて書いてもらい、入力表もそれに沿ったものになっています。 アンケートの結果は、各自で入力してもらいます。それを集計するのが自分の仕事です。 具体的に何をしたいかというと・・・。 たとえば、その家には3人のきょうだいがいるとして、D20のセルには6(年生)、この子の様子は「4」だとすると、D21に「4」と入力します。 その下に4年生の子がいるとしたら、D22に「4」と入力し、その子の様子が「5」ならば、D23に「5」と入力します。 これを、クラス全員(だいたい35名ほど)分、入力してもらいます。 これを学年ごとにまとめたいのです。6年生の「5」は3人、6年生の「4」は2人・・・という風にです。 IF関数とか使えばいいのでしょうか??? どなたか、分かる方、教えてください。よろしくお願いします。

みんなの回答

回答No.6

No.5です。 No.5の回答後に、質問の意図とは異なる回答を投稿してしまったことに気付き運営に削除依頼をしましたが、「利用規約に反する投稿以外の削除は行っておりません」と返答がありましたので、注意のため新規投稿にてその旨を投稿しておきます。失礼しました。

回答No.5

質問のケースだと、SUMIF関数を使って集計することもできます。 この場合、入力する表の設計をあらかじめ変更しておいた方がよいでしょう。Excelでは、ワークシート関数を使うにしろVBAでプログラムを組むにしろ、ベースとなる表を考えて設計し問題を簡単にすることが重要です。 以下は一例です(「入力表」シートと「集計」シートに分かれていると想定します)。 --- 【作業1】「入力表」シートを設計する (1) D20に「学年」という見出しを作ります (2) E20に「様子」という見出しを作ります 質問に記載された「たとえ」の数値を見出し以下のセルに入力すると次のようなリストが完成するイメージです。 学年 | 様子 6  |4 4  |5 --- 【作業2】「集計」シートを設計する (1) セルA1に「学年」という見出しを作ります (2) セルA2からA7までに、学年に対応する「1」から「6」の数値を入力します (3) セルB1に「様子」という見出しを作ります (4) セルD1に「シート名」という見出しを作ります (5) セルE1に「1」を入力、続けてF1に「2」、G1に「3」、H1に「4」、I1に「5」J1に「6」を入力します --- 【作業3】「集計」シートに関数を入力する (1) セルE2に次の関数を入力します =IF($D2="", "", IF(ISERROR(INDIRECT(CONCATENATE("'",$D2,"'","!A1"))), INDIRECT(CONCATENATE("'",$D2,"'","!A1")), SUMIF(INDIRECT(CONCATENATE("'",$D2,"'","!D21:D70")),E$1,INDIRECT(CONCATENATE("'",$D2,"'";"!E21:E70"))))) (2) (1)の関数を、オートフィル機能などでJ列の51行目までコピーします(行は任意に指定可能です) (3) B列に次の関数を入力します 2行目:=SUM(E$2:E$51) 3行目:=SUM(F$2:F$51) 4行目:=SUM(G$2:G$51) 5行目:=SUM(H$2:H$51) 6行目:=SUM(I$2:I$51) 7行目:=SUM(J$2:J$51) --- ■使い方(値の入力→集計) 「入力表」シートのシート名が「入力表_A」「入力表_B」となっていると想定します。実際のシート名は任意につけることができますが重複しないようにしてください。 <値の入力> (1)「入力表」シートのセルD21以下(D21, D22, D23...)に「学年」を入力します(保護者が入力) (2)「入力表」シートのセルE21以下(E21, E22, E23...)に「様子」を入力します(保護者が入力) <集計> (3)「集計」シートのセルD2以下に(D2, D3, D4...)に集計の対象としたいシート名を入力します (4)「集計」シートのセルB2からB7に集計結果が表示されます なお、添付画像は集計する「入力表」シートの値を以下にした際の「集計」シートをキャプチャしたものです。 ●「入力表_A」シート 学年 | 様子 6  |4 5  |3 ●「入力表_B」シート 学年 | 様子 1  |5 3  |2

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.4

アンケートは ・1枚ごと別シートになっているの? ・D列、E列、……と横に続くの? ・それとも1枚ごと別ブック(シート1枚のみのブック)? この辺が判らないと詳細な回答がつかないと思います。

  • xpz3
  • ベストアンサー率63% (53/84)
回答No.3

どのような表になっているかわかりませんが、学年と様子のセルを列で別けて「countifs」関数を用いれば簡単です。 例えば「A列は学年を入力する列」、「B列は様子を入力する列」とした場合は下記の式を用いる事で算出可能です。 下記は6年生の「5」をカウントする関数です。 =countifs(A:A,6,B:B,5) ※countifsは複数の指定した条件を満たすものをカウントする関数です。 ※同じ列に「学年」と「様子」がある状態ではカウント出来ませんのでご注意ください。 以上、参考にしてみて下さい。

  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.2

本来は、ExcelのVBAで組むべきですが、 私、VBAは不得意ですので、 「VBScript」で組んでみました。 以下のプログラムを、テキストエディタかメモ帳に貼り付け、 全角2つのスペースを1つのタブに一括置換します。 メモ帳の場合、「Ctrl+h」で置換の窓を出します。 次に、上の窓に全角スペース2つを入力します。 テキストエディタなどですと、「タブ」を「\t」で表現できますが、 メモ帳では、直接タブを入力できないので、 メモ帳内の一番下の何もない行で1回、タブキーを押し、 そのタブを「Ctrl+x」して、先ほどの置換の窓の下のところで 「Ctrl+v」をして、タブを入力し、 「すべてを置換」ボタンをクリックします。 「ファイル」→「名前を付けて保存」から 適当な名前を付けますが、その際、 拡張子は必ず、「.vbs」でなければなりません。 (名前は漢字を含み、何でも構いませんがUnicode文字はダメです) 適当なフォルダを作り、目的のエクセルファイルと 「~.vbs」を放り込みます。 その状態で「~.vbs」ファイルをダブルクリックすると 結果がエクセルファイルに書き込まれ、終了し、 「Finished!」と画面に表示しますので、 「OK」を押して、エクセルファイルを見てみてください。 Option Explicit Dim a, b, c(6, 5), d, e, i, j, r, v, w, x, y, z Set v = CreateObject("Scripting.FileSystemObject") Set w = v.GetFolder(".") Set x = CreateObject("Excel.Application") x.Application.DisplayAlerts = False x.Visible = False For Each a In w.Files   b = LCase(v.GetExtensionName(a.Name))   If b = "xls" or b = "xlsx" Then     Set y = x.Workbooks.Open(w & "\" & a.Name)     Set z = y.Worksheets(1)     r = z.Range("D1").End(-4121).Row     For i = 1 to 3       For j = 2 to r         d = z.Cells(j, i * 2 + 2).Value         If d <> "" Then           e = z.Cells(j, i * 2 + 3).Value           c(d, e) = c(d, e) + 1         End IF       Next     Next     For i = 1 to 6       For j = 1 to 5         z.Cells(i + 35, j * 4 - 3).Value = CStr(i) & "年生"         z.Cells(i + 35, j * 4 - 2).Value = "様子" & Cstr(j)         z.Cells(i + 35, j * 4 - 1).Value = c(i, j)       Next     Next     y.SaveAs(w & "\" & a.Name)     y.Close     Set z = Nothing     Set y = Nothing   End If Next x.Quit Set v = Nothing Set w = Nothing Set x = Nothing MsgBox("Finished!")

  • angel2015
  • ベストアンサー率21% (126/590)
回答No.1

countif関数を使用すれば 指定したセルに特定の数字が入っている場合のみ、カウントして合計を出すことが出来ます

関連するQ&A

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

    こんにちは。 エクセルでアンケートの集計をしているのですが、分からないことが出てきたので 教えてください。 設問が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で集計

     1~3年の生徒に、マークシート(選択肢4択)でアンケートを行いました。読み取りは下図のようになります。これを各学年集計して表とグラフを作りたいのですが、どんな方法をとればよいでしょうか。できるだけ簡単な方法を教えて下さい。  以前、設問数が少ないときは、各設問結果をソートして、データ→集計→データの個数、とやりましたが、設問数が多いので、この方法ではとても無理です。  また、集計結果が出て、表やグラフを作る際に、集計結果の値をコピーして貼り付けようとすると、非表示のいらないものまで、だらだらと張り付いてしまうのですが、これを防ぐにはどうしたらよいでしょうか。以上、質問2点、お願いします。 学年 第1問 第2問 第3問 第4問 第5問・・・・ 3    4    4    4    1    1 3    2    2    3    2    2 3    1    2    3    2    2 3    1    2    1    3    2 3    1    3    3    3    2 3    3    2    2    2    2 3    2    3    3    3    3

  • エクセルで楽に入力するには

    アンケート集計でのことです。アンケートの回答数が多いことと回答者の数が多く集計するための入力が煩雑となっており、入力を簡素化する工夫を調べております。 エクセルの一つのセルにのみ条件値を入力すると、集計表の欄に数字を記録させる方法。 例(アンケート回答者番号1968番が問題1に5を選択)   A     B    C    D・・・・・AX 1 1968         問1   問2 2  1    1968番   5    1 3  5    1969番   3    2 ↑ 1968が条件値(回答者番号) 1も条件値(問番号) 5がカウント集計する値 B~AX列が集計表です。 どうしたものか分からなかったのでIF関数で検討してみました。、C2にIF関数(if(and(a1=1968,a2=1),a3,""))を用いると、A1~A3の入力で「5」と数字が入りますが、A1~A3の値を変えると数字が空白になります。 A1~A3の3つのセルのみに入力するだけで、集計する範囲B1~AX3000に数字が出てくるようにしたいのです。 限定的な例えとなっておりますが、何分アドバイスをお願いします。

  • エクセルの関数について、質問させて頂きます。

    エクセルの関数について、質問させて頂きます。 現在カウントイフ関数を使ってアンケート集計用のシートを作っています。 そのアンケートの複数回答の設問の集計結果を出す際に、 Aという縦軸の1つのセルに りんご りんご,みかん,ぶどう みかん,ぶどう ぶどう このような形で出てきているデータを りんご2件 みかん2件 ぶどう3件 以上のように集計したく、 =COUNTIF(A2:A50000,AN9) ※AN9にはりんごと入力されています 上記の式で計算をしているのですが、 実際に出てくる結果は りんご2件 みかん1件 ぶどう1件 上記のように、最初の部分だけしか読まれずに 結果が出されてしまいます。 ~~を含むといった形で指定出来ればと思うのですが、 調べても結果が見つからないので、どうかお力をお貸しください。 よろしくお願いいたします。

  • アンケート集計をエクセルで行いたいのですが…

    アンケート集計をエクセルで行いたいのですが… エクセルについてほとんど知識がないためお願いします。 アンケートパターン10種(質問項目34個、5件法、逆転項目有) この集計結果を1枚のシートに表示させたいのです。 色々調べていき分かったこととして 別シートにて集計し、結果シートにて集計シートを読み込み ifを使うんだろうなー程度しか分からず… いまいち、何を打ちこめがいいのか分かりません。 よろしくお願いします(m´・ω・`)m

  • エクセルでIF関数で表示した集計方法

    エクセルで条件式=IF(AND(C7<>"",D7=""),"1","")と言うものをK7に表示しています。 このK7を抽出して集計しようとフィルタをかけて下の方に =SUBTOTAL(9,K5:K30) と入れましたが 計算してくれません。 if関数で入力した数値を集計する方法はありますでしょうか? ご教授よろしくお願いします。

  • EXCEL97の関数で

    関数を入れても、結果が出ずに入れた式がそのまま表示されてしまうことがあります。 例えば (1)A1に10/1と入力し、B1に =A1+1 と入れたとき、10/2 と表示されずに式がそのまま出る (2)LEFT関数を関数パレットを使って入力し、パレットの結果のところには正しい結果が表示されているのに、ENTERを押すと、=LEFT(D8,2) と表示されてしまう、などです。 家のEXCEL2002では問題なく表示されるし、問題のほうも、以前はちゃんとした結果が出ていましたし、普通のif関数などは、問題なく表示されます。 どうしたらよいのでしょうか?

  • Excelの関数について

    Excelの関数について教えてください。 C1に50、D1に30、E1に=SUM(A1:D1)、B2に=E1-SUM(A1:B1)、が入力されています。 このB2の計算式を、「もしB1:C1のどちらか片方(もしくは両方)に値が入力されているときはB2の計算式の結果が返ってくる。B1:C1のどちらも空欄のときは「#N/A」が返ってくる。0は入力有りとみなす」というようにしたいです。 IF関数にISBLANK関数を入れてみたんですが、片方に入力有りでも「#N/A」が返ってきてしまいます。 =IF(ISBLANK(B1:C1),NA(),E1-SUM(A1:B1)) ISBLANK関数じゃダメだったんでしょうか? どういうふうに変えればいいんでしょうか? すみませんがどなたか教えてください。

  • エクセルの関数複数条件にあう集計のしかた

    困っております。。教えてください。 アンケートの集計表を作りたいのです。 例えば、下記のようなアンケート結果がありまして 10代満足は1、10代その他は1といったような集計ができる関数を作りたいのですが SUMPRODUCT=((A1:A4=”10代”)*(B1:B4=”満足”)) といったような式をつくりました。ですが、B列の回答が複数ある場合 30代満足は1、30代その他は1と集計したいのですが 上記関数では集計できません。回答結果は複数の組み合わせがあり2つだったり、3つだったりもします。(1つのセルの入力されています。) 回答結果を1つ1つのセルにわけないとダメでしょうか? 分ける場合はまたよい方法はありますでしょうか? わかりにく説明で申し訳ないのですが、どなたかご教示いただけると幸いです。。 よろしくお願いいたします。     A  B 1 10代 満足 2 20代 不満 3 10代 その他 4 30代 満足、その他

  • EXCELでアンケート集計

    EXCELでアンケートの集計をしているのですが、 数値を入力したら、文字に変換できる関数はないでしょか? 例 1と入力したら男性となり、2と入力したら女性に変換されるように設定したいのですが。 CHOOSE、T等をIFと組合わせて挑戦してみたのですが、 どうしてもうまく出来ません。 出来ないなら入力規則を使いますので、出来ないと回答下さい。

専門家に質問してみよう