• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:前回のエクセルの問題の続きです。)

エクセルで試験解答の集計方法を教えてください

このQ&Aのポイント
  • エクセルで試験の解答の集計をしている場合、A列とB列の連続した数字のセット個数を数えたい場合があります。
  • 特定の数字の連続個数をカウントする方法や、複数の列の連続個数を別々にカウントする方法をご教示いただけますか?
  • 現在使用している式では、連続が混ざり合っている場合に正しい結果が得られない問題があります。

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

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

何度も失礼。 1~5と言うのが課題番号で、課題ごと、列ごとに2連投が何回、3連投が何回かを出したいと言う事ですね。 で、4連投以上は無いと言う前提ならこんな感じでどうでしょう。 添付の図を見てください。質問文に提示の4行しかない例では2連投と3連投が混じった例が出来ないので、勝手に5行の例を作っています。 ・A8:A12、A16:A20に1~5の数値を入れておきます。 ・B9に↓の式を入れ、B9:D13にコピー  =SUMPRODUCT(1*($A9=B$2:B$5)*(B$2:B$5=B$3:B$6))-B17*2 ・B17に↓の式を入れ、B17:D21にコピー  =SUMPRODUCT(1*($A17=B$2:B$4)*(B$2:B$4=B$3:B$5)*(B$2:B$4=B$4:B$6)) 同じ数が2回続いた2連投の回数と3回続いた3連投の回数を求め、2連投回数-3連投回数×2 を単独で2連投の回数としています。

ATAMAbakanako
質問者

お礼

何度も回答ありがとうございます。ほんとすいません。(汗) 回答欄を増やすことによって、細分化するという発想がありませんでした。 やはり、発想の転換というのは、とても大事だと痛感させられました! 本当に何度もありがとうございます!

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

その他の回答 (3)

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.4

貼付画像のデータを使ってExcel 2013で検証してみました。 当方で検証した結果を画像で添付します。 B24=SUMPRODUCT((B2:B20=B3:B21)*(B2:B20<>B1:B19)*(B2:B20<>B4:B22)) B25=SUMPRODUCT((B2:B20=B1:B19)*(B2:B20=B3:B21)) B24:B25を右へオートフィルコピーしました。 数式の考え方は配列同士比較して数値化すれば良いことになります。 B2=B3であり、且つ、B2<>B1で、且つ、B2<>B4のとき2連続になる。 B2=B1であり、且つ、B2=B3のとき3連続になる。(4連続以上は無い)

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 とてもシンプルで、わかりやすいので、すごく参考になり助かります! さっそく活用してみて、自分の目的と合うかやってみたいと思います! ご回答ありがとうございます。

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

前回にVBAで回答したものです。コードの1行に誤りの箇所があったので、訂正させてください。 ーー 訂正後 実行前に初めにSheet2に列見出しをA1:C1に、各々「2連  3連 4連」 と入れておく。 もっとデータが多いときはMsgboxの行がうるさいので削除してください。 ーーー Sub test01() Worksheets("Sheet2").Range("A2:AX100").Clear 'Exit Sub '--- Worksheets("Sheet1").Activate lc = Worksheets("Sheet1").Range("ax2").End(xlToLeft).Column '最右列 MsgBox lc lr = Worksheets("Sheet1").Range("a1000").End(xlUp).Row '最下行 MsgBox lr Worksheets("Sheet1").Activate '---- For c = 1 To lc '各列列繰り返し rn = Cells(2, c) For r = 2 To lr '行繰り返し If Cells(r, c) = Cells(r + 1, c) Then '---同じ場合 rn = rn & Cells(r, c) Else '--違う場合 If Len(rn) > 1 Then MsgBox rn '連の最終結果表示 rx = Worksheets("Sheet2").Cells(1000, Len(rn) - 1).End(xlUp).Row + 1 MsgBox rx & "G" Worksheets("Sheet2").Cells(rx, Len(rn) - 1) = rn End If rn = "" '連を消去 '次の行の値を設定 rn = rn & Cells(r + 1, c) End If Next r '--行の最下データ処理後 rn = "" '連を消去 Next c End Sub ーー 新しい質問の画像データでテスト 結果 参考 2連 3連 22 111 44 11 33 44 44 11 44 33 55 11 55 22 55 44 11 44 22 22 11 11 55 22 22 33 今回結果と元データを粗くチェック済み。

ATAMAbakanako
質問者

お礼

前回に引き続き、ご回答ありがとうございます。 なんとなく、こうなるんだろうなぁ。と、漠然としたものぐらいしか、現段階の自分ではわからないので、一つ一つ調べて、この内容を活用させていただきたいと思います! 2度わたり、本当にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

=SUMPRODUCT(1*(A1:A4<>A2:A5)*(A2:A5=A3:A6)) 先ほどの回答と同じです。考え方としては、列ごとに「上のセルとは値が違い、下のセルとは値が同じ」セルの数を数えています。

ATAMAbakanako
質問者

お礼

さっそくご回答ありがとうございます。 申し訳ありません。私の説明不足です。(汗) 2連投 課題1 4 4 5 1 3 課題2 1 6 3 4 3 3連投 課題1 1 2 0 1 1 課題2 1 1 0 0 0 という感じで、分けたいのです。 これで式を組んでみたら、2連続も3連続も一緒にカウントをしてしまいました。 やはり、このように、別でカウントをするとしたら、関数では無理なのでしょうか? 私の分量力、説明力の無さでご迷惑をお掛けして申し訳ありません。

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

関連するQ&A

  • エクセルで連続している数字の分類をする。

    エクセルにて、   A B C 一  二 2 3 5 三 2 5 4 四 1 5 4 五 5 5 2 六  このように、試験の解答の集計をしており、A,B,C列のそれぞれで、連続した数字のセット個数を数えたい。その中で、A列の2が連続している2連続と、B列の5が3連続している物とを、分けてカウントしたい、また、その二つをかぶらせずに別のものとしてカウントしたいのですが、どのようにしたらいいか、アドバイスを頂ければ嬉しいです。(2連続と3連続のカウント数を別のところで集計してます。) (3つ以上は連続したものがありません。2連続か、3連続のどちらかです。 しかし、数字のパターンが1~5の選択問題の為、5パターンあります。) ちなみに、今使っている物は ROUNDDOWN(SUMPRODUCT((A2:A5<>"")*SIGN((A2:A5=A3:A6)+(A2:A5=A1:A4)))/2,0) という式を使って数えているのですが、B列の5のように3連続が2つきてしまうと、数が2つ増えてしまい、切り捨てできずに1増えてしまう状態です。 お手数ですが、ご回答のほどよろしくお願いします。

  • エクセル関数 カウントの関数

    A列は「氏名」B列は「出身県」C列は「生年月日」のデータがあって、 20代・30代・40代はそれぞれ何人かカウントしたいときの計算式(2008年3月1日時点において) 20代の場合であれば (ROUNDDOWN(DATEDIF(【生年月日】,"2008/3/1","Y"),-1)=20)  =SUMPRODUCT(___________)の式に組み入れるだけ。 生年月日のデータ範囲が 【$C$2:$C$100】なら =SUMPRODUCT((ROUNDDOWN(DATEDIF($C$2:$C$100,"2008/3/1","Y"),-1)=20)*1) ★以前上記を教えていただきました、今回はこれにB列「出身県」別 をカウントするとき、どういう計算式にすればよいでしょうか。おしえてください。 ちなみに「出身県」は数字です。例えば、東京は1000としています。 出身県のデータ範囲が【$B$2:$B100】で、 =if($B$2:$B100=1000,SUMPRODUCT((ROUNDDOWN(DATEDIF($C$2:$C$100,"2008/3/1","Y"),-1)=20)*1),false)としてみましたが、 カウントできません。よろしくお願いします。

  • excel グループごとにデータの種類数を数えたい

    こんばんは。お世話になります。 Excelで、データの種類数をかぞえたいのですが、いくつかのグループがあり、そのグループごとのデータの種類数をカウントしたいと考えています。 (データは数字のみ、空白もありますが、空白はデータ数として採用しない) ~データ~   A         B    1 グループ     データ 2   a          10 3  a           5 4   a 5   b           4 6   b           4  7   b            8  b            9  c           ・ 10  c           ・ ・    ・           ・ ・   ・ ・   ・ ~集計(求めたい結果)~ グループ    データの種類数 a           2       b           1 c           ・   ・           ・  ・           ・ 単純にB列のデータ種類を数えるには、 {=SUMPRODUCT(IF(B2:B・・・<>"",1/COUNTIF(B2:B・・・,B2:B・・・),0))} でできるというところまでは分かったのですが、「グループ別に」というところでつまづいています。 なお、Excel2007です。 恐縮ですが、ご教示願います。

  • 《エクセル2000》SUMPRODUCT関数、この式のどこがいけないのか…

    こんにちは。 A列が1であり、B列とC列に共に数字が入っている(空白でない)ものをカウントしたいと思い、以下の関数を書きました。 =SUMPRODUCT((A1:A50=1)*(B1:B50<>"")*(C1:C50<>"")) ですがこの式ですと、「B列とC列が共に空白なもの」の個数が返って来てしまいます。 「<>」が怪しい気がするのですが、具体的に何がいけないのでしょうか? また、欲しい数字を出すようにするにはどうすればいいのでしょうか。 よろしくお願いします…

  • エクセル SUMPRODUCT関数について教えてください

    エクセルで作成した表から ○○かつ●●のデータ個数を求めたく、 SUMPRODUCT関数を こちらで調べておりましたが どうしても解決しない部分があります。 どうぞ よろしくお願いいたします。 下記8桁数字は、日付です。 カウントしたい数は、B列(終了)が、A1セルに入力された年月かつ、区分(C列)が「A」の数です。 =SUMPRODUCT((LEFT(B2:B100,6)=A1)*(C2:C100="A")) こちらで、『B列=A1セル かつ C列="A"』のみのカウントは出来たのですが、 終了延長(D列)が空欄でない場合は、D列日付データの方をカウントする。 早期終了(E列)が空欄でない場合は、D列・B列よりも E列を優先し、カウントする。という条件を付けたいのですが、 Sheet1 A1セルに「200810(数を調べたい年月を入力)」 (開始)  (終了)     (区分)  (終了延長)  (早期終了)  A列     B列      C列     D列      E列 20061001   20081001   A    -        - 20070926   20081020   A    -        - 20071102   20081009   A    20081201    - 20080101   20081013   B    -        - 20080208   20081010   A    -        20080210 ・・・ この場合、「2」となるようにです。 IF、OR関数あたりかな と考えておりますが、SUMPRODUCT関数のどの部分で条件付ければ良いか解りません。 説明下手で大変申し訳ございませんが、ご助力いただければ幸いです。 

  • 連続するローソク足をカウントしたい エクセル

    だいぶ探しましたがわかりませんでした。みなさま宜しくお願いします。 データーは下記のとおりです。 セルA2=始値 セルB2=終値 セルC2=(A2-B2) 目的:-(あるいは+)数字の連続数のカウント C列には計算後の数値をいれました。 ただ、休日により一切値動きのない連続データもはいってまして、まずそれを削除したいのです。 くわえて、所々にも値動きのないデーターがありますのでそれも削除したいです。 少なくとも10分×6×24×一年分ありますので、手作業ではとても…。 そのうえで C列の+数字(正)-数字(負)それぞれの数 正または負の連続回数と連続回数別の数(例えば2連続が何回、3連続が何回みたいな) お手数おかけしますが、どなたさまかよろしくお願いいたします。

  • エクセルのCOUNTIFについての質問です

    エクセルに関して質問です COUNTIFがうまく使えず困っているので助けてほしいです。 下記のような表を作成し、別シートでカウント結果を反映させたいのですがうまくいきません    A   B   C  1 11:00 13:00 2:00  2 10:00 15:00 5:00  3 12:00 14:00 2:00 A・B列には数値を、C列には(B列-A列)の数式を入力し書式設定h:mmで表記されるようにしてあります。 別シートでC列の2:00の数をCOUNTIFで数えたのですが帰ってくる数字が明らかに少なく計算が合いません。 このような場合どのように対処すればちゃんとカウントされるのでしょうか? ご回答宜しくお願い致します。

  • 前回の続きです。自動集計のやり方

    今日携帯から投稿したのですが、画像が添付できなく再度登録しました。 そのため、前回の回答を下さった2人の方お礼出来なくてごめんなさい。 シート1のA列に部署(a,b,c…)、E列にAorBか選択し、それが12か月分あります。画像では1枚になっていますが右の表2つは最後の集計ページです。 例)シート1(左表)でdかつBを選択→集計ページ(右表)のH20で1と個数をカウントしたい。 どのような関数を使えばよいでしょうか。countifs関数だと思うのですが参考本は全て入力された状態での解説なのでわかりませんでした。汗 宜しくお願いします。

  • Excelで数式入り範囲の特定の答えの個数を知りた

    ある1列の範囲(A2~A51)の中に0から4迄の数字がランダムに入っています。その中で、0が入っているセルなら、その次に何の数字が入っているのかを、B2~F51まで集計しています。例えばB2の数式は=IF($A2=0,OFFSET($A2,1,0),"")です。 本題はその、B2~F51の中で、0から4迄数字別の出現数を知りたくて、I2のセルに、=COUNTIF($B$2:$B$51,"0")を入力したのですが、エラーが出ます。 多分B2~F51までは数字でなく数式が入っているためにカウントできないと思いますが、これをカウントできるようにしたいのです。 ややこしいので画像を添付していますので、参考にして下さい。 よろしくお願いします。

  • エクセル関数をもちいてセルを検索するには?

    お世話になります。 早速ですが、以下のようなデータがあるとします。     A    B    C 1   1    100 2   0    200 3   1    10 4   1    20 5   0    30 6   0    300 7   0    10 8   1    30 9   0    5 10  0    10 A列には0か1が、B列にはランダムな数字が並んでいるとします。 これに対し、C列にはA列の0の数を数えて、仮に5個目のB列の値を返したいです。 C1ならA1から0の数を数えて5個目、つまりB9(300)の値を返したい。 C2ならA2から0の値を数えて5個目、同じくB9(300)の値、 C3ならC3から0の値を数えて5個目、つまりB10(10)の値を返したい。 最終的には5個めではなく、任意の数字にしたいのですが、 このような値を返すにはどのような関数をもちいたらよろしいでしょうか? COUNTIFやINDEXでできるのではと思いましたが、 カウント数が指定数を満足させる条件がわからず行き詰りました。 どうかご指導お願いいたします。

このQ&Aのポイント
  • 初期設定の際に使用しているMac OSバージョンが表示されない
  • パソコンもしくはスマートフォンのOSはMac OS 12.3.1
  • 接続方法はまだ決めていないが無線LANを希望しており、電話回線はひかり回線です
回答を見る

専門家に質問してみよう