Excel - 数组函数删除空格

Excel - 数组函数删除空格

我有一列文本项,其中项之间可以包含空格(空单元格)。在另一张工作表上,我尝试使用数组公式对现有范围进行过滤以滤除这些空格。

公式如下:

{=IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

灵感来自于地点。

在空白工作簿中,此操作可按预期工作,但是当我尝试在现有工作簿中使用该公式时,它会将包含“0”的单元格放入我的数组函数生成的列表中。输入列和生成的输出列均格式化为文本。我需要这些空列完全不显示在我的输出区域中。

输入区域
输出区域

任何帮助或建议都将不胜感激!

答案1

这个问题之前有人问过,并且给出了非常详细的答案这里

该答案包括手册、VBA 和数组公式解决方案。后者引用自本网站,但长话短说,那里给出的公式(稍作修改以适合您的数据)是:

=INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1)))

结果输出显示在下表的 C 列中。如果要避免 #NUM! 错误,请将上述公式包装在 IFERROR() 中,这将在 D 列中给出结果:

=IFERROR(INDEX($B$1:$B$21, SMALL(IF(ISBLANK($B$1:$B$21), "", ROW($B$1:$B$21)-MIN(ROW($B$1:$B$21))+1), ROW(A1))),"")

在此处输入图片描述

答案2

你可以尝试将整个事情包装在一个 IF 函数中,

=IF( original formula = "", "", original formula )

因此,如果它等于空白,则不会输入 0,而是返回空白。

{=IF(IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")="","",IFERROR(INDEX(Input_Page!$C$2:$C$61,SMALL(IF(ISTEXT(Input_Page!$C$2:$C$61),ROW(Input_Page!$C$2:$C$61),""),ROW(Input_Page!C2))),"")}

或者

如果实际值并不重要,只是视觉提示,您可以创建自定义数字格式,以便 0 显示为空白。

使用##;##;""

在此处输入图片描述

相关内容