もしじるし

エンジニアとしての学び。人生の気付き。憧れの人へ出会うまでの道のり。

自分自身のセルから数個となり(行,列)のセルを取得する方法。

サクッと結論を

左のセル値を取得する

=OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, -1))

ちょこっと解説

自分自身のセルの取得

=ADDRESS(ROW(),COLUMN()
⇒$C$15

INDIRECTで文字列で指定したセルの参照を返す

=INDIRECT("A1")
⇒A1セルに入力されている値を参照

OFFSETで位置をずらす

=OFFSET(A1,1,1)
⇒A1セルを基準に下(行)に1つ、右(列)に1つずらした値を参照する。

組み合わせる

OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())), 0, -1)

考え方としては、

  1. OFFSETでずらしたいから参照するセルを指定したい
  2. 参照するセルは自分自身のセル
  3. ADDRESSだと文字列で返ってきてしまうのでINDIRECTで参照に変換する
  4. ずらしたい数値を指定する。

こんな時に使える

  • 列の追加や削除を行う場合があるとき
  • 関数を使用している状態でフィルターを使用するとき