- ベストアンサー
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の連動に変化させている状態なのですが もっと簡単な方法はないのでしょうか。 連動してくるシート名自体をセル参照させることはできないのでしょうか。 やはり連動してくるシートの名前自体を式で指定することはできないのでしょうか。 大変分かりづらい説明で申し訳ございませんが 補足はしっかりさせていただきますので どうかよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Excelの使い方や機能の中に「連動する」というものはありません。 「参照する」だけです。些細なことのように思うでしょうが、Excel の考え方を決定的に誤解するキーワードです。 まずは、各列の1行目に参照したいシート名を列挙します。Sheet1、 Sheet2…。で、これまで「=Sheet1!A4」と書いていたところを「= indirect(A$1&"!A4")」と書き換えます。これならフィルハンドルで 隣の列に複製した場合でも1行目に書いてあるシート名を参照するの で、ご希望に近くなるでしょう。 でも、何でもかんでもExcelという思い込みを捨ててファイルメー カーなど普通のデータベースに移行していれば、表示レイアウトを 切り替えるだけで一覧表示出来るんですけどね。
その他の回答 (1)
- Cupper
- ベストアンサー率32% (2123/6444)
具体的に何をしたいのかよく分かりませんが 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キーを押せば一瞬にして綺麗に消えてくれます。
お礼
こんばんは。 私の下手な文章にお付き合いくださりありがとうございます。 大変参考になる内容をありがとうございました。 何がしたかったかと申しますと シートを参照するときに「Sheet1」の1を,2,3と 自動的に変えられないものか, もしくは集計するときに1,2,とあたまに番号をつけたら 自動的にその番号の各シートを表示してくれないかなと思ったのです。 自分の想像で,集計シートの1列に1,2,3と番号をつけて =Sheet3!A4 とクリックで作った式を =SheetA1!A4 という感じで変えてもエラーになったのが 質問をさせていただいた理由です。 ・・・またもや分かりづらい説明ですみません。 0削除の方法も大変参考になりました。 もっと関数の勉強をしていかなければいけないと感じました。 ありがとうございました。
お礼
こんばんは。ご回答くださりありがとうございます。 「参照」と「連動」 あまり深く考えずに用いていました。たしかに正式には「参照」ですね。 しかし区別が厳密でない時点で, Excelの本質を理解していないのかもしれません。 今後学習が必要な点ですね。 私のつたない説明に対し,適格なご指導をありがとうございました。 教えてくださった方法を試したところ 思い通りの集計表を作成することができました。 フィルハンドルを使った(これも正式名称を使わずすみません)コピーでも 1行目に書いてあるシート名を参照してくれたのでうまくいきました。 ありがとうございました。 ファイルメーカーというソフト自体は知っているのですが 持ち合わせていなかったことと, どんなことができるかはっきりとわからなかったため とりあえず持っているExcelでできるのではないか!? と思ったのです。 実際にできたので勉強にもなったし,結果満足です。 ただ,今後はそういった他のソフトの使用も 考えていかないといけないとは思います。 ありがとうございました。