元々1行のものを、複数行の表で参照しようとした場合、
「=表!C3」 というような表現だと、単純に参照設定を作ることができません。
1行が1行として参照するのであれば、一つ参照をつくって、コピーすれば済みますが、
複数の場合、どうやっても単純コピーではいきません。
そこで、調べてみたところ、別アプローチでの解決方法がありました。
キーワード
OFFSET ・・・ 指定した参照から指定した行数、列数の範囲への参照を返します。
ROW() ・・・ 参照の行番号を返します
COLUMN() ・・・ 参照の列番号を返します。
理屈
OFFSETで、相対位置を指定する事により、任意の場所の値が取れます。
ROW()とCOLUMNを利用して、スタート位置からの相対を指定します。
実践
別シートに分かれているものとします。
2行構成のシートから、1行校正のシートを参照します。
・行Noを取得する (行Noは、A列2行目に1行目がある)
=OFFSET(表!$A$2,((ROW())-2)/2,0)
※解説
・表A2からスタートで、相対位置(行)を計算、列はそのまま。
・1行目の相対位置は、$2から見るとゼロ。ROW()-2/2もゼロ。よってそのままの行
・2行目はとなると、ROW()が4なので、(4-2)/2 でイチ。$A$2から行がプラスイチなので、3
相対位置のスタートを絶対指定にするのがポイントです。
これで、同じ計算式を使いまわすことが可能です。
ちなみに、名称の欄には
=OFFSET(表!$B$2,((ROW())-2)/2,0)
と指定しています。
きちんと使うなら、
=IF(OFFSET(表!$A$2,((ROW())-2)/2,0)="","",OFFSET(表!$A$2,((ROW())-2)/2,0))
とやると、きれいにいくかもしれません。
0 件のコメント:
コメントを投稿