
集計用のブックの中に商品マスタのシートが入っていて、それを参照して集計しているのですが、
複数の部署で使用するブック全てにそのシートが入っています。
商品マスタに変更がある度に、全ブックのシートのメンテナンスが必要なので、
商品マスタを別ブックにして、そこを参照するようにしたいのですが、問題点があります。
商品マスタは以下の様になっています。(実際の内容は書けないので例として変えてます)
野菜、大根、100円
野菜、人参、100円
野菜、ピーマン、100円
野菜、キャベツ、100円
果物、みかん、100円
果物、すいか、100円
果物、りんご、100円
肉、豚肉、100円
肉、牛肉、100円
肉、鶏肉、100円
野菜、果物、肉の範囲それぞれに名前の定義で「野菜、果物、肉」と名前を付け、
Indirect関数を使って、
第1プルダウンで「果物」を選択すると、第2プルダウンでは「みかん、すいか、りんご」のみがプルダウンの選択肢になるようにしてます。
商品マスタが外部ブックになったとしても、
第1プルダウンの値によって、第2プルダウンが絞り込めるようにするにはどうしたら良いでしょうか?
また、現時点でも負荷がかかっている点として、
果物に1商品追加された場合(1行挿入)、
名前の定義の範囲が自動的に広がってくれません。
例えば、りんごの下に、イチゴを挿入しても、名前「果物」の範囲が「みかん、すいか、りんご」のままです。
VBAが必要なら改めて質問を作成して投稿しなおします。
詳しい方、よろしくお願いいたします。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
> 元ブックの行、列追加削除で色々影響あると心配してました。
マスタにテーブル書式を設定しておいてクエリは「シート」ではなく
「テーブル」から作成すれば行挿入/削除は影響しません。
No.4
- 回答日時:
入力規則のリストに外部データを直接参照させることは無理です。
今は全てのブックに「商品マスタ」シートがある状態なんですよね?
そのデータを 基になる商品マスタファイルから クエリで読み込んで
くる形に変更すれば他は特に何も変更しなくていいと思います。
クエリで参照するんですね。なるほど。
全セルを参照する形だと、
元ブックの行、列追加削除で色々影響あると心配してました。
ありがとうございます。
No.3
- 回答日時:
No1です。
テスト(できることの確認)を兼ねて、ごく簡単なものを作成してみました。
添付図の、A、B、C列はNo1のリンクの方法で、別ブックから連動して元データを取り込んでいます。
(値段がご提示と違ったり、追加の項目があるのは、元ブックを変更しても連動できていることの確認のため変えたものなので、お気になさらずに…)
これによって、配布された各ブックに、常に元データを反映したものが取り込まれることになります。
作業用に、E、F列にプルダウン用のリストが自動作成されるようにしてあります。
リスト1がプルダウン1、リスト2がプルダウン2に当たります。
ついでに、H1をプルダウン1、G1をプルダウン2にしてありますが、実際はプルダウンは別のところにあるでしょうし、E、F列も見えないようにしたければ、非表示にするとか別の列にしておくなどが考えられます。
以下、office365環境での関数を記述してありますのでご注意。
E3セルに
=UNIQUE(FILTER(A:A,A:A<>"",1))
F3セルに
=FILTER(B:B,A:A=H1,1)
(↑H1は実際にはプルダウン1のセルアドレスを指定)
を入力すると、スピル機能で下方に該当する項目が表示されます。
更に、E2セルに
=SUMPRODUCT((E3:E99<>"")*1)
を入力し、F2セルにコピペしてあります。
プルダウンの設定は、上記のリストを利用して、
プルダウン1は「元の値」に
=OFFSET($E$3,,,$E$2)
を設定してあります。(プルダウン2も同様に設定します)
以上で、プルダウン1の選択内容に応じて、プルダウン2の選択内容が変わるようになります。
また、元データの分類項目が増減しても、自動的にプルダウン1もプルダウン2も連動するようになります。
元データのデータ順は順不問です。(必ずしもソートして整理されている必要はありません)
元データ内で、「分類-項目」の組み合わせが重複することはないものと仮定しています。
もしも、office365の関数が利用できない場合は、関数式が長くなりますが同様の処理を行うことで、同様の結果を得ることが可能です。

No.2
- 回答日時:
各ブックでマスターのブックを参照するシートを作っておいて、
その参照したシートをさらに参照させればよい話。
別のブックの範囲を指定することはできますけど、
別ブックの範囲を入力規則のリスト範囲として参照することはできないのです。
マスターのブックを参照しているシートが邪魔なら、作成後にそのシートを非表示にしておけば良いでしょう。
非表示でも演算に支障はありません。
No.1
- 回答日時:
こんばんは
>商品マスタを別ブックにして、そこを参照するようにしたいのですが、
>問題点があります。
利用する際に、自ブックに取り込んだ形にできれば、問題は解決するのではないでしょうか?
マスターの元ブックは、利用者全員がアクセス可能なサーバに置いておくなどが可能であれば、各シートにはそれの参照を作成しておきます。
例えば、ブックを開いた際に、接続を自動更新するような設定にしておけば、問題は解決しませんか?
(データ量によって、読み込みに若干の時間がかかるかもしれませんけれど…)
https://support.microsoft.com/ja-jp/office/excel …
>名前の定義で「野菜、果物、肉」と名前を付け、
>Indirect関数を使って、~~
A列~C列を当該データ専用にできるのなら、名前の定義を利用しなくても、プルダウンの仕組みを作ることは可能です。
(検索すれば、いろいろ方法は見つかると思います。)
第二プルダウンで分類が済んでいることから、B列の選択肢は10種類程度以下で済んでいるのであろうと推測します。
第一プルダウンで選択された値を元に、作業列に第二選択肢を抽出し、それをリストに反映させるような仕組みにしておけば、元データの第一項目の順に依存しないようにもなりますし、揮発性関数であるINDIRECTを用いずとも済むと思います。
>VBAが必要なら改めて質問を作成して投稿しなおします。
VBAを利用してももちろん解決は可能だと思いますが、上記の方法は、エクセルの機能と関数等によって実現できる範囲で回答しています。
ありがとうございます。
>揮発性関数であるINDIRECTを用いず
現在調べてるところですが、どれもIndirectを使った方法ばかりです。
違うのといったら、Offset関数とMatch関数の組み合わせの方法ですが、
これで良いのか分からず、まだできそうにありません。
私の場合縦方向2列からプルダウンを絞りたいのですが、
この方法はマトリクス表形式だからできる方法?と疑問に思っております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
電子書籍プレゼントキャンペーン!
最大2万円超分当たる!マンガや小説が読める電子書籍サービス『Renta!』で利用できるギフトコードプレゼント実施中!
-
EXCELで他のファイルデータをドロップダウンさせるには?
その他(コンピューター・テクノロジー)
-
別ブックから入力規則でリスト作成(他ブックの参照を使用できない)
Excel(エクセル)
-
【エクセル】ドロップダウンリスト(入力規則)の参照元を別シートに作るには?
Excel(エクセル)
-
4
セルの入力規制で、別ブックにあるデータから参照する。
その他(ビジネス・キャリア)
-
5
EXCEL:入力規則の「リスト」は別シートを参照できない
Excel(エクセル)
-
6
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
-
7
【エクセル】プルダウン設定のシートを複製コピーする方法
Excel(エクセル)
-
8
Excelで質問です。ListBoxの項目を別bookから読込むには
その他(Microsoft Office)
-
9
エクセル indirectリスト表示されない
Excel(エクセル)
-
10
Excelについて
Excel(エクセル)
-
11
エクセル ドロップダウンリストに検索機能を追加したい
Excel(エクセル)
-
12
別のシートから値を取得するとき
Visual Basic(VBA)
-
13
【Excel関数】UNIQUE関数で0"を返さない方法?"
Excel(エクセル)
-
14
Excelで入力規則が反映されない。
Excel(エクセル)
-
15
Excelでドロップダウンリストで選んだ値を別シートに転記出来ますか?
Excel(エクセル)
-
16
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
17
エクセル、 名前の定義に関数を使用すると参照できない
Excel(エクセル)
-
18
Excelの入力規則で2列表示したい
Excel(エクセル)
-
19
エクセルでセル未入力時の初期値設定はできますか?
Excel(エクセル)
-
20
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
このカテゴリの人気Q&Aランキング
-
4
エクセルの2ページ目の作り方
-
5
エクセルで、変な矢印がでて、...
-
6
あるセルに特定の文字列を打つ...
-
7
VBA オリジナル関数で選択セル...
-
8
Excel 書式を関数で判断。
-
9
セル入力文字が、「右のセルに...
-
10
Excelで隣のセルと同じ内容に列...
-
11
エクセルの画面で十字マークが...
-
12
EXCELで2列を参照し、重複する...
-
13
エクセルのセル内に全角数字を...
-
14
VBAで保存しないで閉じると空の...
-
15
EXCELで2つの数値のうち大きい...
-
16
エクセルで表示形式の時刻の「0...
-
17
(Excel)あるセルに文字を入力...
-
18
グラフの横・縦項目が全部表示...
-
19
値が入っているときだけ計算結...
-
20
Excel処理について、教えて下さ...
おすすめ情報
公式facebook
公式twitter
具体的に見せて頂きありがとうございます。
ゆっくり読みながら確認していきたいと思います。
結果を含めてお礼させて頂きますので、取り急ぎ。