セルを参照するのは簡単です。「=」に続けて参照したいセルのアドレスを指定すればいいです。
セルをコピーすれば、参照しているセルのアドレスも自動調整されます。
では、次のようになっていたらどうでしょう。
C列のセルは結合されています。これ、先と同じように参照式をコピーすると、うまくいきません。
結合されているセルというのは、左上のセルだけが存在しているというか、使えるというか。つまり、下図のようなイメージなわけです。
そして、これらのセルで、それぞれ次のような参照式を自動的に作りたいわけです。
これは、一筋縄ではいきませんね。こんなときは、関数を使って何とか参照しなければなりません。まぁ、思いつくのはINDIRECT関数かOFFSET関数です。ここでは、INDIRECT関数で考えてみましょう。まぁ、OFFSET関数でも考え方は一緒です。
要するに、次のようになればいいわけです。
A列の"A"という文字は固定ですから、次のように行番号が自動的に1ずつ増えていく仕組みを考えればいいですね。
つまり、
セルC1には → セルA1を参照するための「1」
セルC3には → セルA2を参照するための「2」
セルC5には → セルA3を参照するための「3」
:
ということです。まずは、ROW関数を使ってみます。ROW関数は、この関数が入力されているセルの行番号を返します。数式の作成には欠かせない、とても便利な関数ですので、ぜひ覚えておきましょう。
各セルに入力したROW関数は「1・3・5・7…」という数字を返します。そりゃそうです。入力されているセルのアドレスは、結合された結果「C1・C3・C5・C7…」となるのですから。この「1・3・5・7…」から、何とかして「1・2・3・4…」という数字を作りたいです。というか、「1・3・5・7…」を「1・2・3・4…」に変換する仕組みを作ります。
まず2で割ってみましょうか。
あれ?いきなり、なんかイイ感じになりましたよ。ROW関数を2で割ると、整数部が「0・1・2…」となるじゃありませんか。とりあえず、この整数部だけ取り出してみます。小数部を含む数値から整数部だけを取り出すにはINT関数を使います。
いま欲しいのは「1・2・3…」ですから、このINT関数の結果に1を加えます。
おお、作れちゃいました。簡単でしたね。この「1・2・3…」と、文字列の"A"を結合すれば、参照したいセルのアドレスを作れます。
アドレスさえ作れれば、それをINDIRECT関数で参照してやるだけです。
ここで、ROW関数の結果を割った「2」は結合されているセルの行数です。もし、3セルずつ結合されていたら「3」で割ります。
今回は簡単な例として、A列もC列も、どちらも1行目から始まるレイアウトで解説しました。もし、それぞれ開始行が1ではなかったら、最後の「+1」などでうまく調整してください。
今回は、連続して入力されている単一セルを、結合セルから参照する仕組みを解説しました。逆に、結合されているセルを、単一セルから参照するやり方は、下記のページをご覧ください。