當你在 Excel 裡,要製作下拉式清單,如果想要已列出的項目,就不要再列出該選項,應該如何處理?
【設計與解析】
先從以下的方式著手觀察:
選取儲存格A4:C26,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:座號、姓名。
1. 列出已填名單
座號/儲存格E5:=FILTER(座號,內容<>"")
姓名/儲存格E5:=FILTER(姓名,內容<>"")
2. 列出未填名單
座號/儲存格E5:=FILTER(座號,內容="")
姓名/儲存格E5:=FILTER(姓名,內容="")
有了以上的經驗,現在來著手實作下拉式選單只顯示未被選的項目。
由下圖中先定義儲存格名稱,人員、資料、狀態。
(1) 設定狀態,已列:1、未列:0。
儲存格D5:=COUNTIF(人員,C5)
複製儲存格D5,貼至儲存格D5:D26。
(2) 未填名單
儲存格E5:=FILTER(資料,狀態<>1)
(3) 定義未填儲存格範圍
=OFFSET(E5,0,0,COUNTA(未填),1)
利用 COUNTA 函數計算在未填欄位中的個數。
由 OFFSET 函數產生對應的儲存格範圍。
(4) 選取儲存格A5:A26,設定資料驗證。
在資料驗證中設定準則:
儲存格內允許:清單
來源:=OFFSET($E$5,0,0,COUNTA(未填),1)
在下拉式清單中選取一個選項,下一個儲存格就會少了這個選項。
換一種做法來產生未填名單:
1. 首先,在原有資料之下,複製一份下拉式清單區。
儲存格C27:=A5,複製儲存格C27,貼至儲存格C27:C48。
2. 將「資料」名稱重新定義範圍C5:C48。
3. 利用公式:
儲存格D5:=UNIQUE(資料,,TRUE)
其中第3個參數:TRUE,可以指定篩選只出現一次者。
【參考資料】
UNIQUE 函數參考微軟提供的說明網頁:UNIQUE 函數
FILTER 函數參考微軟提供的說明網頁:FILTER 函數
【延伸學習】
留言列表