• ベストアンサー

エクセルに関する質問です。

エクセル2007です。 例えばある列に上から1から1000まで数が並んでいるとします。 1 5 8 9 10 15 19 28 …みたいな感じで等間隔(1 2 3 4 5 みたいな) ではありません。 この時、絶対値5(5の大きさで、5個のセルずつという意味ではありません)の間隔で、その間に何個のセルがあるかを数えたいのですができますか? 上の例の場合だと順に 2個 4個 2個 2個 0個 1個 となるのですが…。 説明が分かりにくいですがよろしくお願いします!!

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

  • ベストアンサー
  • nine999
  • ベストアンサー率44% (512/1140)
回答No.1

>2個 4個 2個 2個 0個 1個 条件がいまいち安定していない気がします。 5のセルは1回目と2回目と両方でカウントしていますね。 また、0個というのは15と19のことを指しているのでしょうか。それなら、5と8、8と9の間が0でないのも変です。 とりあえず、2(1~5),3(8~10),1(15),2(19~28)とカウントするものはできました。 両端を足すとか、別の条件を課さないと仰るようにできないようです。 とりあえず。 A列には1から順番に数字を入れます。 B列には、1 5 8 9 10 15 19 28・・・ C列で、「=INT(B1/5)」を下へコピー。5の倍数を調べます。(数字が変化するところが倍数の区切りで、わざと変化が判るようにしておく) D列は、D1は「0」、D2には「=C2-C1」を入れて下へコピー(以下略)。これにより、どこで倍数の変化が起こったか明示できます。 E列は、「=IF(D1=0,1,0)」として、変化のないところが1になるようにします。これを後で足して、そこに1を足せば、セルの個数になります。 F列は、F2に「=(F1+1)*E1」として、カウントを加算します。E列が0のところは倍数の区切りなので、掛け算することでカウントを0に戻しています。 G列は、「=(F2+1)*IF(D2>0,1,0)」として、カウントに1を足して、倍数区切りのセル分を足しています。そこにD列が0より大きいとき(倍数区切りのセルなので)は1を掛けます。これで、区切りの次のセルから数えたセル数が表示されます。 あとは、条件を足して改良してください。一度に考える判らなくなるので、1つ1つ段階を分けて考えると条件を付け加えるときも判りやすくなります。

nt-tommy
質問者

お礼

ありがとうございました!!