- ベストアンサー
Excel2002のリンク貼り付け数式を変更する方法
- Excel2002を使用していて、リンク貼り付けしているセルの数式を一括変更したい場合の方法を教えてください。
- ファイル名001.xlsのシート001、002、003のE列にあるリンク貼り付けされた数式を、それぞれのシートごとに一つずつずらしたいです。例えば、[001.xls]001!E2の数式を[001.xls]001!E3に変更したいと考えています。
- 他のシートにも同様の変更を行いたい場合、どのようにすれば良いでしょうか?変更前の式と変更後の式を具体的に教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
補足されたリストを見ても、「現状」と「訂正後」の関係が良くわからず、質問の意味がつかめないのですが、ご希望の操作はばらばらのリンク数式に対して縦方向にリンク先のセルの位置をずらしたいということでしょうか? また、例示されたリンク数式は「リンク貼り付け」で作成したものなのでしょうか? その場合は、例示のような相対参照の数式ではなく、絶対参照の数式になると思うのですが・・・・ もし相対参照の数式なら、単純にセルを移動する操作で簡単に数式を作成できます。 絶対参照の数式の場合、INDIRECT関数を使用して指定したセルの値だけ縦方向に移動させたいなら、元の数式をWordのワイルドカード置換を利用して、かなり複雑な置換操作をする必要があります。
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
>元データ内容が毎日変動になるので +1 の式にしたいのですが・・・ >今日 A1 明日 A3 明後日 A2 など毎日変動いたします。 いまひとつリンク式のイメージがわからないのですが、同じ数式で参照位置を変えたいなら、INDIRECT関数とROW関数を組合わせた数式にして、特定のセル(例えばZ1セル)にずらす数値を指定して自由にセル位置を参照させるようにしてはいかかでしょう。 =INDIRECT("[001.xls]001!E"&row(a1)+$Z$1) ただし004のシートが数式のように001~003シートとは別のブックにある場合は、2つのブックを立ち上げておく必要があります。
補足
ご回答ありがとうございます。 ご説明が行き届かなくお手数をおかけしております。 =INDIRECT("[001.xls]001!E"&row(a1)+$Z$1) では、 シート内の1つ下のセルに移動いたします。 リンク先では、順番に1つ下のセルに移動いたします。 001!E1 → 001!E2 → 001!E3 → 001!E4 → 必要なデータのみリンクしているため順不動になっております。 本来であればE列同様1つ1つダイレクトにリンクをすればよいのですが、 レコードの順が毎日変わるのでE列の1つ下という規則は変わらないので 式の変換をしF列に表示したいのです。 リンク先(3ブック) 001.xls 002.xls 003.xls 集計ブック名 link.xls 現状 列名 価格 リンク式 メーカー E1 95800円(値) =[001.xls]001!E1 AAA E2 92800円(値) =[002.xls]001!E1 BBB E3 91800円(値) =[003.xls]001!E1 CCC E4 44000円(値) =[001.xls]001!E3 AAA E5 42100円(値) =[002.xls]001!E4 BBB E6 43900円(値) =[003.xls]001!E6 CCC ↓ ↓ ↓ ↓ 訂正後 列名 価格 リンク式 列名 販売店 リンク式 メーカー E1 95800円(値) =[001.xls]001!E1 F1 ビックカメラ(値) =[001.xls]001!E2 AAA E2 92800円(値) =[002.xls]001!E1 F2 ヨドバシカメラ(値) =[002.xls]001!E2 BBB E3 91800円(値) =[003.xls]001!E1 F3 キタムラカメラ(値) =[003.xls]001!E2 CCC E4 44000円(値) =[001.xls]001!E3 F4 キタムラカメラ(値) =[001.xls]001!E4 AAA E5 42100円(値) =[002.xls]001!E4 F5 ヨドバシカメラ(値) =[002.xls]001!E5 BBB E6 43900円(値) =[003.xls]001!E6 F6 キタムラカメラ(値) =[003.xls]001!E7 CCC E列に価格をリンク表示の式を使い +1 にすることによりF列に表示をしたいのです。 何度もお手数をおかけいたしますが、宜しくお願いいたします。
- MackyNo1
- ベストアンサー率53% (1521/2850)
単純に数式を移動したいなら選択したセル範囲の周囲にカーソルを合わせて移動先にドラッグ(このケースでは1つ上に移動)すれば良いと思うのですが・・・ 例示されたような他ブックからのリンクを一括変更したいなら、リンク先の[001.xlsファイルを立ち上げて、001シートから003シートをグループ化し(もちろん1つづつでもOKです)E1セルで右クリック「挿入」「下方向にシフト」します。 このリンク先のファイルをそのまま上書き保存せずに閉じて、この集計ファイルをいったん閉じて、開き直せば新しいリンクが反映していると思います。
補足
ご回答ありがとうございます。 こういうやり方も有りですね。 Sheet1!(リンク元)より必要レコードのみ選択 → ジャンプ → 可視セル → コピー Sheet2!(リンク先)にリンク貼り付けしております。 元データ内容が毎日変動になるので +1 の式にしたいのですが・・・ 今日 A1 明日 A3 明後日 A2 など毎日変動いたします。 宜しくお願いいたします。
- xls88
- ベストアンサー率56% (669/1189)
勘違いかもしれませんが リンク式セル範囲を選択 Ctrl+C でコピー 先頭セルの1行下セルを選択 Ctrl+V で貼り付け 先頭セルを選択 Ctrl+-(マイナスキー) で削除
補足
ご回答ありがとうございました。 説明不足で申し訳ございません。 リンク先の配列が不規則のため一行挿入後のコピーは出来るのですが、 一括ですると出来ないのです。 セル内の数字(レコード)のみ(3桁まで)を +1 に変換し、リンク貼りつけをしたいのです。 A列 B列 ---------- A1 → A2 B1 → B2 C1 → C2 A5 → A6 B7 → B8 C9 → C10 リンク貼り付けの場合、横のコピーは出来るのですが、縦が出来ないのです。 たとえば、 A列 → B列へは、セルで列選択 → リンク式もコピー出来ます。 その後、置換で列名変更(A → B → 置換 E列にも変更)は出来ます。 切り取りは、セルの挿入も出来、式も移動いたします。 同一シート内のコピーは、元セルへのリンクになり元シートの式がコピーが出来ません。 Sheet2 A1の式をB1セルにコピー A1 = Sheet1!A1 → B1 = Sheet2!A1 宜しくお願いいたします。
お礼
今回教えていただきました関数などとても勉強になりました。 ありがとうございます。 やり方を変えAccessでの取り込みを検討してみようと思います。 今回は、何度もご回答ありがとうございました。 また、違う質問など有りましたらご教授お願いいたします。
補足
何度もご回答ありがとうございました。 処理が非常に複雑で説明箇所に困惑しておりました。 (1)ExcelでのWebクエリについて http://oshiete.goo.ne.jp/qa/6122446.html (2)Exccl2002 リンク貼り付けの数式を変更したい http://oshiete.goo.ne.jp/qa/6135172.html 本来は、上記(1)の質問でsheet1をWebクエリで取り込み、 sheet2リンク貼り付けで集計しております。 しかし、sheet1のデータが毎日増減するので絶対参照でリンク貼り付けしている レコードの集計欄がその都度ずれて訂正をしなければならないのです。 (1)の回答待ちをしている間に(2)の質問を並行してさせていただいておりました。 E列のリンクで関数式の変更が出来るかなと思ったのですが、 かなりのレベルになりそうですね。