• ベストアンサー

シート名を変数で持つには?

皆さんの知恵をお借りしたいと考えております。 たとえばシート名「sheet1」のA1セルに「リンゴ」とデータが入っているとします。 次にシート名「sheet2」のA1セルに「sheet1」データを入れます。 そしてシート名「sheet3」のA1に「リンゴ」を表示させたいのです。 ”=sheet1!A1”とすれば簡単に表示されるのですが、sheet2のA1に入っている「sheet1」というデータを利用してsheet1のA1セルを参照できないでしょうか? お知恵を貸してください。

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

  • ベストアンサー
  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

こんにちは~ > 実は正式なシート名に括弧「()」を使用していたのですが、 =INDIRECT("'"&Sheet2!A1&"'!A1") としてみてください。 画面上では見づらいかもしれませんが、'( シングルクォーテーション )を ""で囲っています。 &"!A1" の !の前にもシングルクォーテーションをつけます。  ★ 上の数式をコピー&ペーストしてみてください。 Sheet2 も、実際は ( )を使ったシート名なら、 (例) =INDIRECT("'"&'テスト(2)'!A1&"'!A1") のように、そのシート名もシングルクォーテーションで囲ってください。 コチラで検証した結果、↑の数式でうまくいきました。 理由を訊かれてもわかりませんが‥

chemistry2005
質問者

お礼

ご返答ありがとうございます。 できました! 解決しました。 ありがとうございました。 どうもお手数をおかけいたしました。

その他の回答 (5)

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.6

>括弧をつけると以前のようにエラー「#REF!」が出ました。括弧に問題があるのでしょうか?  そのとおりでしょうね。()はセル内では演算子となりますので、それを文字列として引数に持ってくるとエラーになると思います。  因みにあるセルで(1)と入力すれば「-1」となりますね。  Sheet名に括弧などを付けたいときは、()でなく「」にされたらいかがでしょうか。

chemistry2005
質問者

お礼

ご返答ありがとうございます。 たとえ全角にしていても、括弧は演算子扱いされてしまうのですね。勉強になりました。 どうも何回もご返事いただきましてありがとうございました。 また何かわからないことがあれば、よろしくお願いいたします。(ド素人なもので・・・(笑))

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.4

 実際にSheet1のシート名を何とつけて、Sheet2のA1に何と入力して、更にSheet3の、INDIRECT関数の引数(括弧内の文字列)がどう入力してあるかが分からないと答えることが出来ません。  私が試した例では、 Sheet1のシート名を仮に「品名表」とします。 Sheet2のA1に「品名表A1」と入力します。 この場合Sheet3の式が =INDIRECT("品名表A1") となっていると「#REF!」となります。(「!」がないからです。) 正しい答を得るためには =INDIRECT("品名表!A1") か、又は =INDIRECT(Sheet2!A1) でなければなりません。なお、「!」は半角「!」でないとダメです。全角で入力した場合は、F9キーを押して半角にします。  もしかしたら「!」が抜けているとか、全角「!」になっているとか、あるいは「品名表」とした場合の「" "」が抜けてませんでしょうか。

chemistry2005
質問者

お礼

返答ありがとうございます。 いろいろなシート名で試してみた結果、 実は正式なシート名に括弧「()」を使用していたのですが、この括弧をはずすと表示されました。 括弧をつけると以前のようにエラー「#REF!」が出ました。括弧に問題があるのでしょうか?

noname#187541
noname#187541
回答No.3

#1のM-SOFTです。 シート名が間違っていませんか。大文字小文字・全角半角O(オー)と0(ゼロ)など間違いやすいので、よく確認してください。 テストデータでうまくいくのですから式は間違っていないのです。

chemistry2005
質問者

お礼

どうも、返信ありがとうございます。 シート名ですが、コピー&ペーストして貼り付けてみたりしたのですが、相変わらず「#REF!」のままです。 一度Excelを終了したりしてみたのですが、エラーが出たままになってしまいます。 ふぅ、お手上げ。 おっしゃる通りテストデータではうまくいったので、M-SOFTさんは適切なアドバイスを下さったと考えております。 ありがとうございました。 なぜだぁ~~~!!

  • zenjee
  • ベストアンサー率47% (50/106)
回答No.2

>「sheet2」のA1セルに「sheet1」データを入れます  ちょっとこの意味がよく分かりませんが、「sheet2」のA1セルに入っているのは「Sheet1!A1」という文字列でしょうか。  もしそうであれば、Sheet3のA1に =INDIRECT(Sheet2!A1) と入力すればいいと思いますが……。  Sheet3のA1を選択した状態で、関数ウイザードを開き、INDIRECT関数を選択し、ダイアログボックスの参照文字列のと頃でSheet2似戻り、A1セルを選択、OKするだけです。するとSheet3のA1がリンゴとなります。

chemistry2005
質問者

お礼

関数ウイザードでINDIRECT関数を開いて作業を行いました。 回答者No.1のM-SOFTさんの所にも書きましたが、テストデータ(質問で出した例)ならばうまくいくのですが、実際のデータでは「#REF!」が出てしまいます。テストデータと実データの差は余りないのですが・・・。 ご解答ありがとうございました。

noname#187541
noname#187541
回答No.1

こんにちは。 INDIRECT関数を使うと出来ますよ。 =INDIRECT(Sheet2!A1&"!A1") でどうでしょうか。

chemistry2005
質問者

お礼

どうもありがとうございました。 上記例(質問で出した例)ではうまくいくのですが、 実際のデータでは「#REF!」が出てしまいます。 なぜでしょう?(笑) ありがとうございました。

関連するQ&A

  • シート名だけを変えてコピーしたい

    Excel 2003を使用しています。 添付画像は、一時的に数式を表示するようにしています(どのセルに今どのような計算式が入っているか)。 Sheet6 の セルB2からセルF2迄、データ1の値を参照する計算式が入っていますが、 これを、3行目から6行目まで、シート名の違う、計算式をコピーしたいのですが、 どのようにすれば良いでしょうか? 縦にコピーした後、参照式のシート名と行番号を変更しています。 例えば、セルB2をセルB3にコピーしたら、セルB3の参照式は データ1!A2となっています。 これをデータ2!A1としたいのです。 実際に計算式の入っているシートは、もっと沢山の参照式が入っているので元の計算式の方法を 変更は難しいです。

  • EXCEL関数でシート名が変わる可能性があるシートのデータを表示させたい

    EXCELの同BOOK内の別シートのデータ参照に関して教えてください。 <内容> sheetが2枚有ります。 Sheet2のシート名は変わることがあります。 Sheet1にsheet2の特定セル(A100)のデータを表示させたい。 <困っていること> 色々調べて下記の関数をsheet1の表示させたいセルに設定しました。

  • シート参照で変数を使いたい(EXCEL)

    通常、Excelで別シートのセルを参照する時は「'シート名'!B3」といった数式になりますが、この「シート名」をユーザーに入力してもらうような仕組みを作りたいと考えています。 ・あるシートのA3(例)にシート名を入力すると、B4セルに入力されたシートのB3セルの内容が表示される このようなこと、可能でしょうか?

  • セル参照するとシート名が表示されます!!

    Sheet1の文字列をSheet2にセル参照したいのですが、[Sheet1!A1]のようにシート名がセルに表示されてしまうのです。 なにか変な設定でもしてしまったのでしょうか?? おわかりの方教えてくださーい!

  • ファイル名やシート名、パス等の変更を参照する方法

    エクセルで他のファイルや他のシートのセルを参照している場合に、環境の変化で他のファイル名やパスが変更されたり、シート名が変更されると「ファイルが見つかりません。」というメッセージが表示され、影響が出たセルの数だけ利用者が元のファイルやシートを探す羽目になり、操作上の面倒を強いられております。 この場合、この様な手間を掛けないで済むよう予め変数を設定するセルを用意しておくように修正したいと思います。 環境に変更が生じた場合は、この変数を設定したセルだけを変更すれば個々のセルに影響が出ないようにすることが望ましいと考えますが、実際にどのようにすれば実現できるのかエクセルの関数等を調べても判りません。 具体的にファイル名やシート名、パス等の環境を設定するセルと、それを参照するセルの関係を下記の例で、 (1)参照するセルXの設定内容 (2)ファイル名やシート名、パスを自動的に設定したり、参照する方法 以上のご教示を、よろしくお願いいたします。 例 セルA:ファイル名を変更設定するセルで、内容:Table01 セルB:シート名を変更設定するセルで、内容:Sheet01 セルC:パスを変更設定するセルで、内容:D:\Data\Table セルX:参照するセルで、変更前の内容:C:\Data\Table\[TableA.xls]SheetA'!C5

  • EXCELシート名参照の方法 

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

  • 隣のシート名を取り込みたい

    製品毎の部品をまとめたシートがあります。その一部を取り出して、形を整えて印刷したいので、印刷用のシートを作成して、そのシートに部品一覧からデータを取り込みたいです。 1対1のシートであれば問題なくデータを取り込む事が出来るのですが、シートの数が多いので、印刷用のシートを一つ作って、それを元のシートの隣にコピーして使えないかと考えています。 元データのシートは同じテンプレートから作成していますので、同じセル位置に同じようなデータが入っている物とします。 つまり、計算式を入力したセルをコピーすると、計算対象のセルも相対的に変化するように、印刷用のシートで元のデータを参照する時、例えば[='Sheet1'!A1]と言うようなセルを含むシートを、Sheet2の右隣に挿入したら[='Sheet2'+!A1]となるように自動的に左隣にあるシートを参照するように出来ないでしょうか。 もし可能なら、シートの名前も「Sheet2-aa」などのように元データの付属のシートと分かる様な名前に変更出来たら良いですね。

  • 【エクセル】シート名を一覧から参照して記述

    色々と調べてみたのですが、どうしても自分の やりたいことと違ってしまうので、知恵をお貸しください。 例えば、 ・シート数が100ある ・最初のシートに目次をつける(100行) ・最初のシート100行を参照して、シート名を一括で変換(同順) このようなことは可能でしょうか? 各シートの特定セルを参照してシート名を変換するやり方は みつけたのですが、参照するのは1つのシートからにしたいです。 どうか、お知恵をお貸しください。

  • excel2007 vlookup関数 シート参照

    次のような関数をつくって利用しています =VLOOKUP($B$3,'1101'!$1:$1048576,2) ここで利用しているのは、シート名「1101」なのですが アクティブシートのセルに入力した名前に対応して 参照するシートを変更したいのです 上の式の1101のところに、セルA4やindirect(A4)などを いれようとしましたがうまくいきません 調べてみましたがうまく調べられないので 質問することに決めました。 ご指導よろしくお願いします。

  • シート名を取得したい

    質問) シート名をセルへ自動表示することはできますか? 例) (1)シート名「sheet1」を「マスタ一覧」へ変更します (2)そのときに、A1セルへ「マスタ一覧」と表示することはできますか? お願いします

専門家に質問してみよう