16

我已经看到了一些在 Google 电子表格中使用的示例SUM()ARRAYFORMULA()奇怪的是,它们似乎都是变通方法),但我不知道如何将它们应用到使用中MIN()

假设我有 columns AB并且C我只想获得列MIN(A:C)上的结果D,仅针对与每一行匹配的三个单元格。直截了当的方法应该是ARRAYFORMULA(MIN(A1:C))但肯定是行不通的。

MIN()对于 Google 电子表格中的所有行,我如何以编程方式计算一行中某些单元格的值?

4

4 回答 4

13

MIN()无论范围大小如何,始终返回单个值,因此ARRAYFORMULA()不会更改输出 - 它仅有助于转换不处理范围的公式。

作为一个快速的答案,你可以简单地重写MIN()使用类似的逻辑IF()=ARRAYFORMULA(if(A:A < B:B, if (A:A < C:C, A:A, C:C), if(B:B < C:C, B:B, C:C)))

于 2015-04-27T05:20:30.653 回答
3

在 D1 中尝试此解决方法/公式:

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

看看这是否有效?

基本上这个

  • 首先转置 A:C 中的数字
  • 计算每列的最小值(QUERY 函数)
  • 然后将这些最小值转回到行中
于 2015-04-28T08:06:19.893 回答
2

一些“统计”和“数学”类型的函数 - AVERAGECOUNTMAXMINSUM - 每个都有相应的*IF和/或*IFS变体,当与INDEX函数结合使用时,似乎可以满足这种需求。

例如,我有一张名为monthlyA 列的日期和 B 列的美元金额的工作表。我想获取日期为 2021 年的行的最低美元金额。

结合INDEXMINIFS对我有用......

=INDEX(MINIFS(monthly!$B$2:$B, YEAR(monthly!$A$2:$A), 2021))

这种类型的功能包括...

单数形式 ( *IF) 基于单个标准匹配行。复数形式 ( *IFS) 根据多个条件匹配行。

于 2021-04-21T20:53:15.663 回答
1
=QUERY(TRANSPOSE(QUERY(TRANSPOSE(A1:C), 
 "select "&REGEXREPLACE(JOIN( , ARRAYFORMULA(IF(LEN(A1:A&B1:B&C1:C), 
 "min(Col"&ROW(A1:A)-ROW(A1)+1&"),", ""))), ".\z", "")&"")),
 "select Col2")

0

于 2019-06-06T10:55:36.980 回答