• ベストアンサー

ExcelでのCount関数(?)について

OKWave内を色々と検索しましたが、「これは!」と思う回答に当たらなかったため、質問させていただきます。 (似たような質問は既出です。応用力がなくてスミマセン。) Excel2003で、(できれば)Countif関数を使用して、会社名ごとの全問正解者数(下記の例だと「点数」が「6点」)の人の数を数えられないでしょうか? (「|」はセル区切りのつもりです) Sheet1 会社名|氏名|回答1|回答2|3 |4 |5 |6 |点数|備考 たらば|田中| 1 | 3 | 5 | 3 | 4 | 2 | 5 | まつば|鈴木| 2 | 3 | 5 | 3 | 4 | 2 | 6 |●○×× たらば|高橋| 2 | 2 | 1 | 3 | 4 | 2 | 3 |□◆△△△ まつば|佐藤| 2 | 3 | 5 | 3 | 4 | 2 | 6 | Sheet3 会社名|参加人数|全問正解| たらば|  2  |  1  | まつば|  2  |  1  | (ちなみに、Sheet2は、Sheet1の正誤判定に使用しています) Sheet2の正誤判定はIF文、Sheet3の参加人数はCOUNTIF文で作成してあります。 できるだけ、Sheet3の「全問正解」の行に直接関数を記入して、「たらば社の全問正解者数は1(人)」と表示させたいのですが・・・。 良い方法がありましたら、お教えくださいますようお願いいたします。

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.5

#01です >演算結果は『#NUM!』になってしまいます。 の理由は範囲指定にA:Aを使用したからです。 SUMPRODUCT関数では列単位の範囲指定はできません。 (A2は"たらば"にするのは問題なし) 複合条件は以下になります =SUMPRODUCT((Sheet1!$A2:$A5={"たらば","まつば"})*(Sheet1!$I$2:$I$5=6)*1)

michbird
質問者

お礼

おぉぉっっ!!! すごい、綺麗に設定ができました! 列単位の範囲指定はできないのですね。ご教授ありがとうございます。 本当に感謝です。どうもありがとうございました!!!

その他の回答 (4)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

No3です。 次のような方法でどうでしょうか。 =SUMPRODUCT(("たらば"=Sheet1!$A$2:$A$5)*(Sheet1!$I$2:$I$5=6)+("まつば"=Sheet1!$A$2:$A$5)*(Sheet1!$I$2:$I$5=6))

michbird
質問者

お礼

図々しいお願いにも丁寧にお答えいただき、本当にありがとうございます。 (Sheet1!$I$2:$I$5=6)が2つあるのが気になってしまったので検討してみた結果、 =SUMPRODUCT((("たらば"=Sheet1!$A$2:$A$5)+("まつば"=Sheet1!$A$2:$A$5))*(Sheet1!$I$2:$I$5=6)) でうまく希望のものができました!! 本当にありがとうございました!! # ("たらば"=Sheet1!$A$2:$A$5)を("たらば"=Sheet1!A:A) としてしまうと、エラーが出てしまうのですね。(列指定はできない?) それだけが残念でした。 でも、とても助かりました! もっと勉強するようにガンバリマス!

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

シート3のC2セルに=IF(A2<>"",A2&"社の全問正解者数は"&SUMPRODUCT((A2=Sheet1!$A$2:$A$5)*(Sheet1!$I$2:$I$5=6))&"(人)")で如何でしょうか。 ※表範囲はご質問の通りとしていますので、調整して下さい。

michbird
質問者

お礼

早速のご回答、ありがとうございます。 私の質問の仕方が悪くて申し訳ありません。表示は「○○社の~」というのは特に必要ではなく、人数だけを表示できれば良かったのでした。 そのため、 =SUMPRODUCT(("たらば"=Sheet1!$A$2:$A$5)*(Sheet1!$I$2:$I$5=6)) と入力しましたところ、できました!! ("たらば"に変更したのは、ANo.1に記載した理由の通りです) どうもありがとうございます。 ところで、ずうずうしく再度のお願いなのですが、 上記で("たらば"=Sheet1!$A$2:$A$5)を"たらば"と"まつば"などの複数条件にすることは可能でしょうか? もし、お分かりになりましたらお教えくださいますようお願いいたします。

  • syou_ta85
  • ベストアンサー率57% (23/40)
回答No.2

関数一発というわけにはいきませんが sheet1の社名の左、もしくは備考の右に =CONCATENATE(社名,点数)あるいは=社名&点数の計算式を入れます。 すると社名に点数が連結された値がでますので(たらば6など)、その列を対象に「たらば6」「まつば6」でcountifでいかがでしょうか

michbird
質問者

お礼

早速のご回答、どうもありがとうございます。 なるほど、新しく列を作成すればそのような手もありますね! ただ、できましたら新たに列を作成せずに行ないたいと考えておりまして・・・・。 できなかったらお教えいただいた方法を使いたいと思います。 どうもありがとうございました。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

Sheet3の「たらば」がA2セルにあるとき、A4セル(たらば社の満点の人数)は以下の式になります =SUMPRODUCT((Sheet1!$A$2:$A$5=A2)*(Sheet1!$I$2:$I$5=6)*1) A5(まつば社の満点の人数)はA4をコピーしてください

michbird
質問者

補足

早速のご回答、ありがとうございます。 =SUMPRODUCT((Sheet1!$A$2:$A$5=A2)*(Sheet1!$I$2:$I$5=6)*1) の「$A$2:$A$5」のところには列全体(A:A)を、「=A2」のところには"たらば"を入力したいのですが、 演算結果は『#NUM!』になってしまいます。 文字列を直接指定するのは無理なのでしょうか?

関連するQ&A

  • EXCELで偏差値の出し方(関数)

    エクセルでテストの偏差値を出したいのですが、どの関数式を用いたらよいのでしょうか? 分かっているのは、 自分の点数、(正解率) 学年の平均点、(正解率)、人数 だけです。 これで偏差値はでますか? 学年全員の点数も必要ですか?

  • COUNTIF関数について

    タイトルの件についてご助言をお願いします。 エクセル表でいくつかシートがあって、例えば各シートの同じセル番号(例えば3枚のシートのA1のセルとして)にある”○”の数を集計したいとき、COUNTIF関数で次のように入力しました。 =COUNTIF(sheet1:sheet3!A1,"○") ところが、VALUEエラーが出て、集計してくれません。同じシート内でCOUNTIFで”○”の数を計算するのはすんなりできています。(例えば、=COUNTIF(A1:A5,"○"))この関数ではシートごとの集計はできないのでしょうか?ほかの関数を使うのでしょうか?集計する方法をご存知の方ご教示ください。

  • エクセル関数について

    エクセルの関数について質問です。 (見づらいですが添付ファイル参照) シート1のAさんの4月度の点数が98だった場合に シート3の対応表に沿った点数をシート2のAさんの 4月度に表示させたいのですが・・・ シート2のB-3に入る関数がわかりません。 おそらくIF、VLOOKUPを使うと思うのですが・・・ シート1は入力シートとして使い、シート2は結果を 表示するシートとして、年間を通して使用します。 回答をお願いします。

  • エクセルでの関数の活用方法について

    エクセルを使って,「ひらがな3文字の言葉あてゲーム」を作るとします。(例えば、”ヒントは果物”など予めヒントが与えられているとして、あるセルに「りんご」と入力すると、「1文字目」「2文字目」「3文字目」が別の3つのセルに分離して表示され、さらに、また別の3つのセルが、その言葉の1,2,3文字目それぞれの正誤の判定を表す。というものです。各文字の判定の方法は、文字も位置も正しければ、「正解」、文字は含まれているが位置が間違っていれば「おしい」、どちらでもなければ「残念」になるようにします) 「りんご」が正解としたとき、  解答欄              1文字目  2文字目   3文字目  みかん   み  か  ん  (1)残念   (2)残念    (3)おしい  りんご   り  ん  ご   (1)正解   (2)正解    (3)正解 となるようにしたいです。 RIGHT,LEFT,MID,IF,ORの5つの関数を使ってこのような判定を表す仕組みを作るには、(1)、(2)、(3)それぞれのセルにどんな式を入力すればいいでしょうか? 解答欄に「みかん」と入力したときに、 み か ん  と分離して表示させるのにRIGHT,LEFT,MID関数を使う、というところまでは分かったのですが、そのあとが分りません。 よろしくお願いします!  

  • EXCELの関数で・・・

    受験者の試験の点数がセルに入力されています。 A列にA試験の点数が B列にB試験の点数が C列にC試験の点数が 入っています。 A試験が35点以上なおかつ、B試験が35点以上なおかつ、C試験が70点以上であるの人の数を数えるにはどういった式を入力すればよろしいのでしょうか? COUNTIF関数を使うのだと思うのですが、条件を組合すことがうまくできず困っています。 分かる方教えてください。よろしくお願いします。

  • 関数を使った月計の出し方

    エクセルを使ってカルチャースクールの参加者名簿を作成しています。 シート1の内容は講習日の日付(TODAY()+1)と名簿です。 いつも講習前日に作成し、参加予定者には○を、欠席予定者には×を入力し、COUNTIF関数で出席者と欠席者の合計人数を出しています。 シート2の内容は、1ヶ月の参加者総数(日付ごとに)です。 シート1は毎日更新し、上書き保存しています。 (データ保存でなく、プリントアウトをして保存してるんです) シート2にはいつも手打ちで入力するのですが、関数を使って自動的に(シート2には入力しなくて良い方法で)シート1の出席者と欠席者の合計人数を入力する事は出来るのでしょうか。 Today関数とIF関数を使ってシート1の合計人数をシート2へ自動入力する方法を考えたのですが、この方法だと日付が更新される毎にシート2のデータが消えてしまいます。 コピーして値を貼り付ける事も出来るのですが、効率の良い方法は無いかと思い質問させて頂きました。 わかりづらい説明で申し訳ありませんが宜しくお願いします。

  • Excelの関数について

    Excelの関数に教えてください。 シートA 工場名 地域 従業員数 金額の列があります。 シートBに地域(3地域しかありません)に該当する 工場のカウントを集計します。 1地域につき、下記のカウントをしたいのです。 売上が500万以上で従業員数1000人以上 売上が~500万未満で従業員数1000人以上 売上が1~100万未満で従業員数1000人以上 売上が500万以上で従業員数300~999人 売上が~500万未満で従業員数300~999人 売上が1~100万未満で従業員数300~999人 売上が500万以上で従業員数300人未満 売上が~500万未満で従業員数300人未満 売上が1~100万未満で従業員数300人未満 INDIRECTやCOUNTIFを使えばできるような気がするの ですが、うまくできません。 分かる方教えてください!

  • EXCELでのCOUNTIF関数について。

    EXCELでCOUNTIF関数を使って色々試してみたのですが、思ったようにできなくて教えていただきたいです。。 協力者100人に回答項目が「いる」「少しいる」「ほとんどいない」「まったくいない」といった質問紙調査を行いました。質問は50問で全て同じ回答項目でできています。 そこで       問1(列:A)  問2(列:B)     「いる」  38人   43人   ・・・ 「少しいる」  23人   11人             ・             ・     のように問ごとに回答項目人数の合計を出す場合は 問1(列:A) 『=countif(a1:a100,"いる")』 『=countif(a1:a100,"少しいる")』        ・        ・ のように一つ一つ入力していくしかないのでしょうか? また問2以降も『=countif(b1:b100,"いる")』… のように一つ一つ入力するしかないのでしょうか? 説明がうまくできなくてわかりづらい文章になってしまってすみません。。よろしくお願いします。

  • EXCELでの重複データカウント方法について(過去問読みましたがわかりません)

    いつもお世話になっております。excel97の関数に関してです。 過去問を検索し、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=118918において、 質問:会社名のデータが1万件あります。 その中には、同じ会社名が重複しているものがあります。 そこで、重複しているデータは1つのものとしてカウントし、全部で何件の会社が存在するかカウントする方法はあるでしょうか? 回答:関数でやるとすると。。。。 データが、A1~A10に入っているとします。 =SUMPRODUCT(1/COUNTIF(A1:A10,A1:A10)) とA11に数式を入力します。 これではいかがでしょうか?? 解説 COUNTIF関数でそれぞれの会社の数をカウントし、 SUMPRODUCT関数で配列の積をもとめます。 というのがあり、未熟者の私は理屈はよく分からないまま、この式でやってみたあと実際に数えてみたのですが、いつも正解数より1多くなってしまうのですが、この式の最後に-1を付ければいいのかな? と思ったのですが、いかがでしょうか?

  • 条件を指定して範囲指定をできるエクセル関数はありますか?

    関数でCOUNTIFがありますが、この関数では自分が指定した範囲の中から条件にあうデータの個数を数えられます。でもその範囲指定自体を別の関数等を利用して自動的に(毎日ではなく)範囲指定したいのですが教えていただけませんでしょうか?  具体的には、 12/29 +1000 12/29 -1000 12/29 +1000 12/29 +3000 12/30 +5000 12/30 +2000 12/31 0 12/31 -2000 12/31 -2000 といったデータの場合に、別シートに下記のような日付だけのシートが存在します。COUNTIFを使用して上記データすべてを選択すればそれぞれの日のプラスのデータ数、マイナスのデータ数は計算可能ですが、各日のデータ数がまちまちで毎回下記表の右欄にCOUNTIF関数をうちデータの選択をせずに自動的に各日だけのプラス、マイナスの各々のデータ数を数えられるように範囲を指定できる関数はありますでしょうか? また関数のほかに方法はありますでしょうか? 12/29 12/30 12/31

専門家に質問してみよう