寻找最大最小值(Finding the maximum of minimum values)

2019-09-18 05:50发布

我想计算每一行的电子表格中的最低值的最大值(谷歌表,特别是)大于0。我希望这是有道理的。 我的数据是:

0    6   7   8   1          
0   12  21  22  21          
0   10      18  24
0    7   9   1  17          
0   16  16  20              

所以,我需要某种将产生的ARRAYFORMULA:

 1
12
10
 1
16

其中然后我可以得到最大的。 我已阅读并经历了明显的解决方案不起作用,那就是:

=max(ArrayFormula(min(if(A:Z>0,A:Z,"")))

究其原因是在ArrayFormula(min(...的一部分返回最小的整个数据集这是大于0,这里是1。如果没有很好的解决办法,我会考虑以某种方式重新安排我的资料,或计算最小值在不同的细胞,但我真的希望有一个1级的解决方案。

Answer 1:

最大ArrayFunction不存在,所以唯一的办法是解决方法。 假设,你必须在一些范围内数字A1:C5 。 所得到的范围是D1:D5

所有你需要的是在电池单式D1

=QUERY(QUERY({ArrayFormula(REGEXEXTRACT(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(row(A1:C5)&"*"&A1:C5&"/")),"/")),"\d+")),ArrayFormula(REGEXEXTRACT(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(row(A1:C5)&"*"&A1:C5&"/")),"/")),"[*](\d+)")*1)},"select Col1, min(Col2) where Col2 <>0 group by Col1 label min(Col2) ''"),"select Col2")

要小心,它可以工作缓慢。

式的主要部分是查询:

select Col1, min(Col2) where Col2 <>0 group by Col1...

将其更改为得到不同的结果(最大,最小,SUM,AVG,一些calculatrions等)

如果有人想探索的公式,这里的工作与的分步解决方案。



Answer 2:

在范围A1数据:E5,在F1和复制下来:

=if(small(A1:E1,1)=0,small(A1:E1,2),small(A1:E1,1))  

要么

=ArrayFormula(min(if(A2:E2>0,A2:E2,"")))  

应该返回最小值比0每行,对于其最大可能与计算更大:

=max(F1:F5) 


Answer 3:

除了获得每行的最小值(允许一气呵成的阵列输出),尝试:

=index(ArrayFormula(transpose(query(transpose(if(A:C>0, A:C,)),"select "&join("),","min(Col"&row(indirect("A1:A"&count(A:A))))&")"))),,2)


文章来源: Finding the maximum of minimum values