- ベストアンサー
エクセルでデータの抽出方法
Windows7、エクセル2010を使用しています。 エクセルで、指定したセルのデータを抽出する方法についての質問です。 エクセルに60000行×1列のデータがあるとして、 その中から99行目、199行目、299行目、・・・59999行目のデータを抽出しなければなりません。 手作業でコピーするのは時間的に非現実的なので、なにか抽出する方法はないでしょうか? 100行単位で列を変えれば、99行目のみをコピーし、行と列を置き換えればいいと思うのですが、そんなことは可能なのでしょうか? そのほか、何か方法があれば教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
お隣の列に =INT((ROW()+1)/100)*100=ROW()+1 と記入して下まで一気にコピー。 そうすると、必要な「行」だけ「TRUE」と表示されるので、 「データ」「フィルタ」で一発検索です。
その他の回答 (5)
- bunjii
- ベストアンサー率43% (3589/8249)
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、元データが入力されている列が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)
こんにちは! 一例です。 データは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)
シート2のA1セルに(同じシートのE1セルでも構いませんが) =INDEX(Sheet1!A:A,ROW()*100-1) と記入、下向けにコピーして完成。 必要ならその場でコピーして形式を選んで値のみ貼り付けて、値化します。
- y_free_temp
- ベストアンサー率50% (7/14)
VBAで組んでもいいとは思いますが、それはそれでめんどいですね。 100行単位という確定事項があり、列追加(もしくは完全な空白列の使用)が可能であるならば、 例えばA列が抽出したいデータのある列、B列が何も入力されていない列、として、 B:99にaとか(何でもいいのですが)入力して、B:1からB:100まで選択。 フィルハンドル(選択範囲の右下でカーソルが十字になるやつ)でB:60000行まで下にぐいぐいマウスを移動。 これで99、199、299・・・のB列にaという文字が入力された状態になるので、列フィルタでB列をaだけ表示にする。 これで99、199、299・・・行だけが表示された状態になるような。