%2Bindirect()%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%9B%E3%81%9A%E3%81%AB%202%20%E3%81%A4%E3%81%AE%E6%95%B0%E5%80%A4%E3%81%8B%E3%82%89%E3%82%BB%E3%83%AB%E5%8F%82%E7%85%A7%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%E3%81%A9%E3%81%86%E3%81%99%E3%82%8C%E3%81%B0%E3%82%88%E3%81%84%E3%81%A7%E3%81%97%E3%82%87%E3%81%86%E3%81%8B%3F.png)
セル参照は、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 などに変わります。