スポンサーリンク

Excel・Calcで頻出の関数の使い方パターン「1セルずつずれながら順番に参照」。INDIRECT(ADDRESS(ROW))

Excel/Wordオフィス製品のTipsまとめへ


ExcelやCalcなどの表計算ソフトで,「大量のセル参照」をいちいち書くのが面倒な場合がある。

INDIRECT,ADDRESS,ROW の3つの関数を組み合わせて,簡単にセル参照できる。

この組み合わせは,よく使うので暗記しておこう。

サンプル

シート内の1列に,偶数行だけ(一行おき)に a, b, c, d, e  と書いてあるとする。

つまり, A2, A4, A6, ・・のセルだけにデータがある。


これを,C1, C2, C3, ・・・にコピーしたい。どうやるのが良いか?


いちいち =A2, =A4, などと打ち込むのはダメ。

対処法

C1セルに下記の内容を打ち込む。

  • =INDIRECT(ADDRESS(ROW()*2;1))

そして下にドラッグすればよい。


INDIRECT,ADDRESS, ROW の3関数を組み合わせているのだ。


解説すると,ADDRESS関数にはタテとヨコの座標を渡せる。

INDIRECTは,該当するセルの値を引っ張ってきている。

ROWはセルの行番号。



このように組み合わせれば,
「1セルずつずれながら,順番にセル参照」を
楽に実現できるのだ。


上記の技は,ExcelだけでなくOpenOffice Calcでも使える。


参考:

Excelで,表データを「要約」した円グラフを作成する方法 …SUMIF関数のワイルドカードにINDIRECT(ADDRESS(ROW()))して,情報をまとめる
http://language-and-engineering.hatenablog.jp/entry/20130916/GenerateCircleGr...

  • ADDRESS(ROW(),COLUMN()-1) は,「現在のセル(そのセル自体,自分自身)の左側のセル」の参照用の番地を文字列で返す。G1セル上ではこの数式は "F1" として評価される。
  • INDIRECT( 文字列 ) によって,セルの番地文字列が,セルとして変換される。文字列をセルに変換している。


Excel/Wordオフィス製品のTipsまとめへ