Excel FILTER() 对于空白单元格返回 0

Dav*_*son 3 excel filter worksheet-function is-empty excel-365

我怀疑以前有人问过这个问题,但我找不到。

FILTER()即使指定了返回字符串,通常也会为空白行返回 0。

使用时filter()我经常得到空单元格的 0 返回值。假设 A 列中有 6 行数据:

abc
xyz
abc

xyz
abc
Run Code Online (Sandbox Code Playgroud)

如果我使用

FILTER(A10:A15, A10:A15 <> "xyz", "")
Run Code Online (Sandbox Code Playgroud)

我得到以下信息(有时):

abc
abc
  0
abc
Run Code Online (Sandbox Code Playgroud)

这似乎有些难以预料。在我不想要的地方出现 0 是一个问题,需要额外的逻辑或过滤。这是一个已知的问题?除了明确过滤掉空白单元格之外,还有其他方法可以解决这个问题吗?

这似乎可以消除空单元格返回 0 的情况:

FILTER(A10:A15, (A10:A15 <> "xyz") * (A10:A15 <> ""), "")
Run Code Online (Sandbox Code Playgroud)

返回的是:

abc
abc
abc
Run Code Online (Sandbox Code Playgroud)

我可以接受这个解决方案,但它应该是不必要的。我最后还向人们解释了为什么我一遍又一遍地过滤空单元格。

顺便说一句,过滤掉 0 不起作用。FILTER()在读取单元格时似乎将单元格视为空白字符串,但在输出结果时则不然。

FILTER(A10:A15, (A10:A15 <> "xyz") * (A10:A15 <> 0), "")
Run Code Online (Sandbox Code Playgroud)

这将返回带有 0 的原始结果。

如果没有更好的解决办法,有解释吗?

小智 7

您可以在数组参数前面添加 &""。

例如,

FILTER(A10:A15 &"", (A10:A15 <> "xyz") * (A10:A15 <> ""), "")
Run Code Online (Sandbox Code Playgroud)

这对于文本值可以很好地工作,但它会将您的数字数据转换为文本,在这种情况下,您可以使用 VALUE 函数将其转换回数字。

假设如果 A10:A15 是数值数据,您可以使用:

VALUE(FILTER(A10:A15 &"", (A10:A15 > 1000) * (A10:A15 <> ""), ""))
Run Code Online (Sandbox Code Playgroud)


小智 6

混合数据范围的解决方案

\n

当您的范围包含混合数据时,此处提到的其他解决方案将无法正常工作。该解决方案适用于所有文本数据或所有数字数据。但这些不适用于混合数据,正如您在下面的比较中看到的那样。

\n

这适用于混合数据:

\n

=FILTER( IF(A10:A15="", "", A10:A15), A10:A15<>"xyz")

\n

\n

比较解决方案

\n

注 1:橙色字段是不正确/不需要的,绿色字段是正确的。

\n

注 2:“Waarde”是荷兰语“价值”(错误)的意思。

\n

原始数据和基本过滤=FILTER(I3:K6; I3:I6 <> "")

\n

在此输入图像描述

\n

FILTER(... & "")过滤器\xe2\x80\x94=FILTER(I3:K6 & ""; I3:I6 <> "")

\n

与 SUBSTITUTE() 解决方案相同。\n与解决方案相同SUBSTITUTE()

\n

VALUE(...)过滤器\xe2\x80\x94=VALUE(FILTER(I3:K6; I3:I6 <> ""))

\n

在此输入图像描述

\n

VALUE(FILTER(... & ""))过滤器\xe2\x80\x94=VALUE(FILTER(I3:K6 & ""; I3:I6 <> ""))

\n

在此输入图像描述

\n

\xe2\x9c\xa8 完美过滤器 \xe2\x80\x94=FILTER(IF(I3:K6 = ""; ""; I3:K6); I3:I6 <> "")

\n

在此输入图像描述

\n

对机器人的一些解释:)

\n

如果范围内的单元格为空,则它将是空字符串 ( ""),否则它将使用原始值。这样,只有特定的单元格才会被替换为文本空单元格,而数字单元格则按原样保留,以便 Excel 自动解释为数字或其他数据。

\n