2

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

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 步解决方案。

4

3 回答 3

0

使用 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) 
于 2014-07-23T01:59:55.127 回答
0

max ArrayFunction 不存在,因此唯一的方法是解决方法。假设您在 range 中有一些数字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...

更改它以获得不同的结果(最大值、最小值、总和、平均值、一些计算等)

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

于 2016-02-25T11:13:20.633 回答
0

除了获得每行的最小值(允许一次性输出数组),尝试:

=index(ArrayFormula(transpose(query(transpose(if(A:C>0, A:C,)),"select "&join("),","min(Col"&row(indirect("A1:A"&count(A:A))))&")"))),,2)
于 2016-02-25T21:12:12.697 回答