Excel>在未sorting的数组中find第一个/最低的非零值
在一个公式中使用标准Excel函数的一系列复杂的数组组合(不涉及VBA或UDF),我得到了以下结果出现在公式中。 我现在需要在公式中添加一个最后一步,从这个数组中只取出一个数字:
{0,0,0,4,0,6,7...}
使用Excel公式,如何检索第一个非零数字(在这个例子中是4), 没有任何额外的数组引用 ? 由于从源数据生成这个数组所花费的计算的复杂性,我宁愿不要在同一个公式中做这两次。
所以我正在寻找可以应用到数组中的函数或运算符,以获得所需的结果 – 理想情况下优雅和简单的东西。 MATCH
和LOOKUP
失败,因为它们需要对数组进行sorting。 MIN
失败,因为最低值是0,而不是4。
注意:每个非零数字的值也与其在数组中的位置相对应(第一个是1,第二个是2等),所以第一个非零数字总是最小的。
尝试这个
=1/AGGREGATE(14,6,1/{0,0,0,4,0,6,7},1)
它find了忽略误差值的倒数的最大值,所以答案是0.25。 那么它就是这个的倒数。