Windows7/Excel2010 で下図のような入力用のブック「入力明細.xls」がある。
この入力規制に使っているリストを、他のブック(閣僚名簿.xls)のリスト(C2:C21)を利用できないか...
※ 参考にしたWebページ
「Excel ドロップダウンリストの設定方法 別ブック参照の場合」 (パソってますか? - 楽天ブログ)
- 入力明細.xls を開き、
- [数式]タブ/定義された名前Gr.の[名前の管理]をクリックする。
- [新規作成]をクリックする。
- 【名前の編集】ダイアログボックスで、下記を入力し[OK]で閉じる。
- 名前: “閣僚リスト”
- 参照範囲: “=[閣僚名簿.xls]名前!$C$2:$C$21”
- 名簿は、[名前]シートに作ってある。
- 元に戻ったら[閉じる]。
- 入力規制をする C列を選択し、
- [データ]タブ/データツールGr.の[データの入力規制](上方)をクリックする。
- 【データの入力規制】ダイアログボックス/[設定]タブで、下記を入力し[OK]で閉じる。
- 入力値の種類: リスト
- 元の値: “=INDIRECT("閣僚リスト")”
■ INDIRECT 関数
ヘルプより引用。
説明
指定される文字列への参照を返します。セル参照はすぐに計算され、結果としてセルの内容が表示されます。INDIRECT 関数を使うと、数式自体を変更しないで、数式内で使用しているセル参照を変更することができます。
書式 INDIRECT(参照文字列, [参照形式])
INDIRECT 関数の書式には、次の引数があります。
- 参照文字列 必ず指定します。A1 形式、R1C1 形式の参照、参照として定義されている名前が入力されているセルへの参照、または文字列としてのセルへの参照を指定します。参照文字列に適切なセル参照を指定していない場合、エラー値 #REF! が返されます。
- 参照文字列で他のブックを参照している場合 (外部参照)、そのブックを開いておく必要があります。参照先のブックを開いていない場合、エラー値 #REF! が返されます。
メモ)Excel Web App では外部参照はサポートされません。- 参照文字列で行制限 1,048,576 または列制限 16,384 (XFD) を超えるセル範囲を参照している場合、エラー値 #REF! が返されます。
メモ)この動作は、Microsoft Office Excel 2007 より前の Excel バージョンとは異なります。以前のバージョンでは、制限を超えた部分は無視され、値が返されていました。- 参照形式 省略可能です。参照文字列で指定されたセルに含まれるセル参照の種類を、論理値で指定します。
- 参照形式に TRUE を指定するか省略すると、参照文字列には A1 形式のセル参照が入力されていると見なされます。
- 参照形式に FALSE を指定すると、参照文字列には R1C1 形式のセル参照が入力されていると見なされます。
- ドロップダウンリスト(入力規則)について (Excel(エクセル)学習室 / KENZO30)
★補足: INDIRECT関数は、検索/行列関数に分類されるものです。指定した文字列への参照を返す関数です。書式は、INDIRECT(参照文字列, 参照形式)ですが、通常の利用では引数の参照形式は省略できます。
参照文字列(A2)によってセルに入力されている文字列を介して、間接的に名前の定義を返しています。
これはできないだろうと思っていると、INDIRECT関数で問題が解決することがよくあります。非常に便利な関数です。覚えておいて下さい。(INDIRECT関数 → 中級23 参照)
■ 所感
- 当然のことながら「入力明細.xls」を更新する時は「閣僚名簿.xls」を開いておく必要がある。
- とすれば、「入力明細.xls」の中にシートを作り、「閣僚リスト」を置いた方が使い勝手はいい。
- 他のブックで「閣僚リスト」を使いたければ、INDIRECT 関数で参照する考え方もある。
- 要は、「閣僚名簿.xls」をどの程度の範囲で使うのか‥‥ であろう。
- 共有しているのであれば、 INDIRECT 関数で参照するしかない...