【问题标题】:Using MIN() inside ARRAYFORMULA()在 ARRAYFORMULA() 中使用 MIN()
【发布时间】:2015-07-05 09:21:58
【问题描述】:

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

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

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

【问题讨论】:

    标签: google-sheets min google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

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

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

    【讨论】:

    • 这适用于少数列,但随着列数的增加变得真的讨厌。我将原始问题阅读为寻找通用解决方案,“假设我有列ABC”只是为了解释问题。如果有人需要使用它,四列的解决方案是=ARRAYFORMULA(if(A:A < B:B,if(A:A < C:C,if(A:A < D:D, A:A, D:D),if(C:C < D:D, C:C, D:D)),if(B:B < C:C,if(B:B < D:D, B:B, D:D),if(C:C < D:D, C:C, D:D))))。每增加一列,总大小大约翻倍。 5 列几乎可以管理,但需要 312 个字符。
    【解决方案2】:

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

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

    看看这是否有效?

    基本上就是这样

    • 首先在 A:C 中转置数字
    • 计算每列的最小值(QUERY 函数)
    • 然后将这些最小值转回到行中

    【讨论】:

      【解决方案3】:

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

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

      结合 INDEXMINIFS 对我有用...

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

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

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

      【讨论】:

        【解决方案4】:
        =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")
        

        【讨论】:

        • REGEXREPLACE 调用之后是否需要&""
        • @AnnanFay 是的。仅出于安全原因。这取决于您的数据集。正则表达式不能处理数值,所以通过添加这个块,它会将数值转换为文本字符串值。
        猜你喜欢
        • 2021-12-01
        • 2020-06-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-27
        • 2020-04-21
        • 1970-01-01
        • 1970-01-01
        • 2020-12-08
        相关资源
        最近更新 更多