数据验证 - 在Excel中没有重复的下拉列表

时间:2016-04-21 18:46:14

标签: excel excel-vba validation excel-formula vba

您可以在下拉列表中帮助我删除重复项。该列表不是静态的。例如:

之前

James
Peter
James
Nick
Peter

James
Peter
Nick

我不确定使用数据验证公式框的公式。

我曾尝试过以下内容,但没有成功:

=OFFSET($C$13,0,0,COUNTIF(C:C,"?*")-1)

1 个答案:

答案 0 :(得分:2)

步骤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

named_range_data_validation

¹数组公式需要用 Ctrl + Shift + Enter↵完成。如果输入正确,Excel将公式包装在大括号中(例如 {} )。您不要自己键入大括号。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas