• ベストアンサー

Excel シート間の連動を簡単にできませんか?

こんばんは。 例えばですが Sheet1,Sheet2,Sheet3 というシートを作ったとします。 このときに, 4枚目のシートには,それぞれを一覧にして表示したいと思います。 どういうことかといいますと Sheet1~3はそれぞれ同じフォームです。 例えば番号がA1に1,2,3とそれぞれ入っていて A2に名前を・・・Aさん,Bさん,Cさんと書くとします。 このときに,4枚目のシート(仮に「一覧」というシート名にします)では A1に1,B1に2,C3に3 A2にAさん,B2にBさん,C2にCさんというように 各シートの同じ場所のデータを表示させたいのです。 ここで私が知っている方法としては 一覧シートのA1の部分で「=Sheet1!$A$1」などと入力する 又はシートをクリックする形で連動表示させる方法があります。 ただ,この方法ですと 連動する回数だけ関数を入れなければなりませんよね。 例えば今回の場合はそれぞれのシートごと(Sheet1)の情報が 縦列につながっているので ひとつのシートから1個連動させたらあとはコピーしていけば 順番に連動はされると思います。 ただ,この方法では,もし連動させたいセルが離れている場所の場合, ドラッグするだけでは全然違う情報が連動されています。 各シートから一覧シートに引っ張ってくるセルの場所は同じですが それが全部順番につながっているわけではありません。 結局,一覧シートでSheet1を上手にひとつずつクリックで連動させたあと, 連動させた範囲を選択して,右にドラッグすると 同じようにSheet1の連動になってしまいます。(セルの場所は良いのですが) なので,連動の式の「Sheet1!」の1の部分を2に変えることで とりあえずSheet2の連動に変化させている状態なのですが もっと簡単な方法はないのでしょうか。 連動してくるシート名自体をセル参照させることはできないのでしょうか。 やはり連動してくるシートの名前自体を式で指定することはできないのでしょうか。 大変分かりづらい説明で申し訳ございませんが 補足はしっかりさせていただきますので どうかよろしくお願いいたします。

noname#155383
noname#155383

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

  • ベストアンサー
回答No.2

Excelの使い方や機能の中に「連動する」というものはありません。 「参照する」だけです。些細なことのように思うでしょうが、Excel の考え方を決定的に誤解するキーワードです。 まずは、各列の1行目に参照したいシート名を列挙します。Sheet1、 Sheet2…。で、これまで「=Sheet1!A4」と書いていたところを「= indirect(A$1&"!A4")」と書き換えます。これならフィルハンドルで 隣の列に複製した場合でも1行目に書いてあるシート名を参照するの で、ご希望に近くなるでしょう。 でも、何でもかんでもExcelという思い込みを捨ててファイルメー カーなど普通のデータベースに移行していれば、表示レイアウトを 切り替えるだけで一覧表示出来るんですけどね。

noname#155383
質問者

お礼

こんばんは。ご回答くださりありがとうございます。 「参照」と「連動」 あまり深く考えずに用いていました。たしかに正式には「参照」ですね。 しかし区別が厳密でない時点で, Excelの本質を理解していないのかもしれません。 今後学習が必要な点ですね。 私のつたない説明に対し,適格なご指導をありがとうございました。 教えてくださった方法を試したところ 思い通りの集計表を作成することができました。 フィルハンドルを使った(これも正式名称を使わずすみません)コピーでも 1行目に書いてあるシート名を参照してくれたのでうまくいきました。 ありがとうございました。 ファイルメーカーというソフト自体は知っているのですが 持ち合わせていなかったことと, どんなことができるかはっきりとわからなかったため とりあえず持っているExcelでできるのではないか!? と思ったのです。 実際にできたので勉強にもなったし,結果満足です。 ただ,今後はそういった他のソフトの使用も 考えていかないといけないとは思います。 ありがとうございました。

その他の回答 (1)

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

具体的に何をしたいのかよく分かりませんが Sheet4のA1セルから下へ  Sheet1!A1  Sheet2!A1  Sheet3!A1  Sheet1!A2  Sheet2!A2  Sheet3!A2  Sheet1!A3  Sheet2!A3  Sheet3!A3 などと参照させたいのでしょうか。 であれば、INDIRECT関数やOFFSET関数を使用してはいかがですか。  INDIRECT("Sheet"&MOD(ROW()-1,3)+1&"!A"&INT((ROW()-1)/3)+1) とすることで上記のような参照が可能です。 >ただ,この方法では,もし連動させたいセルが離れている場所の場合, >ドラッグするだけでは全然違う情報が連動されています。 これが何を言っているのか全く分からないのですが、 参照先に何も入力されていないと "0" が表示されると言っていらっしゃるのでしょうか。 であれば、あとからまとめて削除可能です。 A列の "0" を削除するのであれば、A列を選択して [編集]→[検索]→【オプション】→【検索する文字列:0】【検索場所:シート】【検索方向:行】【検索対象:値】→[すべて検索] 結果が検索ウインドウの下に表示されますので、全部選択してください。 (一番上を選択して、一番下をShiftキーを押しながらクリック) これで該当するセルが選択されます。 検索ウインドウを閉じて、DELキーを押せば一瞬にして綺麗に消えてくれます。

noname#155383
質問者

お礼

こんばんは。 私の下手な文章にお付き合いくださりありがとうございます。 大変参考になる内容をありがとうございました。 何がしたかったかと申しますと シートを参照するときに「Sheet1」の1を,2,3と 自動的に変えられないものか, もしくは集計するときに1,2,とあたまに番号をつけたら 自動的にその番号の各シートを表示してくれないかなと思ったのです。 自分の想像で,集計シートの1列に1,2,3と番号をつけて =Sheet3!A4 とクリックで作った式を =SheetA1!A4 という感じで変えてもエラーになったのが 質問をさせていただいた理由です。 ・・・またもや分かりづらい説明ですみません。 0削除の方法も大変参考になりました。 もっと関数の勉強をしていかなければいけないと感じました。 ありがとうございました。

関連するQ&A

  • エクセルのシート間のデータを連動させたい

    二つのシート間でデータを連動させたいのですが、シート2のa1からg1まで日付が入ってます。 同じくシート2のa3からg3まで数量が入っています。 シート1のa1セルに入力規則のリストを使ってindirect関数で、シート2のa1からg1迄の日付が 選択肢入力を使って入れられるまでは出来ました。 シート1のc3セルに関数を使って、シート2のa3からg3迄に入っている数量を、シート1のa1セルの 選択肢入力の日付が変わったら、それも自動で変わって入るようにしたいのですが、 ご教授いただけませんでしょうか。

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

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

  • EXCEL シートの値を求める

    こんにちは。こちらではいつもお世話になっています。 以下のような場合、どのような方法があるのかを教えてください。 ========================== ・1つのブックに複数毎のシート(例:シートA・シートB・シートC)があります。 ・それらシートの同じ箇所のセルの値(例:A1)を別シート(例:シートD)のA1から下に順番に入れたいと思っています。 ・シート枚数が増えても対応できるような方法であれば助かります。 【シートD】   A                  B 1 シートAのA1のセルの値 2 シートBのA1のセルの値 3 シートCのA1のセルの値 ========================== 説明が不十分であれば、申し訳ございません。 宜しくお願いします。

  • エクセル リストの連動について教えてください。

    エクセルの入力規則のリストを連動させて使用させたいのですが上手くできないのでご教授願いたいと思います。 まず、A1に食材の分類(野菜、肉など)をリストで選択できるようにしてあります。 A1の結果によってB1に食材(人参、玉ねぎなど)をリスト表示したいのですが、 (別シートに分類ごとにセル範囲に名前を付けてあります) 元の値を=indirect(A1)とするとエラーが出ます。 (A1には先に入力してあります) 食材のセル範囲の名前をoffsetを使って定義しているのですが (確認しましたが関数自体は間違っていません) offsetを使っているとエラーになるようなのです。 (A1:A5のようにセル範囲名前を定義しているときはちゃんと出来ます。) いろいろ調べましたが名前の定義、リストの連動の仕方自体は間違っていないと思うのですが・・・ 連動させるときはセル範囲をoffsetなどを使って可変にすると出来ないのでしょうか?

  • エクセルのシートを並べ替え。。。。

    エクセルのシートを並べ替えた時に、データーをリンクさせるにはどうすればよいですか。例えば・・シートA・B・Cの順で3つ並んでいる時 シートAのセルに1 シートBのセルに2 シートCのセルに3 と入力して シートの並び順をB・C・Aと変えたときに シートBのセルに1 シートCのセルに2 シートAのセルに3と表示させたいのですが。 よろしくお願いします。

  • Excelのシート間の参照

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

  • Excel、複数シート同セルを別シートで列に表示するいい方法教えてください

    Excelで、複数シートの同セルに数値又は、文字が入力されているものを別シートの列に表示(反映)させるいい方法を教えてください。 ・sheet1は、一覧表(sheet名):纏めるsheet ・sheet2~は、各物件名(sheet名) となっています。 例) sheet2~sheet4のA1セルに数値、B2に文字が入力されていたとします。 それを、sheet1(一覧表)のB2、B3、B4とC2、C3、C4にそれぞれ表示させたい。以下参照。    A    B   C 1 物件名  件数 有・無 2 北海道  10   有 3 青森   15   無 4 岩手   20   無 ・sheet1(一覧表)には項目、物件名は入力済です。  データのみ反映させたい。 ・sheetは、左から順番に並んでます。  (北海道、青森、岩手の順に) ・集計するわけではないので、最終行には合計とかはいりません。 ------------------------------------------------------------- また、できるかどうかわかりませんが、 sheet1(一覧表)を修正したらそれぞれの物件(sheet2~)も修正される。というような、画期的なこともできるのでしょうか? こちらは、上記が出来た上でのことなので、出来なければ出来ないで構いません。 どうぞ、よろしくお願いいたします。

  • EXCELの質問です。どなたか教えてください。

    EXCELの質問です。どなたか教えてください。 Sheet1のA1,B1,C1にSheet2のA1,C1,E1と、一つ飛ばしの 値を反映させるにはどうしたらいいですか? Sheet1のセルA1,B1に A1=Sheet2A1,B1=Sheet2C1とし、2つのセルを選択してドラッグしても A1=Sheet2A1,B1=Sheet2C1,C1=Sheet2C1,D1=Sheet2E1,E1=Sheet2E1,F1=Sheet2G1・・・ と反映されてしまいます。 できれば小難しい計算式は使いたくないのですが、なにかいい方法や簡単な 式があったら教えてください。 宜しくお願い致します。

  • EXCELの計算式に詳しい方お願いします

    EXCELの計算式で、一つのセルに式を入れて隣へドラッグして いくと式がコピーされますよね、そのことでお聞きしたいです。 例えばSheet1の表に、Sheet2上の数値を引っ張ってきたいとき、 Sheet1のセルA1に(=Sheet2!A1)を指定すると、横にドラッグすれば Sheet1のセルB1は(=Sheet2!B1)になるとおもいます。 でもそれを(=Sheet2!C1)にしたいのです。つまり引っ張る値を一つ 飛ばしにしていくということです。 これは一括でできるのでしょうか?伝わりにくかったらすみません。 初歩的なことだと思いますが、どなたかご存知の方お願いいたします。

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

専門家に質問してみよう