• ベストアンサー

Excel:列に対するリンクをオートフィルなどで行に楽に張るには

 ある1列のデーターに対するリンクを,別の場所に横方向に張りたいと思います。例えば,A1,A2,A3…のデータへのリンクをC1,D1,E1…に貼りたいんですが,オートフィルや他の方法を使って効率よく貼る方法はないでしょうか?  実は差し込み印刷するためのリンクを張っているんですが,現状では,上の例ではC1セルに =$A1 と入力して,それを横方向にオートフィル等でコピーし,後で1セルごとに番地を書き換えていますが,なにせセルが数百あるので,非常に手間がかかっています。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんにちは。 次のようにしてみてください。 -------------------------- C1に、たとえば &A1 と入力。 右方向に必要分オートフィルでコピーすると &A2、&A3、&A4 ・・・になると思います。 たとえば C1からZ1までコピーしたとすれば、 C1:Z1 をすべて選択した状態で、 メニューの編集>置換 「検索する文字列」→ & 「置換後の文字列」→ = を入力して、「すべて置換」をクリックしてください。

bantoh
質問者

お礼

 結局,ご指摘の方法で実施しました。 手順も少なく,一つずつ手入力,の手間が軽減されて非常にはかどりました。有り難うございました。

bantoh
質問者

補足

 なるほど,文字列としてオートフィルしてから変換,というのは気づきませんでした。だいぶ楽になります。  ただ,実際に作っている表では,N0.2さんの所に書きましたが,貼り付け先が 6列×80行あるので,まだちょっと大変そうです。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#1 のAloneAgain さんと同じテクニックですが、 私のテクニックは、 この場合、C1が左上の端の基点としたら、最初に、 C1に、以下の式を置きます。 ="!="&ADDRESS(COLUMN(A1)+INT(ROW(A1)-1)*6,1,4) !=A1 !=A2 !=A3 !=A4 !=A5 !=A6 !=A7 !=A8 !=A9… と出てきます。 フィルハンドルコピーでも大したことがないのですが、 * C1 を [Ctrl+ C] で 点線で囲まれたはずだから、そこで、C1 を選択して、 '------------------------------ * Shift を押しながら、 今度は、右下の端に該当するセルを探します。 例えば、 6列×80行 だから、H80 '---- Or もし、ひじょうに下のほうにある場合は、 こんどは、最初に、Shiftを押さないで、左上の白い名前ボックスに、「H80」 と入れてから、Shiftを押して、Enter とします。そうすると、コピーされます。 '------------------------------- * そして、Ctrl+V '------------------------------- そして、 * その範囲のまま、右クリック-「形式を選択して貼り付け」 「値」 '------------------------------- 後は、 ○ メニューの編集-置換で、 検索値「!=」, 置換値「=」 で、完了!です。 1分も掛からないかと思います。 それから、こういうものは、手間は惜しまないほうが、上達しますよ。

bantoh
質問者

お礼

 有り難うございます。おかげで参照関数のしくみが 少し理解できました。  実際の作業では,うまく4行空きで関数を作れずに,No.1さんの方法でやってしまったので,また勉強したいと思います。

bantoh
質問者

補足

 ちょっと説明が足りなかったようです。  私自身がやりたいのは,A1~A480のセルに対する リンクを,C1,B1,D1,E1,F1,G1と順に貼って,次に 例えば4行下のC5,B5,D5,E5,F5,G5にG1からつながるように貼る。さらにまた4行下,に連続して6列,というように,数行おきに6列ずつあるセルに貼る,ということで,それを楽にはる事はできないかな~,というものでした。  皆さんのお答えで,長方形に連続してリンクを張ることはできますので,これをコピペするとか,座標指定で途中の空いている行数をどうにかすれば,何とかなりそうかな~という気になってきました。  皆さんのお答えをヒントに,もう一工夫してみようと思います。  (1行目より4行下の)リンクを貼り付ける2行目の関数を1行目の関数とちょっと変えることで,あとは2行目をコピペでいけそうな気がします。  1行目(C1~H1)はたいしたことはないので,=A1,=A2…でも,行列変換でも良いでしょうから, 2行目(実際には4行下のC5~H5)以降は,C5が「H1に貼られたリンクの次の番地のセルをリンクする」2つめ以降が「左にリンクされたセルの次の番地のセルをリンクする」というような関数を入力すれば,後の78行はコピペで済みそうです。

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.4

1)B1に =$A1 を入れて下までコピー。 2)B1~Bの一番下までを範囲指定、コピー 3)C1で[編集]→[形式を選択して貼り付け]→[行列を入れ替える]にチェックして貼り付け ではダメですか? うまくできますように。

bantoh
質問者

お礼

 有り難うございました。今回の趣旨では 行列変換はとても効率が悪かったので, 他の方の方法で実施しました。また宜しく お願いします。

bantoh
質問者

補足

 ちょっと説明が足りなかったようです。  私自身がやりたいのは,A1~A480のセルに対する リンクを,C1,B1,D1,E1,F1,G1と順に貼って,次に 例えば4行下のC5,B5,D5,E5,F5,G5にG1からつながるように貼る。さらにまた4行下,に連続して6列,というように,数行おきに6列ずつ有るセルに貼る,ということで,それを楽にはる事はできないかな~,というものでした。

  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.3

あまりスマートでは無いですが・・・。 C1セルに =INDEX($A:$A,ROW(A1)*6-5+COLUMN(A1)-1) としてH1までフィルコピー。 そのまま下へフィルコピー。

bantoh
質問者

お礼

 有り難うございます。おかげで参照関数のしくみが 少し理解できました。  実際の作業では,うまく4行空きで関数を作れずに,No.1さんの方法でやってしまったので,また勉強したいと思います。

bantoh
質問者

補足

 ちょっと説明が足りなかったようです。  私自身がやりたいのは,A1~A480のセルに対する リンクを,C1,B1,D1,E1,F1,G1と順に貼って,次に 例えば4行下のC5,B5,D5,E5,F5,G5にG1からつながるように貼る。さらにまた4行下,に連続して6列,というように,数行おきに6列ずつ有るセルに貼る,ということで,それを楽にはる事はできないかな~,というものでした。

  • tresbien
  • ベストアンサー率51% (51/99)
回答No.2

C1セルに  =OFFSET($A$1,COLUMN()-3,0) を入力して右にコピーでどうでしょう。

bantoh
質問者

お礼

 有り難うございます。おかげで参照関数のしくみが 少し理解できました。  実際の作業では,うまく4行空きで関数を作れずに,No.1さんの方法でやってしまったので,また勉強したいと思います。

bantoh
質問者

補足

なるほど,OFFSET関数は使ったことがなかったのですが,こういうときに使うんですね。 ただ,実際に私が作っているデータでは,実は貼り付ける先のセルが1行6列というのが複数有って,ちょっと 6列ごとに入力し直すのが面倒そうです。  つまり, A1 A2 A3 A4 A5 A6 別の複数行 A7 A8 A9… というように,A480まで入力しなければなりません。うーん,やっぱり苦しいです。

関連するQ&A