在删除Excel数据validation列表中的空白值时发出下拉?

我试图从数据validation下拉列表中删除空白值。 为此,我dynamic填充从源列(egColumn1)到另一列(如列2)的所有非空值,最后我把这个dynamic列在数据validation列表中。 下面是我使用它来删除空白并填充dynamic列的公式:

=IFERROR(INDEX([Column1],SMALL((IF(LEN([Column1]),ROW(INDIRECT("1:"&ROWS([Column1]))))),ROW([@Column1]))),"") 

这里的问题是来自column1的前3个值没有被填充到column2中。 我观察到ROW([@Column1]总是返回对应于表的行的索引,我需要对应表的索引而不是表单。

任何人都可以请help.I有点卡住如何实现这一目标?

Excel屏幕截图

[@ Column1]中的@符号表示“当前行”。

代替ROW([@Column1]尝试row(A1) 。这将返回值1,当向下复制将调整为2,3,4等

完整的公式是

= IFERROR(INDEX([列1],SMALL((IF(LEN([列1]),ROW(INDIRECT( “1:” &ROWS([列1]))))),ROW(A1))), “”)

这是一个数组公式,并且必须用Ctrl -Shift-Enter确认

这是结果的截图

在这里输入图像说明