第 1 步 - 使用 A 列中的原始名称,将此数组公式¹ 放在第二行右侧的某个位置。我会用 Z2。
=IFERROR(INDEX(A$2:INDEX(A:A, MATCH("zzz",A:A )), MATCH(0, COUNTIF(Z$1:Z1, A$2:INDEX(A:A, MATCH("zzz",A:A ))&""), 0)), "")
向下填写,直到用完名称,然后再填写几行以供将来扩展。
第 2 步 - 转到公式 ► 定义的名称 ► 名称管理器并创建一个新名称。
Name: listNames
Scope: Workbook
Refers to: =Sheet2!$Z$2:INDEX(Sheet2!$Z:$Z, MATCH("zzz", IF(LEN(Sheet2!X:X), Sheet2!$Z1:$Z98) ))
第 3 步 - 转到您希望进行数据验证的单元格并使用数据 ► 数据工具 ► 数据验证。
Allow: List
Source: listNames
¹ 数组公式需要使用 Ctrl+Shift+Enter↵ 完成。如果输入正确,Excel 会将公式用大括号括起来(例如 { 和 })。您不会自己输入大括号。一旦正确输入第一个单元格,它们就可以像任何其他公式一样被填充或向下或向右复制。尝试将全列引用减少到更接近代表实际数据范围的范围。数组公式以对数方式消耗计算周期,因此最好将引用范围缩小到最小值。更多信息请参见Guidelines and examples of array formulas。