我需要工作表函数的帮助,以便在 Excel 中搜索和显示最大值。我有 3 个输入列和 1 个输出列,定义如下:
*COLUMN A:包含数值(大部分是随机的)。
*COLUMN B:代表第一个参数,它只能包含文本“text01”或“text02”
*COLUMN C:代表第二个参数,它只能包含文本“是”或“否”。
*COLUMN D:根据 B 列和 C 列中定义的标准显示 A 列的最大值。
MAX 函数的条件如下:
使用定义的单元格范围从 A 列中的数字中返回最大数值。
MAX 函数的单元格范围定义如下:范围的第一个单元格由 B 列中的参数定义,如果 B 列中的值为“text01”,则范围将从下一行中的单元格开始(例如 B1 =“text01”,MAX 函数范围将从单元格 A2 开始)。范围的结束由 C 列中的参数定义 - 仅当 C 列中的值为“yes”时,范围才会继续。范围的结束由 C 列单元格中出现值“no”的点定义。例如:C2="yes"、C3="yes"、C4="no",这意味着 MAX 函数将使用 A4 作为范围的最后一个单元格。
MAX 函数仅当 B 列值为“text01”且下一行的 C 列值为“yes”时有效(例如 B1 = “text01”,C2="yes")。否则不搜索 MAX 值。
相应范围的最大值显示在 D 列中,对于每个范围,最大值显示在由范围开头定义的行中。其他行填充有文本“无”。
我应该在 D 列中输入什么函数?如果可能,请提供数组和非数组类型的公式。
我尝试使用 IF 函数来定义 MAX 范围的开始,例如如果 B="text01" 则计算 MAX 值。对于 MAX 值范围的开始,我使用了 A 列中的单元格,行号为“text01”所在行的 +1。我遇到的问题是如何定义范围的结束单元格。我尝试从起始单元格使用 OFFset 函数,但我不知道如何从那里的 C 列定义条件。
谢谢。
我知道上述描述可能有点难以理解,因此我附上了一个这样的表的小例子(发现的最大值及其相应的范围以粗体显示):
A B C D
2.1_____text02_____否_______无
9.8_____text01_____否_______无
5.4_____text02_____是______6.2
1.7_____text02_____是______无
4.6_____text02_____是______无
6.2_____text02_____否_______无
7.3_____text02_____否_______无
8.5_____text02_____否_______无
9.7_____text01_____否_______无
6.7_____text02_____是______9.1
9.1_____text02_____否_______无
9.9_____text02_____否_______无
9.1_____text01_____否_______无
1.1_____text02_____否_______无
1.9_____text02_____否_______无
答案1
在 D2 中尝试此操作
=IF(AND(B1="text01",C2="yes"),MAX(MAX(($A$1:$A$15)*($C$2:$C$15="yes"),INDIRECT("A"&ROW()-1+MATCH("no",$C2:$C$15,0)))),"none")
A1:A15,C1:C15 是数据范围,请将其更改为与您的范围相对应。