プロが教えるわが家の防犯対策術!

ExcelのC10にシート名を打ち込むと、
他のExcel(それぞれ●月度入力ファイルとなる)から
C10に入力したシート名を検索し、
該当のシートのAL30の値を表示したいのですが
どのようにしたらよろしいでしょうか?

vlookupやIndiaなど使いましたが、複数のファイルからシートを割り出し、セルの値を返すことができませんでした。
ご教示ありがとう頂けますと幸いです。

※分かりにくい説明で申し訳ございません

質問者からの補足コメント

  • Indiaではなくindirectでした。

      補足日時:2020/07/07 13:44
  • ご回答ありがとうございます!
    複数ファイルの存在位置は固定で1〜12月分まであります。
    その月別ファイルの中に日にちごとのシートが存在しており、集計ファイルのC10にシート名を打ち込み値を返したい方法が無いかと模索しているところになります。
    ご教示お願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2020/07/07 14:14
  • ご回答ありがとうございます!
    シート参照はご教示頂いた方法で出来たのですが、他のExcelファイルの選択が出来なく苦慮しています。。。

    No.1の回答に寄せられた補足コメントです。 補足日時:2020/07/07 14:15
  • ご教示ありがとうございます!
    操作についてはご回答者様の仰るとおりの動きが出来れば理想と考えております。

    また、具体的には『●月度入力ファイル』と言うファイル名のファイルが12個有り、各シートに(年、月、日)の5桁となっております。

    該当のシートについては例えば、C10に(20707)と入力したら7月度のファイルの20707シートのAL30の値をD5に表示したいと思っております。
    Rengeについては勉強しておらず使ってませんでした。。。

    No.3の回答に寄せられた補足コメントです。 補足日時:2020/07/07 14:27
  • ご回答ありがとうございます!
    こちらはVBAになりますでしょうか?
    初歩的質問で申し訳ございません。。

    No.4の回答に寄せられた補足コメントです。 補足日時:2020/07/07 14:30
  • ご教示ありがとうございます!
    参照ブックを開かず参照出来れば理想と考えております。

    日付については、月が一桁となり10月からはA.B.Cと増えます。
    なので例としては20C07などになります。

    No.5の回答に寄せられた補足コメントです。 補足日時:2020/07/07 14:46

A 回答 (6件)

んー。


質問者さんの場合は、面倒でも全て手作業で行うことを強く勧めます。

マクロ、数式、について全く理解されていないと判断されます。
誰かが怪しいマクロをここに書いて提示したら、それをそのまま使ってしまいそうで怖い。

また、誰かに代わりに作ってもらう事を目的としているのであれば、Q&Aの趣旨に沿わない投稿になります。
ここは自力で解決するためのアドバイスを貰う場所、と考えておきましょう。
    • good
    • 0
この回答へのお礼

ありがとう

皆さまご教示ありがとうござました。
もう少し理解してから取り組みたいとおもいます。
今後のアドバイス等をいただいた回答者様をベストアンサーとして選ばせていただきました。
また不明点があった際はアドバイス等いただけますと幸いです

お礼日時:2020/07/08 07:56

INDERECTを使ってシート参照ができるなら、同じように他ブックの参照を作ればいいだけですよね?


何がわからないのかがわかりません。
一度、実際に他ブックを参照した式を見ながらINDIRECT関数を組んでみたらいいのでは?
ちなみにINDIRECT関数を使うなら参照元のブックは開いてないと反映しませんけど。

細かいことですけど、
>C10に(20707)と入力
年は令和の年ですか?10年以降は8桁になるんですか?それとも、月が1桁なの?
この回答への補足あり
    • good
    • 2

同一シート上のセルを参照する場合は、


 =セル番地
 =A1
 =SUM(A1:A10)
他のシート上のセルを参照する場合は、
 =シート名+!+セル番地
 =Sheet2!A1
 =SUM(Sheet2!A1:A10)
他のブック上のセルを参照する場合は、
 =ファイルパス+[+ファイル名+]+シート名+!+セル番地
 =C:\DATA\[example.xlsx]Sheet2!A1
 =SUM(C:\DATA\[example.xlsx]Sheet2!A1:A10)
のように指定する。

…質問者さんなら、このアドバイスで解決できると思うのですがいかがでしょう。
この回答への補足あり
    • good
    • 2

まず・・・



> ExcelのC10にシート名を打ち込むと、

この操作と

> 他のExcel(それぞれ●月度入力ファイルとなる)から
> C10に入力したシート名を検索し、
> 該当のシートのAL30の値を表示したいのですが

この動作の連動はどういう操作仕様でお考えでしょう?
前者のセルにシート名をキー入力し、Enterキーを押して入力が確定すると自動的に他のExcelファイル内を検索するのでしょうか?

また、「それぞれ」とありますので検索対象になるExcelファイルは複数有ると理解できるのですが、具体的に何という名前のファイルなのでしょう?
加えて、そのファイル内に複数シートが有った場合は全シートが検索対象になるのでしょうか?

更に、「該当シート」とはシーツ名を入力するシートでしょうか?

ちなみに他ファイル(他ブック)のあるシート上の特定のセルの値の参照はそれぞれの名前を指定するだけです。例えば・・・

  Workbooks("●月度入力ファイル.xls").Worksheets("シート1").Range("A1").Value

・・・という感じ。シートの指定は名前ではなく先頭からの数でもOKです。Worksheets(1)といった感じ。

シート内の検索はVlookupを使います。どういうコードを書いてどううまく行かなかったのかわかりませんが、Range()を使った適切な検索範囲の指定はされましたか?

こういったことはExcelのマクロエディターを使っている際のヘルプや、インターネット上のVBAの解説サイトを探せば簡単に情報を得ることが出来ます。後者はGoogleで適当な(=適切な)キーワードを指定して検索すればたくさんヒットするはずです。「Excel VBA 他ブック 参照」といった感じで。。。

参考まで。
この回答への補足あり
    • good
    • 2

こんにちは



>C10に入力したシート名を検索し、
「シート名」と同じように「ブック名」を指定できるのであれば、INDIRECT関数で対象セルを指定することが可能です。

あるいは、ブック名は不明な状態から「シート名」に該当するシートを探したいということでしょうか?
こちらの場合は、VBAなどのプログラムを利用すれば可能と思われます、
>複数のファイルからシートを割り出し、
少なくとも、ファイルの存在する位置(ディレクトリなど)はわかっているものと仮定しています。
この回答への補足あり
    • good
    • 2

以下でお試しください。


=INDIRECT(C10&"!AL30")
この回答への補足あり
    • good
    • 2

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング