• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 三連続になってる箇所の抽出方法)

エクセルで三連続になってる箇所の抽出方法

このQ&Aのポイント
  • エクセルで0から10000までの数字が並んでいるデータから、0.1から0.6の範囲で三連続以上している箇所を抽出する方法について教えてください。
  • 例えば、0.9、1.9、2.1、2.5、3.1、3.9、4.9のようなデータがある場合、1.9、2.1、2.5の3つのデータのセルを目立たせる方法など、抽出方法についてのアイディアを教えてください。
  • 具体的な方法は問いませんので、エクセルで三連続になっている箇所を見つける方法についてのアドバイスをお願いします。

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

  • ベストアンサー
  • MT765
  • ベストアンサー率57% (2080/3618)
回答No.2

条件式だとちょっとわからなかったのでVBAで。 考え方としては 3番目のデータから開始して 一つ前のデータとの差が0.6以下 かつ 一つ前のデータと二つ前のデータの差が0.6以下の場合 3番目から2つ前のセルまで色を塗ります。 これを繰り返せば良いような気がします。 Sub Mymacro() 'データがA1からA10に入っている場合のマクロ Dim i As Integer, j As Integer j = 1 '列番号 For i = 3 To 10 '3行目のデータから10行目のデータまで If Cells(i, j).Value - Cells(i - 1, j).Value <= 0.6 And Cells(i - 1, j).Value - Cells(i - 2, j).Value <= 0.6 Then '3連続0.6以下の場合 Cells(i - 2, j).Interior.ColorIndex = 22 '2つ前のセルをピンクに Cells(i - 1, j).Interior.ColorIndex = 22 '1つ前のセルをピンクに Cells(i, j).Interior.ColorIndex = 22 '現在のセルをピンクに End If Next i End Sub セルの色をリセットしたりマクロボタンや自動実行については別途入れないと実用上厳しいかと思います。 (改行がわかりにくかったらすみません)

ppiko0154
質問者

お礼

ありがとうございました

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

例データ B2:C11 B列 C列=前行セルとの差 0.1 0.1 1.9 1.8 2.1 0.2 2.5 0.4 3.1 0.6 3.9 0.8 4.9 1 5.2 0.3 5.6 0.4 6.1 0.5 ーー B列について 標準モジュールに Sub test01() lr = Range("B100000").End(xlUp).Row MsgBox lr For i = 1 To lr - 3 If Cells(i + 1, "b") - Cells(i, "B") <= 0.6 And Cells(i + 2, "B") - Cells(i + 1, "B") <= 0.6 And Cells(i + 3, "B") - Cells(i + 2, "B") <= 6 Then Range(Cells(i + 1, "B"), Cells(i + 3, "B")).Interior.ColorIndex = 6 End If Next i End Sub ーー 結果 B列 4,5,6と9,10,11のセルに黄色 ーー カン違いしてないことを祈る。テストデータ数も少ないので。

ppiko0154
質問者

お礼

ありがとうございました

  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.3

画像の様にA1,A2 を空白にして、A3から始めて下さい。 A3以下、適当な範囲を選択。 4行目を選択 条件付き書式、新しいルール、 数式を使用して、書式設定するセルを決定 =AND(A2-A1<0.6,A3-A2<0.6,A3<>"")+AND(A3-A2<0.6,A4-A3<0.6,A4<>"")+AND(A4-A3<0.6,A5-A4<0.6,A5<>"") 書式。塗りつぶし、好きな色、OK。OK。 A1 A2 を開けたくない、A1から始めたい、タイトルを入れたい等の場合、補足に書いて下さい。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

2つの連続したセルで、その差が0.6以下なら1それ以外は0にしてはいかがでしょう。 例えば、A列のデータの場合、B4セルに、以下の式を入れて下へドラッグコピー。 =IF(AND(IF(AND(ABS(A4-A3)<=0.6,ABS(A4-A3)>=0.1),1,0)=1,IF(AND(ABS(A3-A2)<=0.6,ABS(A3-A2)>=0.1),1,0)=1,IF(AND(ABS(A2-A1)<=0.6,ABS(A2-A1)>=0.1),1,0)=1),1,0)

ppiko0154
質問者

お礼

ありがとうございました

関連するQ&A

専門家に質問してみよう