跳至頁尾內容
EXCEL 工具

如何在Excel中突出顯示重複項:完整步驟指南

由團隊撰寫 Iron Software

在Excel中,下拉式清單是保持資料輸入一致性和準確性最實用的工具之一。 與其依賴手動資料輸入,任何人都可以在儲存格中輸入任何內容,不如使用下拉式清單限制可輸入的內容為一組核准選項。 下拉式清單有助於確保儲存格中僅輸入有效資料,從而減少資料輸入時的錯誤,並消除事後修正不一致值的需求。 過程很簡單:選擇儲存格,點擊箭頭,選擇一個選項。

Microsoft Excel中的資料驗證工具是每個下拉式清單的核心功能。資料驗證功能限制儲存格輸入為預定義的清單,這是最受歡迎的資料驗證工具選項之一。 下拉式清單通過組織資料並限制每個儲存格的可輸入項數量,提高整體使用者體驗,這對於訂單輸入或HR表單等重複性工作尤其有價值,在這些工作中,只有有效資料應進入儲存格。 使用下拉式清單可以簡化資料輸入過程,使其對使用者來說更快速更有效。

本指南涵蓋如何在Excel中建立下拉式清單的每種方法:直接鍵入作為逗號分隔清單的簡單下拉式清單,參考儲存格範圍或命名範圍作為來源資料,構建可以自動更新的動態下拉式清單,建立相依式下拉式清單,新增輸入資訊和錯誤警報設置,並管理現有清單。 在.NET中生成Excel文件的開發者將在結尾找到一節,展示IronXL如何以程式方式處理資料驗證。

方法1:從鍵入的清單建立簡單的下拉式清單

最佳用於: 短小的、固定的清單,變化不大。

要在Excel中建立下拉式清單,選擇您希望列表所在的儲存格,轉到資料選項卡,點擊資料驗證,在允許框中選擇清單,並指定來源範圍或手動輸入以逗號分隔的項目。 可以手動輸入項目或參考Excel中的儲存格範圍來建立下拉式清單。

步驟:

  1. 選擇您希望出現下拉式清單的儲存格或儲存格範圍。
  2. 點擊功能區中的資料選項卡。
  3. 在資料工具組中,點擊資料驗證。 資料驗證對話框打開。
  4. 在允許框中,從下拉選單中選擇清單。
  5. 顯示在儲存格中的下拉選項核取框出現。 必須勾選儲存格下拉選項才能在儲存格中啟用下拉式選單。
  6. 點擊來源框並輸入您的選項,作為以逗號分隔的清單,例如:Electronics,Furniture,Software,Services
  7. 點擊確定。

一個小箭頭現在出現在儲存格中。 點擊它將打開下拉選單,顯示所有的下拉選項。 使用者可以將具有下拉功能的儲存格複製並粘貼到其他地方,保持下拉功能,這是一種快速將相同清單應用於其他儲存格的方法。

避免在逗號分隔清單中逗號之後留空格,否則標籤中將有前導空格。 "North America, EMEA"將顯示" EMEA"帶有前導空格。

螢幕截圖建議: 顯示資料驗證對話框,使設置選項卡處於活動狀態,允許框中顯示清單,來源框中顯示以逗號分隔的清單。 應選擇使用訂單表單示範文件中的目標儲存格。

方法2:從儲存格範圍建立下拉式清單

最佳用於:項目多的清單,或者當相同的來源資料在多個儲存格中被重用時。

將儲存格範圍作為來源資料比輸入項目更加靈活。 當您更新來源範圍時,所有已連接的儲存格中的下拉選項也會更新。

  1. 在一個欄中輸入您的清單項目,最好是在一個單獨的工作表上(例如一個名為"Lists"的工作表)。
  2. 選擇您希望出現下拉式清單的儲存格。
  3. 前往資料選項卡 > 資料工具組 > 選擇資料驗證
  4. 資料驗證窗口設置選項卡中,在允許框中選擇清單
  5. 點擊來源框並選擇您清單工作表中的儲存格範圍。 Excel自動輸入範圍引用,例如=Lists!$A$3:$A$7。
  6. 點擊 OK

驗證條件現在限制輸入只能來自該來源範圍中的有效資料。 左上方的名稱框顯示當前儲存格地址,幫助您驗證選擇了正確的引用。

在來源範圍中始終使用帶有$符號的絕對引用。 使用=A3:A7而不帶美元符號可能會在上方插入行時移動。

螢幕截圖建議: 顯示資料驗證對話框中來源框,帶有範圍引用,並在底部顯示清單工作表選項卡。 請使用訂單表單示範文件。

方法3:使用命名範圍作為來源

最佳用於:在多個位置使用的下拉式清單,或者當來源資料位於不同工作表時。

命名範圍為一組儲存格賦予易記的名稱,然後可以在來源框中使用,而不是儲存格地址。

  1. 選擇您的清單項目,然後點擊名稱框並輸入名稱(例如ProductCategories),然後按Enter。
  2. 選擇您希望出現下拉式清單的儲存格,前往資料選項卡 > 資料驗證。
  3. 在設置選項卡中,在允許框中選擇清單,然後在來源框中輸入=ProductCategories。
  4. 點擊確定。

這使驗證清單更易於管理。 當與INDIRECT函式結合使用時,命名範圍還可以實現相依式下拉式清單(在方法5中介紹)。

螢幕截圖建議: 顯示名稱框中輸入了範圍名稱,以及資料驗證來源框中顯示=ProductCategories。

方法4:新增輸入資訊和錯誤警報

最佳用於:由其他人填寫的共享工作簿或表單。

使用者可以新增輸入資訊,當使用者點擊具有下拉式清單的儲存格時顯示,以指導他們選擇什麼。 Excel允許在資料驗證對話框中配置自訂錯誤消息。

輸入資訊:

  1. 打開資料選項卡 > 資料驗證。
  2. 點擊資料驗證對話框中的輸入資訊選項卡。
  3. 勾選當選擇儲存格時顯示輸入資訊,並在下面的欄位中輸入標題和資訊。
  4. 點擊確定。

當任何人點擊該儲存格時,輸入資訊作為工具提示顯示,引導他們選擇。

錯誤警報:

  1. 點擊資料驗證對話框中的錯誤警報選項卡。
  2. 勾選顯示錯誤警報核取框(也標示為輸入無效資料後的錯誤警報或無效資料後的警報)。
  3. 選擇一種樣式:停止阻止無效資料,警告允許但會提示,資訊僅顯示備註。
  4. 輸入標題和錯誤消息。
  5. 單擊確定。

當輸入的資料在允許清單外時,錯誤警報會激發。 對於嚴格的表單,使用停止,以便僅接受有效資料。 顯示錯誤警報設置和輸入資訊選項卡是獨立控制的,因此可以啟用一個而不啟用另一個。

如果您希望允許空白儲存格,請勾選設置選項卡上的忽略空白核取框。 這可以防止在空白儲存格上激發錯誤警報。

螢幕截圖建議: 顯示資料驗證對話框中錯誤警報選項卡,已選擇停止並輸入自訂錯誤消息。 請使用HR表單示範文件。

方法5:構建相依式下拉式清單

最佳用於:多層選擇,其中第二個清單取決於第一個清單。

Excel中的相依式下拉式清單串聯兩個或多個下拉式清單,第一個清單中的選擇控制第二個清單中的可用選項。例如,如果使用者從第一個下拉列表中選擇Pizza,那麼可以用特定的披薩品項填充第二個下拉列表,而選擇中式則會在第二個列表中顯示中式菜肴。通過確保使用者根據之前的選擇僅看到相關選項,建立相依式下拉式清單可以提高資料輸入效率和準確性。

設定:

  1. 在欄中建立您的來源資料,每個類別一欄。 每欄的標頭行必須與第一個下拉式清單中出現的內容完全匹配。
  2. 使用名稱框命名每列項目,確保與第一清單選項完全匹配(例如,將Pizza欄命名為"Pizza",將中式欄命名為"Chinese")。
  3. 使用方法1或方法2在A列中建立第一個下拉式清單。
  4. 選擇第二個下拉式清單的儲存格(B列)。 進入資料選項卡 > 資料驗證清單選擇設置選項卡上,在允許框中選擇清單,並在來源框輸入=INDIRECT(A4)。
  5. 點擊OK

當第一個下拉列表中選擇了一個值時,INDIRECT查找具有相同名稱的命名範圍並將其用作第二個下拉列表的選擇清單。 第二個儲存格的驗證標準根據第一次選擇動態更新。

螢幕截圖建議:顯示具有Pizza選中的相依式下拉示範文件,以及在B列下拉列表中可見的披薩選單項目。 選單清單工作表應可見在後景中。

方法6:建立動態下拉式清單

最佳用於:隨著時間推移而增長的清單,需要在新增新項目時自動更新。

您可以使用OFFSET函式在Excel中建立動態下拉式清單,當新項目被新增到來源範圍時,該清單會自動更新。 使用Excel表格作為下拉列表的來源,允許在新增新行時自動擴展,使其成為動態列表的絕佳選擇。

選項A:Excel表格

  1. 選擇您的來源項目並按Ctrl + T(從插入選項卡)建立一個Excel表格。 選擇一個表格樣式並確認標頭行選項。
  2. 在資料驗證來源框中引用表格欄:=Table1[Category]。

當一個新行被新增到Excel表中時,無需改變驗證規則,下拉選項自動更新。

選擇B:OFFSET公式

要建立動態下拉列表,您可以使用公式=OFFSET(Sheet2!$A$1,0,0,COUNTA(Sheet2!$A:$A),1),此公式根據來源欄中的非空儲存格數調整範圍。

在資料驗證窗口的來源框中輸入此公式。 當新項物被新增到來源欄時,來源範圍擴展,下拉選項自動更新。

螢幕截圖建議:顯示資料驗證來源框中輸入了OFFSET公式,並可見清單工作表。 請使用訂單表單示範文件。

方法7:新增、編輯和刪除下拉項目

管理來源範圍中的項目:

要將項目新增到現有的下拉式清單,移動到包含清單的原始工作表,在希望插入的位置下方的單元格右擊,選擇插入,選擇下移儲存格,並輸入新項目。 下拉選項自動更新。 在同一工作表或跨工作表,只要來源範圍覆蓋新儲存格,即可應用相同步驟。

移除下拉清單:

要在Excel中刪除下拉式清單,選擇含有下拉清單的單元格,前往資料選項卡,點擊資料驗證,然後點擊刪除(清除全部)以移除清單。 若只清除儲存格值而不移除驗證規則,選擇單元格並按刪除。 如需完全刪除規則,使用資料驗證窗口中的清除全部。

請注意,如果只希望刪除儲存格內容,而保留驗證,是安全的進行。 清除內容後,驗證清單仍保留在單元格上。

密碼保護已驗證的單元格:

若要防止他人編輯您的下拉設置,進入檢閱 > 保護工作表並輸入密碼(密碼保護工作表)。 使用者仍能使用下拉式清單輸入資料,但是無法修改驗證標準或移除規則。

螢幕截圖建議:顯示資料驗證對話框中清除全部按鈕可見,準備移除規則。 還可以顯示保護工作表對話框,密碼欄位處於活動狀態。

常見問題和排除故障

下拉箭頭不出現

確認在設定選項卡中勾選了儲存格下拉核取框。 如果未勾選,驗證仍然有效,但儲存格中沒有顯示箭頭。 這是下拉似乎消失時最常被遺漏的設置。

在有效資料上激發錯誤警報

這通常是格式不匹配。 檢查來源框中用逗號分隔的清單中的空格,或者查看來源資料中有無空白儲存格或不一致的大小寫。 驗證標準精確比較值。

動態清單未自動更新

如果來源是一個靜態的儲存格範圍,範圍外新增的項目將不顯示。 切換為excel表或OFFSET公式以自動擴展來源範圍資料驗證清單必須引用包含所有當前和未來項目的範圍。

相依清單顯示ref錯誤

這意味著命名範圍與第一個下拉列表選擇不完全匹配。 打開公式 > 名稱管理器並確保名稱與第一個下拉列表選項精確匹配,包括大小寫。 任何不匹配將導致INDIRECT在所有使用該相依規則的儲存格中返回空白或錯誤。

快速參考:下拉清單方法

目標 在哪裡 關鍵設置
簡單下拉列表 資料選項卡 > 資料驗證 > 設置選項卡 來源框:逗號分隔的清單
從儲存格範圍下拉 資料選項卡 > 資料驗證 > 設置選項卡 來源框:=Sheet!$A$3:$A$7
命名範圍源 資料選項卡 > 資料驗證 > 設置選項卡 來源框:=RangeName
輸入資訊 資料驗證 > 輸入資訊選項卡 標題和資訊
錯誤警報 資料驗證 > 錯誤警報選項卡 樣式:停止、警告、資訊
動態清單(表) 插入選項卡 > 表,然後表欄參考 來源框:=Table1[Column]
動態清單(OFFSET) 資料驗證來源框 =OFFSET(Sheet2!$A$1,0,0,COUNTA(Sheet2!$A:$A),1)
相依下拉 資料驗證 > 設置選項卡 來源框:=INDIRECT(A4)
向清單新增項目 右擊來源儲存格 > 插入 > 向下移動儲存格 在新儲存格中輸入項目
移除下拉 資料選項卡 > 資料驗證 > 清除全部 從所有儲存格中移除規則

供開發者使用:使用IronXL新增資料驗證

如果您的.NET應用程式生成包含表單或資料輸入模板的Excel工作簿,IronXL允許您以程式方式在C#中應用資料驗證下拉清單,而無需在伺服器上安裝Microsoft Office。 推荐的方法是AddFormulaListRule(),它將儲存格範圍作為來源參考,避免了直接將列表項作為字串傳遞時適用的255字串字元限制。

using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet formSheet = workBook.DefaultWorkSheet;
formSheet.Name = "Order Form";

// Headers
formSheet["A1"].Value = "Order ID";
formSheet["B1"].Value = "Product Category";
formSheet["C1"].Value = "Region";

// Write source list values to a Lists sheet
WorkSheet listSheet = workBook.CreateWorkSheet("Lists");
string[] categories = { "Electronics", "Furniture", "Software", "Office Supplies", "Services" };
string[] regions = { "North America", "EMEA", "APAC", "Latin America", "Middle East" };

for (int i = 0; i < categories.Length; i++)
{
    listSheet[$"A{i + 1}"].Value = categories[i];
    listSheet[$"B{i + 1}"].Value = regions[i];
}

// Apply drop-down validation referencing the Lists sheet source range
var categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           // cell range to validate
    "Lists!$A$1:$A$5"  // source range on Lists sheet
);
categoryRule.ShowErrorBox = true;
categoryRule.ErrorBoxTitle = "Invalid Category";
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list.";
categoryRule.ShowPromptBox = true;
categoryRule.PromptBoxTitle = "Product Category";
categoryRule.PromptBoxText = "Choose a product category from the drop-down.";

var regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
);
regionRule.ShowErrorBox = true;
regionRule.ErrorBoxTitle = "Invalid Region";
regionRule.ErrorBoxText = "Select a valid region from the drop-down list.";

workBook.SaveAs("order-form-validated.xlsx");
using IronXL;

WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
WorkSheet formSheet = workBook.DefaultWorkSheet;
formSheet.Name = "Order Form";

// Headers
formSheet["A1"].Value = "Order ID";
formSheet["B1"].Value = "Product Category";
formSheet["C1"].Value = "Region";

// Write source list values to a Lists sheet
WorkSheet listSheet = workBook.CreateWorkSheet("Lists");
string[] categories = { "Electronics", "Furniture", "Software", "Office Supplies", "Services" };
string[] regions = { "North America", "EMEA", "APAC", "Latin America", "Middle East" };

for (int i = 0; i < categories.Length; i++)
{
    listSheet[$"A{i + 1}"].Value = categories[i];
    listSheet[$"B{i + 1}"].Value = regions[i];
}

// Apply drop-down validation referencing the Lists sheet source range
var categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           // cell range to validate
    "Lists!$A$1:$A$5"  // source range on Lists sheet
);
categoryRule.ShowErrorBox = true;
categoryRule.ErrorBoxTitle = "Invalid Category";
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list.";
categoryRule.ShowPromptBox = true;
categoryRule.PromptBoxTitle = "Product Category";
categoryRule.PromptBoxText = "Choose a product category from the drop-down.";

var regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
);
regionRule.ShowErrorBox = true;
regionRule.ErrorBoxTitle = "Invalid Region";
regionRule.ErrorBoxText = "Select a valid region from the drop-down list.";

workBook.SaveAs("order-form-validated.xlsx");
Imports IronXL

Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
Dim formSheet As WorkSheet = workBook.DefaultWorkSheet
formSheet.Name = "Order Form"

' Headers
formSheet("A1").Value = "Order ID"
formSheet("B1").Value = "Product Category"
formSheet("C1").Value = "Region"

' Write source list values to a Lists sheet
Dim listSheet As WorkSheet = workBook.CreateWorkSheet("Lists")
Dim categories As String() = {"Electronics", "Furniture", "Software", "Office Supplies", "Services"}
Dim regions As String() = {"North America", "EMEA", "APAC", "Latin America", "Middle East"}

For i As Integer = 0 To categories.Length - 1
    listSheet($"A{i + 1}").Value = categories(i)
    listSheet($"B{i + 1}").Value = regions(i)
Next

' Apply drop-down validation referencing the Lists sheet source range
Dim categoryRule = formSheet.DataValidations.AddFormulaListRule(
    "B2:B20",           ' cell range to validate
    "Lists!$A$1:$A$5"   ' source range on Lists sheet
)
categoryRule.ShowErrorBox = True
categoryRule.ErrorBoxTitle = "Invalid Category"
categoryRule.ErrorBoxText = "Please select a valid category from the drop-down list."
categoryRule.ShowPromptBox = True
categoryRule.PromptBoxTitle = "Product Category"
categoryRule.PromptBoxText = "Choose a product category from the drop-down."

Dim regionRule = formSheet.DataValidations.AddFormulaListRule(
    "C2:C20",
    "Lists!$B$1:$B$5"
)
regionRule.ShowErrorBox = True
regionRule.ErrorBoxTitle = "Invalid Region"
regionRule.ErrorBoxText = "Select a valid region from the drop-down list."

workBook.SaveAs("order-form-validated.xlsx")
$vbLabelText   $csharpLabel

IronXL運行於.NET 6及更高版本,相容Windows、Linux、macOS、Docker和Azure。 詳情請參考資料驗證API參考

開始使用: 透過NuGet安裝 IronXL.Excel 安裝包。 可用30天全功能免費試用,不需要信用卡。

進一步閱讀:

包裝

一旦您知道要去的地方,在Excel儲存格中新增下拉式清單只需不到一分鐘。 要快速在儲存格中下拉少量固定選擇,直接在資料驗證對話框中的來源框中鍵入逗號分隔清單是最快的路徑。 對於需要隨著時間進行擴展或更新的內容,參考命名範圍或Excel表格給下拉選項留下成長的空間。 資料驗證清單保持連接到其來源資料,因此將一個新項目新增到來源範圍會自動使其在每個已連接的儲存格中可用。

當多個人填寫同一電子表格時,輸入資訊選項卡上的輸入提示在他們進行選擇之前指導他們,而錯誤警報選項卡上的停止級別錯誤警報會確保無效資料永遠不會進入經過驗證的單元格。 使用INDIRECT和命名範圍構建的相依式下拉列表可以自動控制第二個下拉列表,保持選項集的相關性而不需要使用者額外的工作。

對於需要從.NET應用程式生成已驗證的Excel文件的開發人員,IronXL涵蓋了完整的資料驗證工作流:來源範圍、錯誤警報、輸入提示和公式列表規則,所有這些都不需要在伺服器上安裝Office。 從免費試用開始,在您自己的專案中測試資料驗證。

有本指南未涵蓋的下拉情境嗎? 在下方留言,或存取Iron Software部落格,獲取更多有關Excel資料輸入、驗證和電子表格自動化的指南。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話