1列(行)おきに参照して抽出する

1列(行)おきにデータを抽出したい場合に使える関数です。

1列ごとの場合

A4セルに以下の式を挿入し、右方向へオートフィルコピーです。

=INDIRECT(ADDRESS(ROW(A1),(COLUMN())*2-1,1))

0715_1

・(COLUMN())*2-1 1列おきの列番号を計算してます。
・ROW(A1) 1行目を指定しています。
・ADDRESS 上記の指定によって「A1」「C1」「E1」を指定します。
・INDIRECT セルの内容を表示します。

参照先が別シートになっている場合は以下の式で応用できます。

=INDIRECT(ADDRESS(ROW(A1),(COLUMN())*2-1,1,,"sheet1"))

 

1行ごとの場合

=INDIRECT("A"&ROW(A1)*2-1)

0715_2

関数の意味は列の場合と同じです。
「INDIRECT("A"」はA列を指定する意味です。
違う列だった場合はそこのアルファベットを入力すればOKです。

また参照先が違うシートだった場合は以下のようになります。

=INDIRECT("sheet2!A"&ROW(A1)*2-1)

 

【追記】

INDEX関数でも可能です。
指定した範囲から1行ごとに抽出できます。

=INDEX(Sheet2!$A$1:$A$1000,ROW(A1)*2-1,1)