• ベストアンサー

Excelで連続数字をカウント

1~3までの数字がA列にランダムに入力されています。 例) A -- 3 2 2 1 2 1 3 2 2 別のシートに、「1」「2」「3」と縦にそれぞれ行を分け、横列にはそれぞれの連続回数(1,2,3,4,5,6,7,8・・・) を入力させたいです。 「1」の1回が⚪︎⚪︎回、2連続が⚪︎⚪︎回、3連続が⚪︎⚪︎回・・・ 「2」の1回が⚪︎⚪︎回、2連続が⚪︎⚪︎回、3連続が⚪︎⚪︎回・・・ 「3」の1回が⚪︎⚪︎回、2連続が⚪︎⚪︎回、3連続が⚪︎⚪︎回・・・

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

添付図: A2以下に元の1,2,3が並んでいる B2に =IF(A2=A3,INT(B3))+IF(A1=A2,1.1,1) と記入、カンマ区切りの書式を取り付けてから、下向けにコピーする D2以下に1,2,3を記入 E1以右に連続回数を1,2,3…と記入 ご利用のエクセルのバージョンが不明のご相談なのでエクセル2007以降を使い、 E2に =COUNTIFS($A:$A,$D2,$B:$B,E$1) と記入、右に下にコピーして完成。 もちろん実際には、B列は別にここじゃなく別シートでも邪魔にならないX列とかにでも作成します。

その他の回答 (3)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.4

何かおもしろい方法が出ないかと思って見てたけど…… A1:A100セルにデータがあるとして B2セルから下方向に「1」「2」「3」……と連番 C1セルから右方向に「1」「2」「3」……と連番 ■C2セル =SUM((FREQUENCY(ROW($A$1:$A$100),IF($A$1:$A$100<>$B2,ROW($A$1:$A$100)))-1=C$1)*1) Ctrl + Shift + Enterで確定 縦横方向にオートフィルコピー

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

補助列を使用しないで表示するなら、範囲をずらしたOUNTIFS関数を利用するのが良いかもしれません。 1回(E2セル)下方向にオートフィルコピー =COUNTIFS($A$1:$A$19,"<>"&$D2,$A$2:$A$20,$D2,$A$3:$A$21,"<>"&$D2) 2回連続(F2セル) =COUNTIFS($A$1:$A$19,"<>"&$D2,$A$2:$A$20,$D2,$A$3:$A$21,$D2,$A$4:$A$22,"<>"&$D2) 3回連続(G2セル) =COUNTIFS($A$1:$A$19,"<>"&$D2,$A$2:$A$20,$D2,$A$3:$A$21,$D2,$A$4:$A$22,$D2,$A$5:$A$23,"<>"&$D2)

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

関数で処理するには処理途中の記憶のため作業用の列が必要になります。 Excel 2010で貼付画像のような検証を行いました。 Sheet1のA列に提示の模擬データを設定しました。 Sheet2のF列に作業用のセルを設定し、F2へ次の数式を設定して下へコピーしました。 =IF(Sheet1!A1=Sheet1!A2,SUM(F1,1),1) B1からD1セルは数値の1から3ですが表示形式で「0"回"」のようにユーザー定義をしています。 B2セルに次の数式を設定して右と下へコピーしました。 =COUNTIFS(Sheet1!$A:$A,$A2,$F:$F,B$1)

関連するQ&A