逗号分隔列表的数据验证

逗号分隔列表的数据验证

我需要一种简单的方法,在单元格中获取逗号分隔的列表,并提供一个下拉框来选择其中一个。

例如,单元格可能包含:
24、32、40、48、56、64

在另一个单元格中,使用数据验证,我想提供一个下拉列表来选择其中一个值

我需要不使用 VBA 或宏来执行此操作。我希望它能与 Excel 2010 及更高版本配合使用。
我一直在尝试计算列表中的逗号数量,然后尝试将其拆分为多行单个数字等,但仍然没有成功。

答案1

使用逗号来标识单个数字的做法是正确的。这适用于 50 个逗号分隔的值 - 如果您使用的是 Excel 2010,则可以扩展到 8000 个左右的项目(尽管对于这么多,我可能会重新考虑这是否是处理问题的最佳方法 :)

假设您的数字列表在单元格 A2 中。

  1. 如果您的数字列表在逗号后有空格,请执行查找和替换以删除它们,或者在单元格 B2 中进行替换:=SUBSTITUTE(A2," ","")

  2. 现在让我们找到所有逗号。在单元格 C2 中输入=SEARCH(",",$B2,1)。这将找到文本中第一个逗号的位置。

  3. 在 D2 中,输入类似但略有不同的公式来查找下一个逗号:=SEARCH(",",$B2,C2+1)

  4. 将其复制到(假设)50 列。这将带您到 AZ 列。

  5. 现在我们可以抓取每个单独的数字。在单元格 BA2 中输入=IFERROR(LEFT(B2,C2-1),"")。这将抓取第一个逗号左侧的所有文本,如果单元格为空,则不返回任何内容。

  6. 在 BB2 中输入=MID($B2,C2+1,D2-C2-1)以拉出下一个数字,如果此位置没有数字,则不返回任何内容。

  7. 将 BB2 复制到 50 列,这将带您到达 CX 列。

  8. 现在您可以将单元格验证分配给范围 BA2:CX2,并且每个数字都将出现在下拉列表中。

在此处输入图片描述

答案2

在 Office 2010 中,我可以通过键入以下内容嵌入数字列表以进行数据验证,而无需使用电子表格列:

=0,1,2,3,4,5

根据您的需要并且如果您使用正确的语法,您可能根本不需要电子表格列。

相关内容