Vit*_*are 3 excel excel-formula
假设我们有 2 个单元格,一个包含零,另一个为空,请参A2:A3见图中的范围:
如果它们通过了 a ,我们会得到两个零,请参见下图所示的inFILTER输出。当我们应用到存储先前结果的范围时,输出是单独的 0(参见 中的结果)。但是组合不会将这些零视为彼此相等,请参阅in的输出:FILTER(A2:A3, TRUE)B2:B3UNIQUEC2UNIQUE(FILTER(...))UNIQUE(FILTER(A2:A3,TRUE))D2:D3
这是为什么?我们能否抑制这种行为并仅得到一个零作为组合结果?
ps 我使用 Office 365,Excel 版本 2108
这是一个持续存在的问题,微软似乎选择继续下去。也就是说,它将真正的空白单元格视为0。因此,任何返回该值的公式都将返回 0。INDEX、(*)LOOKUP 或简单的数学函数都可以执行此操作。
正如您在尝试的最终公式中看到的那样,这似乎发生在最后一步。显然,FILTER 向 Unique 返回了一个空白,但是当它将值插入到工作表中时,它为空白返回了 0。
解决这个问题的一种方法是在后端连接一个空字符串,然后尝试将数字转回数字:
=LET(rng,A2:A3,uq,UNIQUE(FILTER(rng,TRUE)&""),IFERROR(--uq,uq))
Run Code Online (Sandbox Code Playgroud)
另一种选择是在过滤范围时测试范围并用空字符串替换空白:
=LET(rng,A2:A3,UNIQUE(FILTER(IF(rng="","",rng),TRUE)))
Run Code Online (Sandbox Code Playgroud)
哪个更短并且将保持数据类型。
如果可以访问内部人员的BETA通道功能,TOCOL()则可以使用 的第二个参数在中间步骤中“过滤”掉空单元格(和/或错误):
=UNIQUE(FILTER(TOCOL(A2:A3,1),TRUE))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |