• ベストアンサー

データ抽出について

Excelに1秒間隔に取得したデータが1万行以上あります。 この1秒間隔のデータを1分間隔で間引きしたデータに変換したいと 思っているのですが、容易に間引く方法を教えてください。 60行間隔で手動削除するには行数が多くて困っております。

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

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.3

#1です。 補足です。 =SMALL(IF(IF(MOD(ROW($A$1:$A$10000),60)=0,$A$1:$A$10000,"")<>"",$A$1:$A$10000,""),ROW()) は、配列数式です。A列に抽出したいデータがあるとします。B以下行1に入力したら、Shift+Ctrl+Enter 押してください。 {=SMALL(IF(IF(MOD(ROW($A$1:$A$10000),60)=0,$A$1:$A$10000,"")<>"",$A$1:$A$10000,""),ROW())} になります。以下、下方へフィルドラッグしてください。 なお、「=0」を「=1」などに変えれば、抽出の行が変わります。

その他の回答 (2)

  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.2

こんな感じでどうでしょう? Sub test() Const FirstRow = 2 'データの先頭行 Dim r '行カウンタ r = FirstRow Do While Application.WorksheetFunction.CountA(Rows(r)) Rows(r + 1).Resize(59).Delete r = r + 1 Loop End Sub

  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

基本的には下記でいいと思うが、データがない領域ではエラー値が表示される。これを避けるには、エラーなら""にしろと書けばいいが長くなる。 =SMALL(IF(IF(MOD(ROW($A$1:$A$10000),60)=0,$A$1:$A$10000,"")<>"",$A$1:$A$10000,""),ROW())

関連するQ&A