• ベストアンサー

エクセルで連続データから、数個飛ばしのデータを抜き取る方法

  A  B 1 a1 2 a2 3 a3 4 a4 5 a5 ・・・・・ のような表において、 Bの列にB1=a1、B2=a3、B3=a5 のような2個飛ばしのデータを連続で抜き取る方法はありますでしょうか。 A列が3000行ほどあり手打ち入力がしんどいです。 OFFSET関数を使ってもうまく連続コピーされません。 どなたかご教授願います。

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

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

OFFSET関数利用でもよいが、INDEX関数のほうが普通かな。 =INDEX($A$1:$A$100,(ROW()-1)*2+1,1) 100はデータ数が多い場合はデータ行数に変える。 例データ A1:A5 a1 a2 a3 a4 a5 B1に上記。データ数の半数の行数を複写。 結果 a1 a3 a5

harucoco
質問者

お礼

これもすごい! またまたできました。 INDEX関数初めて使用しましたが便利ですね。 イメージし易い関数だと思いました。 ROW関数をからめた数式は今後も役に立つと思います。 ありがとうございました。

その他の回答 (3)

回答No.3

追記。 (ROW()-1)*2 の部分を (ROW()-1)*3 とか (ROW()-1)*4 とかにすれば「2行飛ばし」「3行飛ばし」も可能。 A$1 の部分が「基準点」なので   A B 1 (略)   (略) 6 (略) 7 a1 a1 8 a2 a3 8 a3 a5 8 a4 a7 8 a5 a9 のように7行目から始めたいなら A$1 を A$7 に変えればよい。

harucoco
質問者

お礼

これもすごい! 見事にできました。 行数に関数が入れられるとは。。。 私には到底思いつかない手法でした。 ありがとうございました。

回答No.2

=OFFSET(A$1,(ROW()-1)*2,0,1,1) をB1セルに入れて、B1セルを「セルのコピー」で下方向に1600行辺りまでコピー

harucoco
質問者

お礼

返答遅れて申し訳ありません。 今まで気がつかすにいました。 ありがとうございました。

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.1

B1に、#A1 B2に、#A3 B1とB2を選択 選択枠の右下角の■(フィルハンドル)を下方に必要行までドラッグ セル範囲選択状態のまま、編集メニューの「置換」で # を = に「すべて置換」

harucoco
質問者

お礼

すごい! こんな発想があったなんて。 おかげで一発解決しました。 ありがとうございました。

関連するQ&A

専門家に質問してみよう