我需要一种简单的方法,在单元格中获取逗号分隔的列表,并提供一个下拉框来选择其中一个。
例如,单元格可能包含:
24、32、40、48、56、64
在另一个单元格中,使用数据验证,我想提供一个下拉列表来选择其中一个值
我需要不使用 VBA 或宏来执行此操作。我希望它能与 Excel 2010 及更高版本配合使用。
我一直在尝试计算列表中的逗号数量,然后尝试将其拆分为多行单个数字等,但仍然没有成功。
答案1
使用逗号来标识单个数字的做法是正确的。这适用于 50 个逗号分隔的值 - 如果您使用的是 Excel 2010,则可以扩展到 8000 个左右的项目(尽管对于这么多,我可能会重新考虑这是否是处理问题的最佳方法 :)
假设您的数字列表在单元格 A2 中。
如果您的数字列表在逗号后有空格,请执行查找和替换以删除它们,或者在单元格 B2 中进行替换:
=SUBSTITUTE(A2," ","")
。现在让我们找到所有逗号。在单元格 C2 中输入
=SEARCH(",",$B2,1)
。这将找到文本中第一个逗号的位置。在 D2 中,输入类似但略有不同的公式来查找下一个逗号:
=SEARCH(",",$B2,C2+1)
将其复制到(假设)50 列。这将带您到 AZ 列。
现在我们可以抓取每个单独的数字。在单元格 BA2 中输入
=IFERROR(LEFT(B2,C2-1),"")
。这将抓取第一个逗号左侧的所有文本,如果单元格为空,则不返回任何内容。在 BB2 中输入
=MID($B2,C2+1,D2-C2-1)
以拉出下一个数字,如果此位置没有数字,则不返回任何内容。将 BB2 复制到 50 列,这将带您到达 CX 列。
现在您可以将单元格验证分配给范围 BA2:CX2,并且每个数字都将出现在下拉列表中。
答案2
在 Office 2010 中,我可以通过键入以下内容嵌入数字列表以进行数据验证,而无需使用电子表格列:
=0,1,2,3,4,5
根据您的需要并且如果您使用正确的语法,您可能根本不需要电子表格列。