数据验证 - Excel 中无重复的下拉列表

3

您好,请帮我解决下拉列表中的重复项问题,这个列表是动态的。举例:

之前

James
Peter
James
Nick
Peter

之后

James
Peter
Nick

我不确定在数据有效性公式框中该使用哪个公式。

我尝试了以下公式,但没有成功:

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

你是否已经尝试过类似这个链接的方法来去除重复项? - VBA Pete
2个回答

3

步骤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会在公式外面加上大括号(例如{})。这些大括号不需要手动输入。一旦正确输入到第一个单元格,它们可以被填充或复制到其他单元格。尽量将全列引用缩小到更接近实际数据范围的范围内。数组公式对计算周期的消耗成幂指数级增长,因此缩小引用范围是很好的做法。有关更多信息,请参见数组公式的指南和示例


1
运行效果非常好。我只需要从用户端隐藏列即可。谢谢。 - James

0

我本来希望得到一个不同的答案,这个方法确实有效,但并不是我想要的。我上课时被要求将其格式化为表格,并在B列中使用=unique(A2:A6)。然后我使用该列表作为验证列表的目标,并隐藏了该列。

我本来希望找出是否可以在源框中直接输入=unique("所需范围")。

Excel数据验证框的屏幕截图


目前你的回答不够清晰。请编辑并添加更多细节,以帮助其他人理解它如何回答所提出的问题。你可以在帮助中心找到有关如何撰写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接