• ベストアンサー

エクセルでシート間の相対参照

シートを分けて表を作成しています。 Sheet3のセルA1に「='sheet1'!A1」という計算式を入力しています。 この計算式を[B1]にコピーすると「='sheet1'!B1」ではなく、「='sheet2'!B1」という計算式にすることは可能でしょうか? 参照するセルも、シートも変更してほしいのですが、うまくいきません。 どなたかよろしくお願いします。

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

  • ベストアンサー
  • HAL007
  • ベストアンサー率29% (1751/5869)
回答No.1

多少手間が掛かりますが次の方法で出来ました。 質問ではSheet1から3を例にしていましたがこの方法だとsheetの数が増えても大丈夫です。 (1)A列に対象となるシートの数だけの連続データの入力で連番を入力します。 (2)B1に「=CONCATENATE("sheet",A1,"!A1")」の数式を入れる。 (3)B1のセルの右下へカーソル移動させ+表示させてダブルクリックして下向きのコピーをする。 (4)上記で出来上がった範囲を指定してC列に「編集-形式を選択して貼り付け」から「値」をチェックして実行。 (5)ペーストした部分を選択して「編集-置換え」で変更前に「sheet」変更後に「=sheet」で全て置き換えを実行します。 説明をする関係でA~C列を使いました。ポイントはコンカチネート関数を使い連続した番号を取り込むことです。 ところでこれをしたい理由はシートの串刺し集計ではありませんか?1-2-3にはありましたよね~。 EXCEL2000のHELPを検索して見ましたがないようです。 串刺し集計が出来ると便利なケースが多くあると思いますが・・・・ 幸いな事に私の仕事では串刺し集計をするようなデータはDBにあるのでもっぱらAccessを使ってます。

mayuko
質問者

お礼

ありがとうございます。 ロータスでもやってみたのですが、CONCATENATE関数自体がないんですね・・・。 けど、この方法を人に説明するのが大変そうです・・・。

関連するQ&A