where “allowed” is the named range D5:D11. explained in detail here. The result is an array like this: which goes into MATCH as the lookup value. For lookup array, we use the named range “allowed”, concatenated to an empty string (""): The concatenation converts any numbers to strings, so that we are matching apples-to-apples. The result is an array like this: The last argument in MATCH, match_type is set to zero to force an exact match. Because we give MATCH multiple lookup values, we get back an array with multiple results: Each number in this array represents a match. In the event a match isn’t found for a character, the array will contain a #N/A error. Finally, the COUNT function is used count the numbers in the result array, which is compared to a count of all characters in the cell calculated with the LEN function. When MATCH finds a match for all characters, the counts are equal, the formula returns TRUE, and data validation succeeds. If MATCH doesn’t find a match any character, it returns #N/A instead of a number. In that case, the counts don’t match and data validation fails. Note: this formula relies on brute force to get the job done. If you have a better approach, please leave a comment below.

Dave Bruns

Hi - I’m Dave Bruns, and I run Exceljet with my wife, Lisa. Our goal is to help you work faster in Excel. We create short videos, and clear examples of formulas, functions, pivot tables, conditional formatting, and charts.