• ベストアンサー

エクセルでデータの抽出方法

Windows7、エクセル2010を使用しています。 エクセルで、指定したセルのデータを抽出する方法についての質問です。 エクセルに60000行×1列のデータがあるとして、 その中から99行目、199行目、299行目、・・・59999行目のデータを抽出しなければなりません。 手作業でコピーするのは時間的に非現実的なので、なにか抽出する方法はないでしょうか? 100行単位で列を変えれば、99行目のみをコピーし、行と列を置き換えればいいと思うのですが、そんなことは可能なのでしょうか? そのほか、何か方法があれば教えてください。

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

  • ベストアンサー
  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

お隣の列に =INT((ROW()+1)/100)*100=ROW()+1 と記入して下まで一気にコピー。 そうすると、必要な「行」だけ「TRUE」と表示されるので、 「データ」「フィルタ」で一発検索です。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

>手作業でコピーするのは時間的に非現実的なので、なにか抽出する方法はないでしょうか? INDEX関数で抽出できます。 A列に元データがあるとします。 目的のセルに下記の式を入力して、必要なだけ下へコピーしてください。 =INDEX(A:A,ROW(1:1)*100-1,1)

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

今仮に、元データが入力されている列がA列であり、抽出先の列の2行目のセルにA99セルの値を、3行目のセルにA199セルの値を、・・・・・601行目のセルにA59999セルの値を表示させるものとします。  その場合、抽出先の列の2行目のセルに次の様な関数を入力してから、そのセルをコピーして、同じ列の3行目~601行目の範囲に貼り付けると良いと思います。 =IF(INDEX($A:$A,ROWS($2:2)*100-1)="","",INDEX($A:$A,ROWS($2:2)*100-1))

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんにちは! 一例です。 データはA列の1行目からあるとします。 B列を作業用の列として使用します。 B1セルに =IF(MOD(ROW(),100)=99,ROW(),"") という数式を入れフィルハンドルでダブルクリック! 表示したい列の1行目に =IFERROR(INDEX(A:A,SMALL(B:B,ROW(A1))),"") という数式を入れオートフィルでずぃ~~~!っと下へコピーしてみてください。 ※ 上記操作はマクロで簡単にできますが、 とりあえず手作業での方法です。m(_ _)m

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

シート2のA1セルに(同じシートのE1セルでも構いませんが) =INDEX(Sheet1!A:A,ROW()*100-1) と記入、下向けにコピーして完成。 必要ならその場でコピーして形式を選んで値のみ貼り付けて、値化します。

回答No.2

VBAで組んでもいいとは思いますが、それはそれでめんどいですね。 100行単位という確定事項があり、列追加(もしくは完全な空白列の使用)が可能であるならば、 例えばA列が抽出したいデータのある列、B列が何も入力されていない列、として、 B:99にaとか(何でもいいのですが)入力して、B:1からB:100まで選択。 フィルハンドル(選択範囲の右下でカーソルが十字になるやつ)でB:60000行まで下にぐいぐいマウスを移動。 これで99、199、299・・・のB列にaという文字が入力された状態になるので、列フィルタでB列をaだけ表示にする。 これで99、199、299・・・行だけが表示された状態になるような。

関連するQ&A