首页 > 解决方案 > Excel LOOKUP 返回 3.33333E-06

问题描述

我在 W407 中有以下公式,它返回 3.33333333333333E-06。

=LOOKUP(2,1/INDEX(SUBTOTAL(2,OFFSET($A5,ROW($A5:$A400)-ROW($A5),0))*W5:W400,0))

“SUBTOTAL(2,...)”函数返回一个包含 0 和 1 的数组,0 表示不可见单元格,1 表示可见单元格。在这种特殊情况下,只有 A182 到 A199 可见。因此,它返回一个包含 396 个元素的数组,其中元素 177 到 194 的值为 1,其余为 0。

在 W5:W400 中,只有 W199(元素 194)的值为 300,000,其余为 0。

INDEX 函数将这两个数组逐个元素相乘,得到一个包含 396 个元素的数组。由于在第二个数组中,只有元素 194 不是 0,因此生成的数组是除元素 194 之外的 0 数组,即 300,000。

现在,为什么 LOOKUP 返回 3.33333333333333E-06?

标签: excel-formula

解决方案


所以你的公式是=LOOKUP(2,1/300000)

1/300,000 是 3.33333E-06,并且来自Office 文档

如果 LOOKUP 函数找不到lookup_value,则该函数匹配lookup_vector 中小于或等于lookup_value 的最大值。

3.33333E-06 是 0.00000333333,它肯定小于 2。因为它是数组中唯一不为零的元素,所以这就是返回的值。


推荐阅读