[Excel] 一覧表から特定の言葉を含む行を検索して、その前後数行を抽出する
目的(例):膨大な時系列データがあり、ある現象が発生した前後のデータのみ抽出したい
手段:マクロを使用しない方法
基本的考え方:
1)作業列を設け、条件に一致した行に1,2,3と番号を付ける(IF、COUNTIF関数)
2)番号順に必要なデータを取り出す(INDEX、MATCH関数)
手順:
1)作業列を設ける
2)検索値セルを設け、検索値(数値や言葉)を入れる
3)各セルに次の内容を入れる
=IF(セル番地=$検索値セル番地,COUNTIF($作業セル先頭-1:作業セル-1,"<999999")+1,"")
注1:-1は、領域に自己セルを含めないため
注2:+1は、1から番号付けのため
注3:"<999999"は、数値セルのみカウントするため
注4:一致しない場合は、空白。一致した場合は、連番
注5:COUNTIF関数は、範囲内の個数を返す
4)抽出データ格納領域の左端列に、連番(1,2,3)を入れる
5)その右列セルに次の内容を入れる
=INDEX(抽出列$先頭行:抽出列$最終行,MATCH(連番セル,$作業セル先頭:$作業セル最終,0))
注1:MATCH関数:MATCH(検査値,検査範囲,照合の型)
照合の型0を指定すると、範囲内の一致したセルの配列内での相対的な位置を返す
注2:INDEX関数:INDEX(範囲,行番号)
範囲内にある指定した行のデータが返される
前後の行は、行番号±整数 で取り出せる
| 固定リンク | 0
「パソコン・インターネット」カテゴリの記事
- [IrfanView] 画像の座標や輝度値を表示させるには?(2025.03.26)
- テレビでYoutube広告をスキップする方法(2024.09.22)
- [動画]字幕の時間調整をする方法(2024.09.14)
- [Windows10] フォルダ表示形式の統一方法(2024.09.09)
- [Word] 図形や画像が印刷できない(2024.08.31)
コメント