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

Arrays Excel>;查找未排序数组中的第一个/最低非零值,arrays,excel,Arrays,Excel,在一个公式中使用一系列复杂的数组组合,使用标准Excel函数(不涉及VBA或UDF),我得到了如下结果。现在,我需要在公式中添加最后一步,以便从该数组中仅提取一个数字: {0,0,0,4,0,6,7…} 使用Excel公式,如何检索第一个非零数字(在本例中为4),而无需对数组进行任何其他引用?由于从源数据生成此数组所需计算的复杂性,我不希望在同一公式中重复这两次 因此,我正在寻找可以应用于数组的函数或运算符,以产生所需的结果——理想情况下是优雅而简单的结果匹配和查找失败,因为它们需要对数组进行排

在一个公式中使用一系列复杂的数组组合,使用标准Excel函数(不涉及VBA或UDF),我得到了如下结果。现在,我需要在公式中添加最后一步,以便从该数组中仅提取一个数字:

{0,0,0,4,0,6,7…}

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

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

注意:每个非零数字的值也与它在数组中的位置相对应(第一个是1,第二个是2,等等),因此第一个非零数字总是最小的。

试试这个

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

忽略误差值,它会找到最大的倒数,所以答案是0.25。然后取其倒数。

也许你可以分享你是如何实现这个阵列的。这是另一组公式的结果吗?@夜爬器23——在这个例子中考虑了一个有7行的表(在实践中要大得多)。公式的其余部分是从表中检索不同的列,并将它们与不同的度量值进行比较,以确定它要查找的行,因此将{0,1,1,1,0,1,1}与{1,0,1,1,1,1,1,1}和{0,0,0,1,1,1,1,1}等相乘,最后与行号数组{1,2,3,4,5,6,7}相乘,确定相关匹配行的索引。一旦单元格有了结果,右边的所有单元格都可以将此索引用于普通索引(MATCH())函数。谢谢!我以前甚至没有听说过聚合函数,我实际上是用
=1/MAX(IFERROR(1/{0,0,0,4,0,6,7}))
解决了这个问题,这与您在这里所做的差不多,但是使用了两个函数而不是一个函数。肯定会继续保持
聚合
。。。