Excel>在未排序的数组中查找第一个第一个/最低非零值

时间:2017-01-05 08:56:43

标签: arrays excel

在单个公式中使用标准Excel函数的一系列复杂数组组合(不涉及VBA或UDF),我在公式中出现了以下结果。我现在需要在公式中添加一个最后一步,从这个数组中拉出一个数字:

{0,0,0,4,0,6,7...}

使用Excel公式,如何检索第一个非零数字(在此示例中为4)而不对数组进行任何其他引用?由于从源数据生成此数组所需的计算的复杂性,我宁愿不在同一公式中执行此操作两次。

所以我正在寻找可以应用于数组的函数或运算符,以便产生所需的结果 - 理想情况下优雅和简单。 MATCHLOOKUP失败,因为它们需要对数组进行排序。 MIN失败,因为最低值为0,而不是4。

注意:每个非零数字的值也对应于它在数组中的位置(第一个是1,第二个是2,等等),所以第一个非零数字将始终是最小。

1 个答案:

答案 0 :(得分:2)

试试这个

=1/AGGREGATE(14,6,1/{0,0,0,4,0,6,7},1)

它找到忽略误差值的倒数的最大值,因此答案为0.25。然后它需要它的倒数。