• ベストアンサー

複数のシートから一覧表を作成する方法

次のことを実現させる方法を教えてください。 シート 「あ」「い」「う」があります。 ※例としてはシートを3つあげましたが、 このシートはどんどん数が増えていきます。 シート「あ」   A   B 1 鈴木 1976/1/1 シート「い」   A   B 1 佐藤 1977/1/1 シート「う」   A   B 1 山田 1978/1/1 そこから一覧表を作成したいのです。 その一覧表のシート名を「一覧表」とします。 シート「一覧表」(実現したいシート内容)   A    B   C 1 シート名 名前 生年月日 2 A     鈴木 1976/1/1 3 B     佐藤 1977/1/1 4 C     山田 1978/1/1 参照元のシートが固定されているなら   A    B   C 1 シート名 名前 生年月日 2 あ    あ!A1 あ!B1 3 い    い!A1 い!B1 4 う    う!A1 う!B1 と直接参照先を書けばいいのですが、 この方法では、シートが増えるたびに B列、C列にえ!A1 え!B1というように参照先を その都度書いていかなければいけません。 だから、一覧表で、シート名(A列)を入力ただけで、 自動的にそのシートに記載されている 名前と生年月日が反映されるようにしたいのです。 例えば今A3には「い」と記載されていますが、 これを「あ」と変更すると 以下のようにしたいのです。 B3のセルの中身は い!A1 → あ!A1 C3のセルの中身は い!B1 → あ!B1 一覧表のセルB列、C列にどのように記入すれば自動化できるでしょうか?

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

  • ベストアンサー
  • s_yoshi_6
  • ベストアンサー率73% (1113/1519)
回答No.1

一覧表のシートで、 B2に =IF(A2="","",INDIRECT(A2&"!A1")) C2に =IF(A2="","",INDIRECT(A2&"!B1")) として以下コピーとすれば良いと思います。 なお、シートが無いものをA列に記入するとエラー、空白の場合は空白となります。

kyoui7
質問者

お礼

ばっちり理想通りのものができました。 ありがとうございました。

その他の回答 (1)

  • moon_piyo
  • ベストアンサー率60% (88/146)
回答No.2

ご質問からすこしはずれますが、 '一覧表'から参照されるシートは同一ブック内の全てのシートを対象とする、 でよいのでしたら下記のvbaで'一覧表'に一覧ができそうです。 Sub 一覧作成() Dim i As Long Const ICHIRAN = "一覧表" i = 2 For Each Sh In Worksheets If Sh.Name <> ICHIRAN Then With Worksheets(ICHIRAN) .Range("A" & i).Value = Sh.Name .Range("B" & i).Formula = "=" & Sh.Name & "!A1" .Range("C" & i).Formula = "=" & Sh.Name & "!B1" End With i = i + 1 End If Next Worksheets(ICHIRAN).Range("A" & i, "C" & i).ClearContents End Sub

kyoui7
質問者

お礼

ご返答ありがとうございました。 VBAは未修得のため、勉強して試してみたいと思います。

関連するQ&A

  • 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セルに参照させる事は可能でしょうか? よろしくお願いいたします

  • 表から別シートに一覧表を作成したいのですが

    Excel2003にて複数店舗のシフト管理をしているのですが、 初心者のうえ独学で学んだ為全く分かりません。 縦に日付、横に人が並んでいる表といえば分かりますか? A1="日"、A2=1、A3=2… B1="佐藤"、B2="山田"、B3="鈴木" その交点にその人が行く店舗名が表示されている表を作成しています。 日 佐藤 山田 鈴木 1 A店  B店 2 C店      A店 そのデータから、 日付 応援に行く人 応援をもらう店舗 1   佐藤       A店 1   山田       B店 2   佐藤       C店 2   鈴木       A店 の様な表に変換しています。今までは手入力で変換していたため、 ミス等がないかチェックが大変で困っています。 何か良い方法がありましたら教えてください。 質問も初めてで分かりにくい所があるかもしれませんが よろしくお願いします。

  • 【エクセル】一覧の値を複数シートの決まったセルに表示させたい。

    いつもお世話になっております。 [Sheet1]の一覧の値を、複数シートの決まったセルに表示させたいと思っております。 [Sheet2]から[Sheet1]のデータを引っ張ってくるような 数式などありましたら教えて下さい。 ex)[Sheet2]の(B1)に鈴木、(B2)総務部と表示させたい。 ex)[Sheet3]の(B1)に佐藤、(B2)人事部と表示させたい。 ()内の文字はセルの名前です。 宜しくお願いします。 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ [Sheet1] (A1)シート名 (B1)名前 (C1)部署名 (A2)Sheet2  (B2)鈴木 (C2)総務部 (A3)Sheet3  (B3)佐藤 (C3)人事部 [Sheet2] (A1)名前  (B1)鈴木 (A2)部署名 (B2)総務部 [Sheet3] (A1)名前  (B1)佐藤 (A2)部署名 (B2)人事部

  • エクセルのシート間の串刺し?一覧表の作成で

    同じフォーマットのシートが複数枚あります(行事名、場所、日時・・などすべてシートのコピーにより作成)。それを新しいシートに一覧表として、A列には行事名、B列には場所、C列には日時・・という風に1シートに表示させたいのです。シートが増えていっても一覧表の行は下へ増えていく・・といったような表作成の方法を知りたいのです。 当サイトで調べてみたところ、似たような質問があり解決できる!と思いきや、その回答の中でもまた質問をしたくてモヤモヤしています・・・ その方の回答では 【【もし、私がやるとすると、シート名をSheet1,Sheet2,.と最後に数字をつけていく名前にします。 こうやると、串刺しを入力するシートで、どこかのセルにSheet1と入れて、そのセルをマウスでドラッグすれば以下sheet2,.という一列ができあがります。 これさえすれば、後はIndirect関数で該当のセルを参照すればOKです。 たとえば、A1~A10にシート名が入っていて、各シートの C1セルを参照する場合は、 INDIRECT("'" & A1 & "'" & "!$C$1") をB1に入れて、後はB2~B10にコピーすればいいわけです】】 だそうなのです(勝手に拝借してスミマセン)。すっごくわかりやすいのですが私にはこのINDIRECT関数の入れ方がわからないのです。 関数は探せましたがあとは1文字ずつ手入力(スペースも入れる?)すればよいのでしょうか? ("'" & A1 ??? またこの方の回答以外でも方法がありましたら教えてください(失礼ですが・・)。ほぼ初心者なのでVBAとかいう難しそうな方法は避けたいですし、アクセスではなくエクセルで作りたいのです。

  • 同じ文字列を抽出して新規シート作成

    A列~E列までデータが入力されています。 E列は所々、空白セルがあります。 1行目は見出しです。 元データのA列の中で同じ文字列を探して 見出しと該当するA~E列の行を新規シートとして作成。 その際、シート名はA列の文字列。 A列の文字列が2つ以上見つからなくても A列の文字列を新規シートにする。 最終行は常に変動します。 元データ (B列~E列は割愛) A-1 名前 A-2 鈴木 A-3 佐藤 A-4 鈴木 A-5 山田 A-6 佐藤 新規シート名 「鈴木」 A-1 名前 A-2 鈴木 A-3鈴木 新規シート名 「佐藤」 A-1 名前 A-2 佐藤 A-3 佐藤 新規シート名 「山田」 A-1 名前 A-2 山田 上記の事をマクロで実行させたいです。 ご指南の程、宜しくお願い致します。 エクセル2013

  • エクセルで作成した一覧表をカード形式にしたい。

    エクセルで作成した一覧表をカード形式にしたいのですが 例えばsheet1の 列1のセルA、B、C、D、E、Fに 山田さんの住所、氏名、年齢、職業、電話、備考 列2にセルA、B、C、D、E、Fに 佐藤さんの住所、氏名、年齢、職業、電話、備考、 列3にセルA、B、C、D、E、Fに 大山さんの… (以降は同様の繰り返し)を入力したとき、 sheet2の 列1のセルA、Bに山田さんの住所、氏名、 列2のセルA、Bに山田さんの年齢、職業、 列3にセルA、Bに山田さんの電話番号、備考、 列4にセルA、Bに佐藤さんの住所、氏名、 列5にセルA、Bに佐藤さんの年齢、職業、 列6にセルA、Bに佐藤さんの電話番号、備考、 列7にセルA、Bに大山さんの住所、氏名、 列8にセルA、Bに大山さんの年齢、職業、 列9にセルA、Bに大山さん電話番号、備考、 列10… と表示されるようにしたいのですが sheet2のA1、B1、A2、B2、A3、B3セルに数式を入力し 列4以降にコピーしても飛び飛びになってうまくいきません。 入力規則かと6列目まで増やしてコピーしても 7列目以降に正しくコピーできません。 何か関数が必要なのでしょうか?過去の質問も検索しましたが よく分かりません。よろしくお願いします。

  • エクセル:複数シートのデータを一覧シートに自動的に表示させるには?

    エクセル:複数シートのデータを一覧シートに自動的に表示させるには? こんにちは。 以前同じ質問をさせて頂いたのですが、締め切った後で試したところ どうにもうまくいかず(試さずに締め切ってしまった私が悪いのですが・・)、 もう一度質問させていただきます。 複数シート(6シート程度)に同一形式のリストがあり、あるシートに入力していくと 同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照) というようにしたいと考えております。 何かよい方法はありますでしょうか? お知恵を拝借できれば幸いです。宜しくお願い致します。 (例) Sheet1 ID 日付     名前  達成度・・・(項目=15項目ぐらい) 1 2010/10/17  山田  A 4 2010/10/30  鈴木  A ・ ・ ・ (それぞれのシートに100個ぐらいのリスト) Sheet2 ID 日付     名前  達成度・・・ 2 2010/10/17  佐藤  C 3 2010/10/20  中村  B ・ ・ ・ 一覧シート ID 日付     名前  達成度・・・ 1 2010/10/17  山田  A 2 2010/10/18  佐藤  C 3 2010/10/20  中村  B 4 2010/10/30  鈴木  A ・ ・

  • エクセル:複数シートのデータを一覧シートに自動的に入力させるには?

    エクセル:複数シートのデータを一覧シートに自動的に入力させるには? こんにちは。 お恥ずかしながら一日に2回もエクセルの質問をさせて頂きます。 複数シートに同一形式のリストがあり、あるシートに入力していくと 同一ファイル内の「一覧シート」に自動的にID番号順に表記される(※下記参照) というようにしたいと考えております。 何かよい方法はありますでしょうか? お知恵を拝借できれば幸いです。宜しくお願い致します。 Sheet1 ID 日付     名前  達成度・・・ 1 2010/10/17  山田  A 4 2010/10/30 鈴木  A ・ ・ ・ Sheet2 ID 日付    名前  達成度・・・ 2 2010/10/17  佐藤  B 3 2010/10/20 中村  B ・ ・ ・ 一覧シート ID 日付    名前  達成度・・・ 1 2010/10/17  山田  A 2 2010/10/18  佐藤  B 3 2010/10/20 中村  B 4 2010/10/30 鈴木  A ・ ・

  • EXCELで全てのシートを参照した一覧表の作成方法

    色々な情報を入力したSheetが50枚あり、 あまり手間のかからない方法で、 この50枚の中で、ある特定のセルの情報だけを参照させて一覧にした表を作成したいと思っています。 具体的には、Sheet名が”一覧表”というシートを作成し、 この”一覧表”シートの B1 セルには Sheet1 の A1 セルの値を表示させ、 次いで、同”一覧表”シートの B2 セルには Sheet2 の A1 セルの値を、 次いで、同”一覧表”シートの B3 セルには Sheet3 の A1 セルの値を、                       ・                       ・                       ・ 最後に、同”一覧表”シートの B50 セルには Sheet50 の A1 セルの値を、 といった形で、一覧表を作成したいです。 ご教示いただけますでしょうか。 よろしくお願いいたします。

  • 複数シートにあるデータを別シート集計表へ参照させる

    保険料率のような、A列に等級が入り B列からF列まで種別が入り A列2のC列2の103を別シートのセルに参照させる方法を教えてください ただし、料率表は役員、部長職、課長職、主任職、一般職A、一般職B、一般職C、とあります。 シート作りは同じにはなっていますが、参照させる表は一つで 役員の山田さんは役員表から 部長の佐藤さんは部長の表から、主任の加藤さんは主任の表から、一般職はそれぞれ一般職A,B,C の表から参照して料率をセルに参照させたい時はどのようにしたらいいのでしょうか? 宜しくお願いいたします。 A列は25号級位あります。下表がわかりにくくて申し訳ありません。 宜しくお願いいたします。 幹部料率表 A列 号級    B列  C列  D列  E列  F列   等級 1   2   3   4   5 1    100  101  103  104  105 2    101  103  104  105  106 3    104  105  106  106  107 4 ・ ・ ・

専門家に質問してみよう