• ベストアンサー

エクセルで他のシートを動的に参照する(シート名だけ)

http://oshiete1.goo.ne.jp/qa921075.html に「エクセルで他のシートを動的に参照するには」 という質問で =INDIRECT(A1&"!"&B1) と入力することで 例えば a1="いちまいめ" b1="d5" と入っていれば =いちまいめ!d5 と同じ意味に動的に出来るとありましたが シート名の参照だけを動的にしたい場合はどうすればよいのでしょうか? ただし =INDIRECT(A1&"!d5")とすると 上下左右にコピーした際も d5 が 例えば d6 d7 d8 d9 ... と相対的に変わってくれないのでNGです。 また =INDIRECT(A1&"!"&B1) のままで b1 b2 b3 b4 b5 にそれぞれ "d5" "d6" "d7" "d8" "d9" と入れておく などという、計算エリアを別にもう1つ使うやり方や A1から参照する以外の汎用性がないもの(例えばrow()なんかを 使うとコレに陥りやすい)もNGです。  ごちゃごちゃと注文が多い上に解りにくいですがどうぞご教授 下さいませ。 よろしくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

=INDIRECT(A1&"!"&B"&ROW(A1)) または =INDIRECT(ADDRESS(ROW(A1),2,,,A1)) で =いちまいめ!B1 になります。 上記を下方にずらすとA1がA2,A3と変わり参照先もB2,B3に変化します。

kaienyaki
質問者

お礼

早い回答ありがとうございます。 多少訂正を加えて試してみましたところ うまくいきました♪ 何かを作りたいと思うとどんどん思いが発展し あれこれついやりたくなります。 思い立っても一般てきな記述意外を考え出すのが なかなか至難の業です。 というのもやはり、知っている関数であっても一般的な 記述方法しかわからす、配列にしてみたり驚くような 組み合わせにしてみたりなかなか思いつかないものですね♪ ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.2

セルの参照位置の指定については、ROW関数やCOLUMN関数で行や列の位置を抽出して計算に利用するなどの方法で解決できます。 その場合、ADDRESS関数やOFFSET関数も有用かもしれません。 例:  =OFFSET(INDIRECT(A1&"!"&"B1"),ROW(A1)-1,COLUMN(A1)-1,1,1)  =INDIRECT(ADDRESS(ROW(A1),COLUMN(A1)+1,,,A1)) など ANo.1 mshr1962さんの回答の一部を訂正させてもらいます。  ※mshr1962さんの回答はいつも参考にさせてもらっています。正直ADDRESS関数は念頭にありませんでした。 些細な問題で、自動で修正されますが…ダブルクォーテーションが不足していますね。  =INDIRECT(A1&"!"&B"&ROW(A1))    ↓  =INDIRECT(A1&"!"&"B"&ROW(A1))   または  =INDIRECT(A1&"!B"&ROW(A1)) 列の参照が 2に固定されていますので常時B列参照になっています。  =INDIRECT(ADDRESS(ROW(A1),2,,,A1))    ↓  =INDIRECT(ADDRESS(ROW(A1),COLUMN(A1)+1,,,A1))

kaienyaki
質問者

お礼

アドバイスありがとうございます。 丁寧な回答感謝いたします。 本当は何でもかんでも人に聞いてしまうのは正直 やってしまいたくないのですが どうしてもアイデアが出ない、あるいはまた もともとそれに関しては応用方法の種類が頭の中に 備わっていないなんてことが多く、 やむにやまれず質問してしまいます。 今回の件でも、相当(一日思案し、3時間ほどネットで 調べたり・・・)考えたのですが、なにぶんまだまだ 至らないものでで結局答えが出ず・・・。 答えを教えてもらってしまえばものすごく簡単だったりするのが またかえって悔しいです…。 Cupper より頂いた新たな式や発展した式も色々試したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelのシート間の参照

    Excelでシート間のセルの参照をしたいのですが、どのシートを参照するのかを すぐに変えることのできるようにしたいのです。 具体的には、A、B、Cという名前のシートがあり、シートDにおいて A1セルにA、B、Cいずれかの文字を入力すると、その下のセルの参照先が シートAのB1セルになるようにしたいのです。 とりあえず色々式を入れてみたのですが、すべて拒否されてしまいました。 たとえば ='A1'!B1 ='"A1"'!B1 とかです。 よろしくお願いします。

  • EXCEL シート間 相対セル参照のハズが、絶対に変わってしまう

    シートAのあるエリアのセルを シートBにて参照しています。 相対にてセル参照を作成したものですが、 日を置いて確認したところ絶対に変わってしまいました。 これでは他人に使用してもらうことができず困っています。 計算式の入ったセルを保護したのですがそれと何か関係があるのでしょうか?

  • エクセルで他のシートを動的に参照するには

    エクセルに関する質問です。 他のシートのセルを参照する場合、たとえば、 =Sheet1!D5 というように入力すると思います。 質問は、このシート名とセル名に、他のセルの値を使用したいのですが、方法はあるのでしょうか? できれば、VBAを使わずに。。。 質問が分かりづらいと思いますので、具体的に説明すると、A1にシート名("Sheet1")が、B1にセル名("D5")が入っている場合に、C1にその値(=Sheet1!D5)が表示されるようにしたいのですが、方法はあるでしょうか?

  • エクセル 行を列に参照する NO.2

    お世話になります。 昨日 http://sp.okwave.jp/qa/q9264221.html で質問させていただきましたもののアレンジです。 昨日の質問では、 Sheet1のA1からF500...の値を Sheet2のA列に参照させたい。 Sheet1 Sheet2 A1 →A1 B1 →A2 C1 →A3 D1 →A4 E1 →A5 F1 →A6 A2 →A7 B2 →A8 C2 →A9 . . . で、 Sheet2のA1に =OFFSET(Sheet1!$A$1,(ROW()-1)/6,MOD(ROW()-1,6)) と入力して,下にコピー という完璧な回答をいただきました。 これを、違う表でアレンジしたかったのです。 Sheet1のG2からN500... の値を Sheet2のE7から下に表示したかったのです。 あれこれ試して =OFFSET(Sheet1!$G$2,(ROW()-7)/8,MOD(ROW()-7,8)) で、値の参照ができました。 この中の、 -7 の部分がわからないのです。 どなたか、わかりやすく教えていただけませんでしょうか? お忙しいとは思いますが、よろしくお願いします。

  • エクセルの他シートからの参照方法について

    エクセルファイルで他のシートからデータを参照して反映させたい場合について、操作が分からないことがあるのでどなたか教えて下さい。 説明がうまくできていなかったらすみません。 sheet1のA列にsheet2のB列のデータを反映させたい場合、sheet1のA1に「=sheet2!b1」sheet1のA2に「=sheet2!b2」…というように設定し、以下は設定済みのA列を選択して下にドラッグしていけば連続データとして参照式が反映できると思うのですが、参照したいデータが連続したセルでない場合の方法が分かりません。 たとえば、sheet1のA1にはsheet2のb1、sheet1のA2にはsheet2のb11、sheet1のA3にはsheet2のb21…というように、反映させたいシートのセルは連続しているのですが、その参照元となるシートのセルは一定の間隔を空けて飛んでいる場合、上記と同じようにドラッグしても、セルの値におかしな数値が入ってしまいます。 仕方がないのでひとつひとつ参照先となるセルを手入力している状態ですが、効率が悪いので、ドラッグ等で一気に参照元を指定したいのですが、どのようにしたらいいのでしょうか? よろしくお願い致します。

  • 別シートの同じセル番地を参照したい

    質問させていただきます。 同じブック内で、別シートの同じセル番地の値を参照する表を作りたいと思っているます。 イメージとしては、A1にターゲットのシート名が記入されいるとして、 =INDIRECT(ADDRESS(COLUMN(),ROW(),4,TRUE,$A$1)) の様な関数で出来ればと思っているのですが、うまくいきません。 =INDIRECT($A$1&"!B2")等も試してみましたが、コピー&ペーストB2の部分が相対的に変化してくれないので、困っています。 良い方法があれば教えていただきたいので、よろしくお願いいたします。

  • EXCELで参照シート名含む計算式の変更マクロ

    マクロを作成しておりますして、わかりづらいか質問もしれませんが宜しくお願いします。 (1)マクロを配布し先方(複数拠点)で持っているブックに変更をかけ  たい。 (2)そのブック内には複数シートがあり、計算式で他シートを参照して  いる。 (3)その計算式を変更かけたい。が(2)でいう参照シートのシート名を各  拠点にて変更しているので、計算式も変更後のシート名が入って  いる。 例えば、 シート1のA1セルに「=(xxxxx)!B1/C5」という式を埋め込みたい。    ※(xxxxx)はシート名。 でも、(xxxxx)のシート名は拠点によってシート名がことなることが 問題。尚、シート名以降の計算式は全拠点共通。 そこで、こんなことがやれればのイメージですが イメージ1: シート1の他のセル(D1)で(xxxxx)と同じシート名を参照している 式が必ず存在している。拠点毎にシート名は異なるがセル(D1)の 場所は共通。 このセル(D1)の式からシート名を抽出し、上の「=(xxxxx)!B1/C5」 の(xxxxx)に入れて、シート1のA1セルにこの計算式を記載する マクロを作る イメージ2: もし「=(xxxxx)!B1/C5」の(xxxxx)部分に仮名称を入れたものを マクロでシート1のA1セルに書き込んだあと、各拠点にて(xxxxx) →それぞれ拠点で使っているシート名に置換する ような方法があ るか?(存在しない参照シート名のまま書き込むとファイル指定の ダイアログが開くので、開かないような汎用的な記述を一旦仮置き できないか?) 以上宜しくお願いしたします

  • EXCELシート名参照の方法 

    1.シート名をセルに表示させる関数はあるでしょうか? 2.関数式のなかで同一ブック内の他のシートを参照させる際、「Sheet1」などの絶対的なシート名ではなく、すぐ左隣のシートというような相対的な表現は出来ないでしょうか? 具体的には、「1日」から「31日」までの名前がついたシートがあって、「2日」以降のシートのA2に、 =A1+'すぐ左隣のシートの'A2 と入れたいのですが。A1に単日実績を入れて、A2に累計を入れたいのです。お知恵を貸してください。

  • Excelのファイルをまたいだシート参照について

    Excelのファイルをまたいだシート参照について AというファイルのシートaがbのA1を参照しているとき、Bというファイル(同じシートbを作成済) に貼り付けると、aの参照はAのファイルの別シートから参照(=[A.xls]b!A1)をするようになって しまうのですが、これをBのシート(同じ名前,b!A1)のなかで参照をするようにコピーする方法を教えてください。

  • EXCEL 一覧シートから各シートへ参照

    現在シートが 一覧、1、2、3、 とあります。 一覧シートには、 シート名(A1) 名前(B1) 1(A2) 山田(B2) 2(A3) 鈴木(B3) 3(A4) 木村(B4) と記載されております。(カッコ内は、セルの位置です) シート 1 のA1には、山田 シート1のB2を参照 シート 2 のA1には、鈴木 シート1のB3を参照 シート 3 のA1には、木村 シート1のB4を参照 とシート 一覧から参照して表示されるようにしたい と考えております。 数字の名前のシートが数個であればシート毎に入力すれば済む話ですが、 予定では、順次増え、最終的には100位になる予定です。 数式、マクロ VBA 等を使って  一覧シートに名前を入力すると該当のシートのA1セルに参照させる事は可能でしょうか? よろしくお願いいたします

このQ&Aのポイント
  • 電源を入れると、ブラザー製品DCP-J978NでスキャンできませんAFと表示されるトラブルについて相談します。
  • パソコンのOSはiOSで、無線LAN経由で接続しています。しかし、電源を入れるとスキャンできずにAFと表示されます。
  • このトラブルの解決方法や関連するソフト・アプリについて教えてください。
回答を見る

専門家に質問してみよう