
高校用の従属ドロップダウン リストを作成しようとしています。ユーザーはセル A1 を選択し、たとえば廊下 3 をクリックし、次にセル A1 をもう一度クリックして部屋番号 325 を選択します (たとえば)。最終結果では、セル A1 に 325 が表示されます。最初のドロップダウン リストは作成できますが、2 番目の部分で大きな問題があります。Excel 2010 を使用しています。どなたか助けていただければ幸いです。よろしくお願いします。
答え1
同じセル(最初の項目はA1、2番目の項目も同じセル)でそれを実行することは不可能だと思います。私自身も同様の問題を抱えていましたが、これそれを解決するために私が使ったのはこれです。今では、同僚の何人かが「フォームに記入」するために使っている Excel ワークブックの最初のシートに、互いに依存している複数のドロップダウン メニューがあります :)こここの問題を解決する方法の良い例でもあります。
必要なものとなるかもしれないサンプルテーブル
A B
HALLWAY ROOM
Hallway 3 353
Hallway 3 325
Hallway 1 157
Hallway 1 124
Hallway 2 234
Hallway 2 265
ドロップダウン リストを 2 つ作成します。
最初のドロップダウン リストには、列 A からの一意の個別値が含まれます。2 番目のドロップダウン リストには、最初のドロップダウン リストで選択された値に基づいて、列 B からの一意の個別値が含まれます。
hallway
数式 > 名前の管理 > 新規 > 名前を付けて、=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A$2:$A$1000))
"参照先:" フィールドに入力 > 閉じるで動的な名前付き範囲を作成します。
列 A から一意の別個のリストを作成します。Sheet2 を選択 > A2 を選択 > "=INDEX(hallway,MATCH(0,COUNTIF($A$1:A1,hallway),0))"
Ctrl + SHIFT + ENTER と入力 > セル A2 をコピーして、必要なところまで貼り付けます。
uniqhall
数式 > 名前の管理 > 新規 > 名前を付けて > =OFFSET(Sheet2!$A$2, 0, 0, COUNT(IF(Sheet2!$A$2:$A$1000="", "", 1)), 1)
「参照先:」フィールドに入力 > 閉じるで、一意の個別リストを取得するために動的な名前付き範囲を作成します。
ドロップダウン リストを作成 > Sheet1 を選択 > セル D2 を選択 > データをクリック > データの検証ボタン > データの検証 > 許可: リスト > ソース: =uniqhall
> OK
最初のドロップダウン リストで選択された 1 つのセル値のみに基づく 2 番目の一意のリスト。
room
数式 > 名前の管理 > 新規 > 名前を付けて、=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B$2:$B$1000))
"参照先:" フィールドに入力 > 閉じるで動的な名前付き範囲を作成します。
列 B から一意の別個のリストを作成します。Sheet2 を選択 > B2 を選択 > "=INDEX(room, MATCH(0, COUNTIF($B$1:B1, room)+(order<>Sheet1!$D$2), 0))"
Ctrl + SHIFT + ENTER と入力 > セル B2 をコピーして、必要なところまで貼り付けます。
uniqroom
数式 > 名前の管理 > 新規 > 名前を付けて > =OFFSET(Sheet2!$B$2, 0, 0, COUNT(IF(Sheet2!$B$2:$B$1000="", "", 1)), 1)
「参照先:」フィールドに入力 > 閉じるで、一意の個別リストを取得するために動的な名前付き範囲を作成します。
ドロップダウン リストを作成 > Sheet1 を選択 > セル D5 を選択 > データをクロック > データの検証ボタン > データの検証 > 許可: リスト > ソース: =uniqroom
> OK
これであなたの問題がある程度解決することを願っています :)
答え2
実際には、同じセルを使用することはできません。
できることは、その隣のセルを使うことです。Robert Schmidtsの回答がうまくいくように見えますが、同じ機能に対する別の(そして私にとってはより単純な)方法は次のようになります。ここに記載。
同じ種類のアイデアを使用しますが、必要なのは 1 つの簡単な数式だけです。問題の説明から判断すると、ダイナミック レンジ (クールな機能ですが) は実際には必要ありません。
この方法の要点は、ユーザーの選択を 1 つのテーブルに配置し、最初の選択を左側に表示し、その後の各選択を右側の異なる列にリストすることです。
例: 廊下 #34 | 部屋 1 | 部屋 2 | 部屋 3.....
次に、名前マネージャーと選択ツールから名前を作成するを使用して、最初の列の各廊下を「名前」として同じ行の部屋に自動的に割り当てます。
最後に、リストによるデータ検証機能を使用して、ホールウェイ選択用と部屋選択用のドロップダウン リストを作成します。2 番目の列のデータ検証で単純な =INDIRECT 数式を使用して、2 番目のリストを最初のリストに依存させます。
コメント セクションに立ち寄って、=SUBSTITUTE 関数を使用して、Hallway と Room の値のスペースを処理できることをユーザーが指摘したので、それを確認することをお勧めします。