- ベストアンサー
excelでセル結合したセルにリンクを張りたい
タイトルの通りですが book1に商品名だけのデータが入力されています book2の表で 2つのセル結合したセルが 連続で40件あり その1つのセルに book1の商品名をリンク張り付けし オートフィルでコピーしたいのですが うまくいきません (1つ目のをコピーしてしまい 同じデータが入ってしまいます なにかよい方法はありますか??? 関数を使用したほうが よいでしょうか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
説明を間違えてました。訂正します。 (COLUMN()-COLUMN($A$1))/2 のところは、 A1なら =OFFSET([Book1]Sheet1!$A$1,0,0) C1なら =OFFSET([Book1]Sheet1!$A$1,0,1) E1なら =OFFSET([Book1]Sheet1!$A$1,0,2) : とひとつづつシフトする数が入っていけば、どんな方法でもよいです。 の誤りでした。 以下に説明をかきましたが・・・・ ヘルプでOFFSETとCOLUMNを引いたほうがわかりやすいかもしれません。 Book2のA1セルには =OFFSET([Book1]Sheet1!$A$1,0,0) ・・Book1のSheet1のA1セルを起点に0個右にずらしたセル(A1)を参照 Book2のC1セルには =OFFSET([Book1]Sheet1!$A$1,0,1) ・・Book1のSheet1のA1セルを起点に1個右にずらしたセル(B1)を参照 Book2のE1セルには =OFFSET([Book1]Sheet1!$A$1,0,2) ・・Book1のSheet1のA1セルを起点に2個右にずらしたセル(C1)を参照 つぎに、式の右はしに指定する0,1,2・・・の数字を (COLUMN()-COLUMN($A$1))/2 とした件ですが、 COLUMN()は現在のセルの列位置を数字であらわすものです。。 A1セルの場合にはA列を表す 1、 C1セルの場合にはC列を表す 3、 E1セルの場合にはE列を表す 5、・・となります。 任意のセルに=COLUMN()といれて試していただければわかると思います。 COLUMN(セル)は指定したセルの列位置を数字で表します。 COLUMN($A$1)ならA列を表す 1 となります。 (COLUMN()-COLUMN($A$1))/2)とすることにより、 book2の A1セルには(1-1)/2=0 C1セルには(3-1)/2=1 E1セルには(5-1)/2=2 とひとつづつシフトする数字をいれていくことができます。 したがって =OFFSET([Book1]Sheet1!$A$1,0,(COLUMN()-COLUMN($A$1))/2) により、 A1セルはA1セルへの参照 =OFFSET([Book1]Sheet1!$A$1,0,0) C1セルはB1セルへの参照 =OFFSET([Book1]Sheet1!$A$1,0,1) E1セルはC1セルへの参照 =OFFSET([Book1]Sheet1!$A$1,0,2) となります。
その他の回答 (2)
- taspon
- ベストアンサー率69% (9/13)
OFFSETを使用するとよいと思います。 (あるセルを基準に指定した行,列の数だけシフトして参照) 元データの最初の位置:book1のA1列 表示したい最初の位置:book2のA1列 book2は2列づつ結合している の場合、 book2のA1列に =OFFSET([Book1]Sheet1!$A$1,0,(COLUMN()-COLUMN($A$1))/2 ) といれ、あとはオートフィルでコピー。 式の最初にでてくる$A$1はbook1の最初のセル 2番目にでてくる$A$1はbook2の最初のセル を指定します。 COLUMN()・・・のところは、2列結合なら0,2,4,6・・・というシフトする数が入っていけば、どんな方法でもよいです。 いかがでしょうか?
- wildcard
- ベストアンサー率54% (54/100)
book2のセル結合が横方向(例えば、A1とB1)であれば、最初にリンク張り付けしたセルの計算式内にある$を削除すれば、オートフィルでコピーできるハズです。ただセル結合が縦方向(例えば、A1とA2とか)だと、この方法は使えませんが…
お礼
ごめんなさい 補足が足りませんでしたが A1とB1のセルが 結合されていて C1とD1もというふうに 右に連続で40個 結合されているわけです
補足
早速 試してみましたが セルが結合してあるためでしょうか 参照先のセルが一つずつ飛んでしまいます
補足
>COLUMN()・・・のところは、2列結合なら0,2,4,6・< がよくわからなくて 困ってます つまり >COLUMN() の括弧の中です