機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > 機能と数式

複雑な参照「単一セル→結合セル」



セルを参照するのは簡単です。「=」に続けて参照したいセルのアドレスを指定すればいいです。



セルをコピーすれば、参照しているセルのアドレスも自動調整されます。





では、次のようになっていたらどうでしょう。



C列のセルは結合されています。これ、先と同じように参照式をコピーすると、うまくいきません。







結合されているセルというのは、左上のセルだけが存在しているというか、使えるというか。つまり、下図のようなイメージなわけです。



そして、これらのセルで、それぞれ次のような参照式を自動的に作りたいわけです。



これは、一筋縄ではいきませんね。こんなときは、関数を使って何とか参照しなければなりません。まぁ、思いつくのはINDIRECT関数OFFSET関数です。ここでは、INDIRECT関数で考えてみましょう。まぁ、OFFSET関数でも考え方は一緒です。
要するに、次のようになればいいわけです。



A列の"A"という文字は固定ですから、次のように行番号が自動的に1ずつ増えていく仕組みを考えればいいですね。



つまり、

セルC1には → セルA1を参照するための「1
セルC3には → セルA1を参照するための「2
セルC5には → セルA1を参照するための「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」などでうまく調整してください。





今回は、連続して入力されている単一セルを、結合セルから参照する仕組みを解説しました。逆に、結合されているセルを、単一セルから参照するやり方は、下記のページをご覧ください。






このエントリーをはてなブックマークに追加