Excel。結合したセルにデータをスムーズにコピーするにはどうしたらいいの。
<INDEX+ROW関数>
コピーして貼り付ける。
特に問題は無い操作だと思いますが、貼り付け先が結合されていると、スムーズに貼り付けることはできません。
次の表で確認してみましょう。
やりたいことは、A2の新宿は、C2の結合されたセルにコピーしたいわけです。
単純に、A2:A4を範囲選択して、C2を基準に貼り付けてみましょう。
すると、「この操作は結合したセルには行えません」とメッセージが表示されてしまいます。
では、セル参照とオートフィルで数式をコピーするというのは、ダメでしょうか。
C2をクリックして、=A2と数式を設定します。
オートフィルで数式をコピーしてみます。
やはり、うまくいきませんでした。
こうなると、一つずつ、コピーしなければならないのでしょうか。
それでは、時間がかかるだけでなく、面倒です。
そこで、数式を作って対応することにします。
C2をクリックして、次の数式を設定します。
=INDEX($A$2:$A$4,ROW(A2)/2)
あとは、オートフィルで数式をコピーします。
これで、対応することができました。
なぜ、この数式は対応することができるのでしょうか。
数式を確認しておきます。
INDEX関数は、
指定した列と行が交わる位置にある値を表示してくれる関数です。
最初の引数は、配列。
範囲選択なので、A2:A4。
オートフィルで数式をコピーしますので、$A$2:$A$4と絶対参照を設定します。
2つ目の引数は、行番号。
行番を求めることができるのが、ROW関数です。
ROW(A2)/2
と設定しましたが、この数式の意味は、A2の行番号は2です。
C列の新宿のセル番地は、C2となっています。
C列の品川のセル番地は、C4で、C列の横浜のセル番地は、C6となっています。
つまり、結合されているので、2・4・6という行番号です。
これを、2で除算します。
すると、新宿は2÷2で1。品川は4÷2で2。と算出できます。
範囲はA2:A4で、1行目と交差するのは、新宿というデータをINDEX関数で、表示できるという仕組みです。
この数式をつかうことで、結合セルに対応した、データのコピー(のようなこと)ができるというわけです。