我有一个Google电子表格的数字。如何从每列中获取最大值,并仅使用一个公式对其进行汇总? (没有临时单元格,没有脚本。)
1 2 1
0 1 3
0 2 0
对于上表,结果应为6(1 + 2 + 3,每列的最大值)。但是我想要一个适用于更大表的解决方案。
作为一个更普遍的问题,我想了解如何使用任意运算符(例如MAX
和SUM
)将2D范围折叠成1D数组。
答案 0 :(得分:5)
假设您的数据在A2:D范围内,要获得每行的最大值(数组输出),请尝试
=query(transpose(query(if(row(A2:D)>=transpose(row(A2:D)),transpose( A2:D)),"select max(Col1),max(Col2),max(Col3),max(Col4) ",0)),"Select Col2", 0)
如果你需要处理很多列,这可能会更好
=ArrayFormula(QUERY(TRANSPOSE(QUERY(TRANSPOSE( A2:D) , "Select "&"MAX(Col"&JOIN( ", MAX(Col",ROW(INDIRECT( "YY1:YY"&ROWS(A2:A)))&")"))), "Select Col2", 0))
总结一下,只需在上面的公式周围包装SUM()即可。
答案 1 :(得分:0)
通过A1:C3
中的列的MAX
=INDEX(QUERY({A1:C3},"Select "&"MAX(Col"&JOIN(", MAX(Col",SEQUENCE(COLUMNS(A1:C3))&")"),0),2)
通过A1:C3
中的行最多MAX
=TRANSPOSE(INDEX(QUERY(TRANSPOSE(A1:C3),"Select "&"MAX(Col"&JOIN(", MAX(Col",SEQUENCE(ROWS(A1:C3))&")"),0),2))
用MIN代替MAX以获得最小值。