逗号分隔列表的数据验证

Bra*_*rad 5 csv data-validation microsoft-excel-2010

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

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

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

我需要在没有 VBA 或宏的情况下执行此操作。我希望它适用于 Excel 2010 及更高版本。
我一直在计算列表中逗号的数量,然后尝试将其拆分为多行单个数字等,但仍然没有任何乐趣。

And*_*ohr 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 范围,每个数字都会出现在下拉列表中。

在此输入图像描述