セル参照は、concatenate()、text()、indirect() 関数と数値式を組み合わせてプログラムで構築できます。この方法は問題なく機能しますが、呼び出し式が煩雑で扱いにくいものになる可能性があります。また、スプレッドシート上でターゲット セルを移動 (ドラッグ) したときに、参照先のセル アドレスが自動的に更新されなくなります。
たとえば、セルを B2 に等しくします。
=INDIRECT(CONCATENATE("B", TEXT(3-1,"0")))
3-1
これは説明目的のためであり、実際の式はもっと複雑である。
より直接的に、つまり TEXT 操作ドメインにアクセスせずに参照を作成する方法はありますか? たとえば、次のようになります。
=("B"):(3-1)
これにより、移動されたセル B1 の自動参照も保持されますか?
答え1
これが役立つかどうかはわかりませんが、OFFSET 関数を使用することをお勧めします。
OFFSET(cell reference, rows, cols [, height [, width]])
例えば、次のようにする=OFFSET(B3,-1,0)
と、データが移動するとセル参照が更新されます。
答え2
あなたの例は、
=INDIRECT("B"&(3-1))
答え3
INDEXを使うと、ドラッグすると更新されます。例:
=INDEX(B:B,3-1)
それをドラッグすると、C:C、D:D などに変わります。