使用Google表格中的arrayformula()在每一行上查找一个min()值

问题描述 投票:0回答:1

我有点像是在泡菜,而我一直在努力工作,我想澄清一下。由于某种原因,我的旧帐户已经消失了多年:(,我很抱歉。

我正在尝试为添加数据的每一行获取一个最小值。首先需要转换两列,然后为每一行的所有三列查找最低值。

我已经尝试了多种方法,仅输入为每一行创建的公式都可以正常工作。例如:

=MIN( IF(E124 > 0, E124*$E$6), IF(F124 > 0, F124*$F$6), IF(G124 > 0, G124) )

我尝试使用其他示例,但是,我对QUERY不熟悉。尝试在公式中进行简单的计算(加法)会造成混淆。我尝试使用的示例:

=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")

添加时存在多个问题。我想忽略空白单元格和标题等文本。它不会覆盖文本,也不会执行(给我有关覆盖值的错误)。

我曾尝试编写=arrayformula,但不喜欢计算最小值。它会为行做计算。

=ArrayFormula(IF(ISBLANK({E8:E;F8:8;G8:8}), "", added my formula here))

下面是我已经工作了几个小时的东西,我相信问题是在MIN函数中选择了引起问题的范围

=arrayformula(IF(LEN(E8:G)<>0, MIN( IF(E8:E > 0, E8:E*$E$6), IF(F8:F > 0, F8:F*$F$6), IF(G8:G > 0, G124) ),)

[如果有办法,我将非常感谢您的帮助

谢谢

LINK:我在实际工作表中制作的示例的可见版本超过500行。https://docs.google.com/spreadsheets/d/133LJHY3s45ZyxWq0PWew1KikbyNE4MTt-wOeWHBrZY0/edit?usp=sharing

google-sheets syntax spreadsheet
1个回答
0
投票

在O3单元格中尝试一下

=ArrayFormula(TO_DOLLARS(index(transpose(query(transpose(E3:G18*{M5, N5, 1}),"select "&join("),","max(Col"&row(indirect("A3:A18"))-2)&")")),,2)))

看看是否能提供预期的输出?

以防万一,您可以尝试在E:G列中包含一个以上的值

=ArrayFormula(TO_DOLLARS(index(transpose(query(transpose(if(ISNUMBER(E3:G18), E3:G18, 99^99)*{M5, N5, 1}),"select "&join("),","min(Col"&row(indirect("A3:A18"))-2)&")")),,2)))
© www.soinside.com 2019 - 2024. All rights reserved.