程序
- Excel 2013
目标
- 使用数据验证的列表选项,从逗号分隔列表中创建一个单元内下拉列表
- 使用数据验证的列表选项,从一个没有任何空格的干净值行创建一个单元内下拉列表,从一个不可避免地被空格污染的动态生成的行
限制
- 没有 VBA、宏或其他错误 - 只有公式
- 数据保存在一行中,而不是一列中。将数据转换为列会有些困难,我宁愿避免这样做
细节
我最初的计划是创建一个包含逗号分隔列表的单元格,然后将其用于创建数据验证列表。成功创建格式良好的逗号分隔列表后,您似乎无法简单地引用该列表并通过数据验证工具对其进行翻译,现在我需要找到一种替代方法。
数据保存在长行中(不是列,并且不能轻易转换为列),这是通过将其上方的各种值相加而生成的。这意味着两个值之间可能有很多空白 - 这是不可避免的。
以下网站有一个数组公式,可用于从列中删除空白单元格,但是我没有运气将其转换为适用于一行的公式: http ://www.cpearson.com/excel/NoBlanks.aspx
=IFERROR(INDEX(BlanksRange,SMALL((IF(LEN(BlanksRange),ROW(INDIRECT("1:"&ROWS(BlanksRange))))),ROW(A1)),1),"")
如果有人对连续完成这项工作有任何想法,我将不胜感激。它似乎需要的不仅仅是用 COLUMN() 替换 ROW() 函数——可能与 INDIRECT() 上的“1:”有关,尽管我不明白该公式是如何工作的。
与此同时,我将继续使用它,当然,如果有人对行数据或逗号分隔数据问题有任何其他非 VBA 解决方案,我会全力以赴。
编辑:为了澄清,上面的链接提供了一个解决方案,用于将一组垂直数据带入水平结果通道,但这对我的水平数据集没有帮助。