MS Excel 中依賴下拉值的特定需求

MS Excel 中依賴下拉值的特定需求

我有一列的值稱為網域,另一列的值稱為角色。

一個網域可以有多個角色,例如

Domain Role
A       XYZ
A       ABC
B       DEF
C       DHG
A       LKJ
B       OIO
C       CND

ETC。

我在同一個工作表或不同的工作表中有一列包含網域列中的唯一值,並且在下一列中我必須根據網域列中的選擇顯示下拉清單。例如,如果有人在一行的網域下拉清單中選擇了 B,則同一行的角色列應在下拉清單中僅顯示特定於上面顯示的角色中的 B 值的值,即 DEF 和 OIO

答案1

假設對主表進行排序並且兩個表位於同一工作表中是可以接受的,那麼最簡單的解決方案只需要一個相對較短的資料驗證公式。

我已設定範例工作表如下:

工作表截圖

輸入此公式作為 的儲存格內下拉清單資料驗證的來源E2

=INDEX($B:$B,MATCH(D2,$A:$A,0)):INDEX($B:$B,MATCH(D2,$A:$A,0)+COUNTIF($A:$A,D2)-1)

此公式的優點在於它可以適應主表中的更改,包括在頂部插入新行以及在最後一行之後追加一行。

缺點是:

  • 主表必須位於同一工作表中
  • 主表必須排序
  • 工作表上的其他表無法安全地與域列相交,除非保證它們不包含與主表的域值相符的值

有更複雜的解決方案來克服所有這些限制。


好的。只是為了留住拉傑什·S快樂的,(並證明他錯了;-)嗯,不,你需要一個數組公式來產生唯一列表,或者產生依賴/過濾列表,如果來源清單已排序),這裡是更新後的工作表,包括建立唯一網域清單以及D使用該清單的列中的下拉驗證公式:

更新的工作表螢幕截圖

正常,非數組輸入輸入C2並填寫的公式為:

=T(INDEX($A:$A,IFERROR(MATCH(C1,$A:$A,0),ROW())+COUNTIF($A:$A,C1)))

資料驗證公式為D2

=INDEX($C:$C,MATCH("Unique",$C:$C,0)+1):INDEX($C:$C,MATCH("Unique",$C:$C,0)+ROWS(C:C)-COUNTIF(C:C,"")-1)

答案2

您需要建立依賴下拉式選單。

在此輸入影像描述

按著這些次序:

  • 在 B304 中寫入 haeder、LISTA 並將值放入下面的行中,如螢幕截圖所示。
  • 選擇 B305:B307 並依升序對範圍進行排序。然後將此範圍命名為「ListA」。

注意 對於 ListB 和 ListC,也請遵循上述書面步驟。

  • 選擇 B304:D304 並將該範圍命名為 ROLE。

  • 選擇 E304,然後轉到“資料”選項卡,然後按一下“資料驗證”。

  • 在設定標籤下允許選擇清單和來源寫入=Role

  • 將單元格指標放在儲存格 G304 中,然後再次到達資料驗證。

  • 在來源文字方塊中寫入=INDIRECT($E$304)。

筆記, 然後,一旦您從第一個下拉清單中選擇域名,Excel 就會過濾相鄰下拉清單中的相關角色,如螢幕截圖所示。

注意

  • 根據需要調整單元格位址。

  • 如果您覺得可以將 LISTA、LISTB 和 LISTC 替換為 A、B 和 C。

相關內容