• ベストアンサー

ある行に、

ある行に、 1 3 7 8 10 11 12 13 14 17 18 19 20 23 28 と数字が入力されています。 「7,8」は数値が2個つながっているので「2連」が1セット、 「10,11,12,13,14」は数字が5個つながっているので「5連」が1セット、 「17,18,19,20」は数字が4個つながっているので「4連」が1セット、 「1」「3」「23」「28」は単独なので「1連」が4セット といった具合にカウントしたいのですが、 Excelの関数でもVBAでもかまいません。 何か良い方法があったら教えてください。

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

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 次の様な方法は如何でしょうか。  今仮に、基となる数字が入力されている行を1行目だとして、3行目を作業行として使用して、6行目にカウントした数値を表示するものとします。  まず、B3セルに次の数式を入力して下さい。 =IF(B1="","",IF(B1=MIN(1:1),1,IF(A3<0,1,A3+1))*IF(C1=B1+1,1,-1))  次にB3セルをコピーして、基となる数字が入力されている全ての列の3行目のセルに貼り付けて下さい。  この時、基となる数字が入力されている全ての列に貼り付けられてさえいれば、その他の列にも貼り付けてしまったとしても問題ありません。  次に、A5セルに次の数式を入力して下さい。 =COLUMNS($A:A)&"連"  次に、A6セルに次の数式を入力して下さい。 =COUNTIF(3:3,-COLUMNS($A:A))  そして、A5~A6を範囲選択コピーして、基となる数字が連続している最大の連の数だけ貼り付けて下さい。  以上で完成です。

tatsukawa3
質問者

お礼

ありがとうございました。 無事解決しました。

関連するQ&A