@DasalKalubowila,这里是@ KresimirL的答案,可能是你要找的修改。
首先,为您的输入数据创建一个定义的名称。通过在功能区上转到公式,然后单击名称管理器在Defined Names组下。
在我的例子中,我调用了输入数据范围InputData。所用式I是
=Sheet1!$A$2:INDEX(Sheet1!$A$2:$A$501,MATCH("Ω",Sheet1!$A$2:$A$501))
其中
Sheet1
是工作表,其中输入数据的生活,
$A$2
是在输入包含数据的第一单元的名称范围(我称之为主播),
$A$2:$A$501
是您的数据所在的列的最大面积,可能会在未来生活,并且
"Ω"
是欧米茄字母。您可以通过按住ALT 和按下得到这个然后然后在10键数字键盘(也可以在字符映射应用程序在Windows中找到)。
该公式可根据存在多少条目有效地增加或缩小数据范围。
接下来,您需要创建一个帮助列。我知道这不是我们想要的,但它将是唯一/更好的方式之一。我将我的作业放在与我的输入数据相同的工作表上,但您不必这样做。我在E2
使用的公式是
=IFERROR(INDEX(InputData,MATCH(0,COUNTIF($E$1:$E1,InputData),0)),"")
您需要与按Ctrl +移+输入作为它是一个数组公式犯此。然后将该公式向下拖到您的位置。你基本上想要减少许多行,你认为你会有独特的条目。
然后我需要创造一个更明确的名字,这就是即将在我数据验证在接下来的步骤中使用。我将这个新定义的名称叫做ValidationList(这需要将范围限定在工作簿中)。我用ValidationList其计算公式为
=Sheet1!$E$2:INDEX(Sheet1!$E$2:$E$501,COUNTIF(Sheet1!$E$2:$E$501,">*"))
查看笔记InputData上述理解这个公式更好。唯一的区别是,该公式使用COUNTIF
而不是MATCH
。这是因为如果你的独特的价值还没有填满整个范围,你在Column E
(上一步)中拖动你的公式,使用MATCH
以同样的方式之前最终会抓住一大堆我们不知道的空白想。 COUNTIF
因此只计算那些包含大于“*”值的单元格,其中星号是任何字符的通配符(并且“”不包含字符,因此不包括那些项目)。
现在,创建自己的数据验证,并设置它像这样:
现在你应该离开这个:
而当你的信息添加到您的InputData区,您的范围验证列表应扩展为包含最新的唯一身份证件,而这些唯一身份证件又将填充到您的数据验证区域,lik e例如:
我发现这似乎并没有减慢我的工作簿过于显着,但我会有兴趣听到它如何在您的表现。
我不确定是否有任何方法可以在无辅助列的情况下完成此操作。数据验证(无论如何用于下拉列表)本质上是非智能的。它只允许你输入一系列单元格 - 不允许公式。 – ImaginaryHuman072889
谢谢。因此,我认为我最好的选择是在新记录进入时用宏创建一个不同的单列表格。然后让数据验证列表范围成为上述表格。但这并不理想,因为用户在添加到表A时必须单击按钮,并且人们无法处理这些类型的说明。 –
我同意需要帮手列。如果你想避免VBA,可能可以用公式来完成。 – ImaginaryHuman072889