dポイントプレゼントキャンペーン実施中!

Exccl2002 リンク貼り付けの数式を変更したい

Exccl2002を使っているのですが、リンク貼り付けしているセルの式を
関数を使い一括置換したいのですが出来ません。
たとえば、E10 + 1 → E11 ということです。
順不動で各シートのデータ位置も違います。
どうすれば良いのでしょうか。

ファイル名 001.xls 

sheet名 001 002 003 以上 3シート より 
       004の1つのシートにリンク貼り付けでまとめてます。

セル位置 3シートともE列

  変更前の式     シート名 004 変更後
[001.xls]001!E2 →  [001.xls]001!E3
[001.xls]002!E3 →  [001.xls]002!E4
[001.xls]003!E2 →  [001.xls]003!E3
[001.xls]001!E10 → [001.xls]001!E11
[001.xls]002!E10 → [001.xls]002!E11
[001.xls]003!E10 → [001.xls]003!E11
[001.xls]001!E15 → [001.xls]001!E16
[001.xls]002!E26 → [001.xls]002!E27
[001.xls]003!E29 → [001.xls]003!E30

その他 300個位あります。

A 回答 (4件)

補足されたリストを見ても、「現状」と「訂正後」の関係が良くわからず、質問の意味がつかめないのですが、ご希望の操作はばらばらのリンク数式に対して縦方向にリンク先のセルの位置をずらしたいということでしょうか?



また、例示されたリンク数式は「リンク貼り付け」で作成したものなのでしょうか?
その場合は、例示のような相対参照の数式ではなく、絶対参照の数式になると思うのですが・・・・

もし相対参照の数式なら、単純にセルを移動する操作で簡単に数式を作成できます。

絶対参照の数式の場合、INDIRECT関数を使用して指定したセルの値だけ縦方向に移動させたいなら、元の数式をWordのワイルドカード置換を利用して、かなり複雑な置換操作をする必要があります。

この回答への補足

何度もご回答ありがとうございました。
処理が非常に複雑で説明箇所に困惑しておりました。

(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列のリンクで関数式の変更が出来るかなと思ったのですが、
かなりのレベルになりそうですね。

補足日時:2010/08/28 14:24
    • good
    • 0
この回答へのお礼

今回教えていただきました関数などとても勉強になりました。
ありがとうございます。

やり方を変えAccessでの取り込みを検討してみようと思います。

今回は、何度もご回答ありがとうございました。
また、違う質問など有りましたらご教授お願いいたします。

お礼日時:2010/08/28 14:28

>元データ内容が毎日変動になるので +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列に表示をしたいのです。

何度もお手数をおかけいたしますが、宜しくお願いいたします。

補足日時:2010/08/27 22:25
    • good
    • 0

単純に数式を移動したいなら選択したセル範囲の周囲にカーソルを合わせて移動先にドラッグ(このケースでは1つ上に移動)すれば良いと思うのですが・・・



例示されたような他ブックからのリンクを一括変更したいなら、リンク先の[001.xlsファイルを立ち上げて、001シートから003シートをグループ化し(もちろん1つづつでもOKです)E1セルで右クリック「挿入」「下方向にシフト」します。
このリンク先のファイルをそのまま上書き保存せずに閉じて、この集計ファイルをいったん閉じて、開き直せば新しいリンクが反映していると思います。

この回答への補足

ご回答ありがとうございます。

こういうやり方も有りですね。

Sheet1!(リンク元)より必要レコードのみ選択 → ジャンプ → 可視セル → コピー

Sheet2!(リンク先)にリンク貼り付けしております。

元データ内容が毎日変動になるので +1 の式にしたいのですが・・・

今日 A1 明日 A3 明後日 A2 など毎日変動いたします。

宜しくお願いいたします。

補足日時:2010/08/26 15:54
    • good
    • 0

勘違いかもしれませんが



リンク式セル範囲を選択
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

宜しくお願いいたします。

補足日時:2010/08/26 13:10
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!