- ベストアンサー
Excelシートでマスタとビュー管理が可能でしょうか?
Excelのシートをマスタとビューとして使えたらいいな・・・と考えています。 そもそもExcelでできるかどうかすら判らない状況ですが 何かアドバイスをいただければと思い質問させていただきます。 実際にExcelでこのような使い方はできるのでしょうか? できる場合、どのように設定したらできるのでしょうか? また、できる場合、ビューからマスタを更新するにはどうしたらよいでしょうか? ■やりたい事 1つのマスタシートを元に、複数のシートに それぞれの条件に一致したデータを表示させたい。 表示はコピーではなく、参照(リンク)した状態に したいです。 つまり、マスタ(もしくはビュー)のシートのデータが更新されると そのデータを表示しているビュー(もしくは元となるマスタ)の データも更新されるようにしたいです。 ■使用するシート ・[マスタ]シート ・[関東食品]シート ・[関東食品以外]シート ■[マスタ]シートのデータ A____B____C___D____ 地区__製品__年度__実績__ 関東__食品__2005__500__ 関東__衣類__2005__400__ 関西__食品__2005__300__ 関西__家具__2005__600__ 関東__食品__2006__200__ 関西__玩具__2006__300__ ■[関東食品]シートのデータ(マスタを参照したデータ) A____B____C___D____ 地区__製品__年度__実績__ 関東__食品__2005__500__ 関東__食品__2006__200__ ■[関東食品以外]シート(マスタを参照したデータ) A____B____C___D____ 地区__製品__年度__実績__ 関東__衣類__2005__400__ VBAなどでないと実現できない場合は、頑張って試してみようと思いますが。 できれば、関数などやExcelの機能で実現できるとありがたいのですが、 何か良い方法がありましたら教えていただけないでしょうか m(_ _)mよろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
■[関東食品]シートのA2セルに次の式をペーストしてShift+Ctrl+Enterで確定し、そのセルをB~D列にコピー。 更に行の下方向へコピーする =IF(ROW()-1<=SUMPRODUCT((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500="食品")*1),INDEX(マスタ!A$1:A$500,SMALL(IF((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500="食品")=1,ROW(マスタ!$A$2:$A$500),99999),ROW()-1)),"") ■[関東食品以外]シートのA2セルについても同様 =IF(ROW()-1<=COUNTA(マスタ!A:A)-SUMPRODUCT((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500="食品")*1),INDEX(マスタ!A$1:A$500,SMALL(IF((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500="食品")=0,ROW(マスタ!$A$2:$A$500),99999),ROW()-1)),"") マスタシートのデータ行が500より多いのであれば式中の500を変更して下さい
その他の回答 (2)
- zap35
- ベストアンサー率44% (1383/3079)
#02です。「関東食品以外」の解釈が間違っていました。以下の式に変更して下さい。Shift+Ctrl+Enterで確定し、そのセルをB~D列にコピー。更に行の下方向へコピーするのは一緒です。 ■[関東食品以外]シートのA2セル =IF(ROW()-1<=SUMPRODUCT((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500<>"食品")*1),INDEX(マスタ!A$1:A$500,SMALL(IF((マスタ!$A$2:$A$500="関東")*(マスタ!$B$2:$B$500<>"食品")=1,ROW(マスタ!$A$2:$A$500),99999),ROW()-1)),"")
- hakkiriitte
- ベストアンサー率41% (20/48)
ちょっとフクザツなので、全部ここに書くのはしんどいのですが、ポイントだけ。 マスタとビューをリンクさせるのは可能。 例えば、マスタの行が固定ならば、単純にビューのセルからマスタのセルを参照すればよい。 具体的には、ビューのセル上で=キーを押してから、マスタのシートの参照したいセルに移動して、ENTER。 マスタのデータともっとアクティブにリンクさせたいのであれば、VLOOKUP関数というのがあります。 これは説明が厄介なので、ヘルプを参照するか、メニューの挿入→関数でいろいろ試してください。 VLOOKUP関数はソースとなるシートのキーが昇順でならんでいないと誤動作することがあります。 さらにアクティブにするには、クエリを使うのですが、これはさらに説明が厄介です。 ヘルプを見てください。 ただ、どの方法も、ビューはあくまでもビューであって、変更はマスタからしかできないのです。 お求めの効果を実現するのは、データベースの機能ですので、この際ですから、データベースの導入をご検討なさってはいかがでしょう。 マイクロソフトオフィスでは、Accessというのがデータベースです。
お礼
hakkiriitte様 回答有難うございます。簡単な方法(=キーを押して・・)は、 zap35様からもらった回答の方法と同じですよね、きっと。 以外にシンプルな方法で助かりました! VLOOKUP関数(昇順の件、アドバイス有難うございます。使うときは気をつけるようにします。) クエリについても説明有難うございます。 また、ビューはやっぱりビュー(参照表示)なんですね。会議しながら書き換えたい資料だったのでビューからの更新ができることを期待していたのですが、 残念ですが、納得&諦めがつきました。マスタを更新するように考え直します。 そもそも、何をキーワードにあたりを付ければよいのか判らずに、 実現可能かどうかも心配だったので、実現方法+キーワードを色々教えていただけて助かりました。 (実現可能なんだ~と安心しました。) 有難うございました<(_ _)>
お礼
zap35様 教えていただいた方法でビューに表示できました!!! 何か沢山の関数がありますが、これからヘルプで調べて自分なりに表示条件などを変えてみようと思います。 そもそもこんなことできるの??って心配だったので、バシッと式を教えてもらえて 直に実際に試すことができて(表示できることがわかって)安心しました。 元々はマスタをオートフィルタのオプションでで表示しなおしながら会議をしていたのですが、 切替えたりしているのが、会議の妨げ(無駄な時間)になるようで。。。 ビューシートを用意しておけば、スムーズに会議が進められそうです! 有難うございました<(_ _)>