KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 工作表的單一儲存格中套用多種資料驗證規則?

作者Xiaoyang修改日期

在 Excel 工作表中,對儲存格套用單一資料驗證規則是相當常見的做法,有助於確保資料的一致性與準確性。然而,在某些情況下,您可能需要在同一儲存格中同時執行多項驗證條件——例如允許輸入有效數字或特定清單中的選項,甚至將特定文字格式要求與可接受的日期範圍結合運用。透過 Excel 處理這類更複雜的資料驗證需求,不僅能更精準地掌控資料輸入流程,還能有效防止錯誤、全面提升資料品質。

以下內容將逐步引導您透過多個實際範例,在 Excel 的單一儲存格中實踐多重資料驗證規則。每個範例皆針對不同情境設計,助您輕鬆選出最符合需求的解決方案。此外,本文也介紹了 VBA 等替代方法,以滿足更高彈性或進階邏輯的應用需求。

在單一儲存格中套用多重資料驗證(範例 1)

在單一儲存格中套用多重資料驗證(範例 2)

在單一儲存格中套用多重資料驗證(範例 3)

使用 VBA 套用多重資料驗證(進階)


在單一儲存格中套用多重資料驗證(範例 1)

假設您希望設定某個儲存格,使其僅接受符合以下任一條件的值:
- 若輸入的是數字,則必須小於 100.
- 若輸入的是文字,則該文字必須存在於特定清單中(例如範圍 D2 至 D7)。

當您需要在同一欄位中收集定量代碼或預先定義的分類答案時,這種情況相當常見。透過搭配驗證規則,無需為數字與文字分別設置不同欄位,即可提升清晰度與效率。

若輸入數字,必須小於 100;若輸入文字,則必須在資料清單中

1. 選取您要啟用多重資料驗證準則的儲存格或範圍,然後在資料索引標籤上,按一下資料驗證> 資料驗證(如下所示):

按一下「資料」>「資料驗證」>「資料驗證」

2. 在資料驗證對話方塊中,切換至設定索引標籤,並依下列方式進行設定:

  • (1.) 在允許下拉選單中,選取自訂
  • (2.) 在公式欄位中,輸入下列公式:=OR(A2<$C$2,COUNTIF($D$2:$D$7,A2)=1)

注意:此公式中,A2 為待驗證儲存格的位址,C2 包含允許的最大值,而 D2:D7 則列出允許的文字項目。請依您的工作表調整這些參照。

在對話方塊中指定選項

3. 按一下確定以套用設定。現在,所選儲存格將僅接受小於 100 的數字,或在 D2:D7 範圍中找到的文字字串。若使用者輸入不符合任一條件的值,Excel 將立即顯示警告提示,讓您即時掌握無效輸入狀況!

僅允許輸入符合條件的值,否則將彈出警告提示框

此方法適用於規則明確的簡單情境。然而,若需求涉及條件式提示或多步驟邏輯等更細緻或互動性更高的功能,公式型資料驗證便可能顯得力有未逮。此時,下方介紹的 VBA 方法將提供更高的彈性與掌控力。


在單一儲存格中套用多重資料驗證(範例 2)

在此情境中,您可能僅希望允許符合以下任一條件的資料輸入:
- 輸入值為精確文字「Kutools for Excel」
- 輸入值為介於 12/1/2017 與 12/31/2017 之間的日期

當您在問卷或資料表單中需要輸入確認代碼(精確的文字字串)或專案範圍內的日期時,這類多重驗證功能格外實用。

僅允許輸入特定文字或特定日期

1. 為目標儲存格開啟資料驗證對話方塊,並執行下列步驟:

  • (1.) 前往設定索引標籤。
  • (2.) 從自訂選項中選取允許下拉式選單。
  • (3.) 請將此公式輸入至公式區域:=OR(A2=$C$2,AND(A2>=DATE(2017,12,1), A2<=DATE(2017,12,31)))

注意:此處,A2 為驗證儲存格,C2 應包含目標文字「Kutools for Excel」,而日期範圍則由 DATE(2017,12,1)DATE(2017,12,31) 定義。請依您的工作表設定調整參照。

在對話方塊中指定選項

2. 按一下確定進行確認。設定完成後,這些儲存格將僅允許輸入指定文字或定義範圍內的日期;任何其他類型的輸入或超出範圍的內容都會立即遭到封鎖,並顯示如圖所示的回饋:

僅允許輸入符合條件的值,其他內容將受到限制

此方法適用於僅接受完全相符或固定日期值的嚴格輸入情境。然而,若您的驗證涉及複雜的相依性、計算或使用者互動,建議採用 VBA 解決方案,以實現更精準的控制能力。


在單一儲存格中套用多重資料驗證(範例 3)

第三個範例考慮一種情境:儲存格僅允許符合特定開頭文字及對應字元數的輸入:
- 儲存格必須以「KTE」開頭,且恰好為 6 個字元長
- 或以「www」開頭,且恰好為 10 個字元長

當需要強制執行代碼或 URL 的格式標準時,這類準則十分常見。透過套用字元長度與前置字元檢查,可大幅降低輸入錯誤的機率。

文字字串必須以特定文字開頭

為解決此問題,請使用下列公式設定資料驗證:

1. 開啟資料驗證對話方塊,並在「設定」中完成下列步驟:

  • (1.) 選取設定索引標籤。
  • (2.) 從「允許」下拉選單中選取自訂
  • (3.) 在「公式」欄位中輸入:=OR(AND(LEFT(A2,3)="KTE",LEN(A2)=6),AND(LEFT(A2,3)="www",LEN(A2)=10))

注意:如有需要,請將 A2 替換為您實際使用的儲存格參照。您也可根據實際情境,調整「KTE」、「www」及字元數量,輕鬆掌握公式應用!

在對話方塊中設定選項

2. 按一下確定。現在,該儲存格將僅接受符合前置字元與長度規則的值;任何違反任一條件的輸入都會立即觸發驗證錯誤,如下所示:

僅允許輸入符合您指定條件的文字值

提示:若您有其他多重條件驗證需求,可善用 Excel 內建函數建立自訂公式,輕鬆滿足您的要求!

公式型驗證的一項限制在於,當規則變得更複雜或更具互動性時(例如需顯示自訂錯誤訊息,或處理動態變更的條件),可能難以管理與編輯。在此類情況下,採用 VBA 解決方案可大幅提升彈性。


使用 VBA 套用多重資料驗證(進階)

當公式型資料驗證無法滿足需求時(例如需根據多種條件組合進行驗證、依據其他儲存格的值動態調整規則,或顯示自訂的即時提示訊息),您可運用 VBA(Visual Basic for Applications)巨集,在儲存格中實作更進階或具動態性的驗證規則。

典型應用情境包括:

  • 根據超過兩個同時條件驗證輸入內容
  • 允許使用者互動,例如顯示包含詳細指引的彈出訊息
  • 自動還原無效資料並提供自訂指示

以下為一個 VBA 解決方案範例,其中在 B2 中輸入的資料必須符合下列任一條件:
-為介於 1 與 50 之間的整數
-或是範圍 D2:D5

注意:您可以根據需求,靈活調整程式碼中的條件、目標範圍或驗證邏輯。

1. 按下 Alt+F11 以開啟 Visual Basic for Applications 編輯器。在 VBA 編輯器中,於專案窗格內按兩下您要新增多重資料驗證的工作表,接著將下列巨集複製到該工作表的程式碼視窗中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ValidList As Range
    Dim InputValue As Variant
    Dim IsValid As Boolean
    Dim xTitleId As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Only validate B2 (you can set this to your desired cell or range)
    If Not Intersect(Target, Range("B2")) Is Nothing Then
        InputValue = Target.Value
        Set ValidList = Range("D2:D5") ' Change as needed
        IsValid = False
        
        ' Check for whole number between 1 and 50
        If IsNumeric(InputValue) And InputValue = Int(InputValue) Then
            If InputValue >= 1 And InputValue <= 50 Then
                IsValid = True
            End If
        End If
        
        ' Check if input matches allowed list
        If WorksheetFunction.CountIf(ValidList, InputValue) > 0 Then
            IsValid = True
        End If
        
        If Not IsValid Then
            MsgBox "Entry must be an integer between 1 and 50 OR one of the values listed in D2:D5.", vbExclamation, xTitleId
            Application.EnableEvents = False
            Target.ClearContents
            Application.EnableEvents = True
        End If
    End If
End Sub

2. 在儲存格 B2 中輸入資料:若輸入的是介於 1 與 50 之間的整數,或為 D2:D5 區域中的文字,系統將予以保留;否則會立即顯示錯誤訊息並清除無效內容。您可依需求調整 VBA 中的目標儲存格與有效值範圍,輕鬆客製化驗證規則!

提示與疑難排解:

  • 執行 VBA 前,務必先儲存活頁簿,以免因非預期的程式碼導致資料遺失。
  • 如果您的工作表包含多個驗證儲存格,只需調整程式碼,即可驗證任意範圍,不再侷限於 B2.
  • 若程式碼未執行,請再次確認巨集已啟用,且程式碼位於正確的工作表中。
  • 您可以根據需求強化程式碼,以提供不同的訊息或記錄無效的輸入項目。

VBA 型解決方案極具彈性,非常適合進階驗證需求。但請注意,巨集需使用者在其 Excel 環境中啟用 VBA,且在某些安全性設定下可能無法使用。

總結來說,當您在 Excel 中為單一儲存格設定多重驗證規則時,可針對多數簡單需求採用公式型方法,或透過 VBA 打造更動態、更精密的資料驗證工作流程。請務必根據您的目標、資料複雜度及使用者環境,審慎評估最適合的方案,以發揮最大效益。


最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用