Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在下拉列表中隱藏先前使用過的項目?

Author Xiaoyang Last modified

在 Excel 中,創建標準的下拉列表是一種常見的數據輸入技術,但如果您希望每次選擇後下拉列表能自動縮短(移除之前選過的項目),讓每個選項只能被選擇一次該怎麼辦呢?舉例來說,假設您有一個包含 100 個唯一名字的下拉列表:當您選擇其中一個名字後,這個名字會從下拉選項中移除,剩下 99 個選項。隨著您繼續選擇,列表會自動縮短,直到沒有選項為止。這種互動性在分配任務而不重複、座位安排或抽獎等場景中非常實用。然而,Excel 並不直接提供此功能,因此需要一些特定的解決方法。在接下來的部分中,您將找到實現這一目標的分步指南。

使用輔助列隱藏下拉列表中先前使用過的項目


arrow blue right bubble 使用輔助列隱藏下拉列表中先前使用過的項目

假設您在 A 列中有一組名字列表,如下方截圖所示。要設置一個隱藏先前使用過項目的下拉列表,請按以下步驟操作。此方法利用額外的輔助列來追蹤哪些項目已被選擇,並構建動態的下拉源列表。儘管這方法看似複雜,但它簡單易懂,且不需要編程技能。

適用場景包括排程、資源分配或任何需要項目只應被選擇一次的情況,直到列表耗盡。其優勢在於通過可見的公式和可追溯的邏輯保證清晰度;不過,它確實需要在工作表上維護額外的列。

sample data

1. 在您的名字列表旁邊,於 B1 單元格中輸入以下公式,檢查該名稱是否已在目標下拉範圍中被選取過:

=IF(COUNTIF($F$1:$F$11,A1)>=1,"",ROW())

此公式將每個名字與下拉列表中選擇的內容(F1:F11 範圍)進行比較。如果該名字已被選取,則返回空白單元格;否則,返回行號作為輔助值。請務必調整 F1:F11 的範圍以匹配放置下拉列表的位置,並將 A1 參考調整為您的名字列表位置。

apply a formula to list series

注意:再次確認 'F1:F11' 範圍涵蓋所有下拉單元格,'A1' 應指向名字列表中的當前行。

2. 向下拖動填充柄以將此公式應用到名字列表的所有行。這將生成一系列標識未使用名字的輔助結果。

fill the formula to other cells

3. 在 C 列中,於 C1 單元格設置另一個輔助公式,以動態構建僅包含未使用名字的清單:

=IF(ROW(A1)-ROW(A$1)+1>COUNT(B$1:B$11),"",INDEX(A:A,SMALL(B$1:B$11,1+ROW(A1)-ROW(A$1))))

此公式基於 B 列中的輔助值,從 A 列中提取適當的項目,將所有未使用的名稱集中起來。當名字被選擇並從 B 列中移除時,C 列中的這個列表會自動更新。如果您的列表超過 11 個名字,請確保相應地調整所有範圍。

apply another formula to list cell values

4. 將此公式向下複製以匹配原始名字列表的長度。填滿的範圍應與 A 列中的列表一樣長。

fill the formula to other cells

5. 為了使這個動態更新的列表可用於下拉列表,定義一個命名範圍。選擇 C 列中新創建的列表(例如 C1:C11),然後點擊 公式 > 定義名稱

define a range name for the new data

6. 在新建名稱對話框中,輸入名稱(例如 namecheck),並使用此動態引用公式來保持命名範圍正確調整大小:

=OFFSET(Sheet2!$C$1,0,0,COUNTA(Sheet2!$C$1:$C$11)-COUNTBLANK(Sheet2!$C$1:$C$11),1)

這確保只有 C 列中的非空值才會用於下拉選項。仔細檢查您的工作表名稱和單元格引用——使用精確的地址格式——以匹配您自己的工作表。

set options in new name dialog box

注意:如果您更改名字列表、添加或刪除行,或者使用不同的工作表,請務必相應地更新公式,以防止出錯。

7. 現在,為了創建實際的下拉列表,選擇您希望用戶進行選擇的單元格(例如 F1:F11)。前往 數據 > 數據驗證 > 數據驗證

click Data Validation

8. 在數據驗證對話框中,在設置選項卡下,選擇列表並在來源字段中輸入 =namecheck,引用您定義的動態命名範圍。

set options in Data Validation dialog box

點擊確定完成。每次在下拉列表中選擇一個名字後,該名字會從其他下拉列表中移除,確保所有選擇都是唯一的。如果您嘗試在另一個單元格中選擇相同的名字,您會發現它已不再是一個可選選項。

result of hiding previously used items in dropdown list

提示:不要刪除或覆蓋任何輔助列(B 列和 C 列),因為它們對於下拉列表的正確更新至關重要。如果想保持工作表整潔而不影響功能,可以考慮隱藏這些列。如果遇到列表更新問題,檢查公式的範圍是否匹配,或確保所有數據驗證鏈接正確且引用了預期的命名範圍。

此方法的一個限制是,如果有許多用戶同時進行選擇(例如在共享工作表上),仍可能出現衝突。對於更先進、可擴展的解決方案,或者希望減少工作表混亂並自動執行此任務,請考慮使用 VBA——下一節將展示這種替代方案。



相關文章:

如何在 Excel 中插入下拉列表?

如何在 Excel 中創建帶圖片的下拉列表?

最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用