需要最大值(例如 1-100 内F:F
)。但我可能需要从列表中撤回一些单元格。
例如,我有F:F
。每个单元格将包含 1-100 之间的值,但我可能不需要某些单元格,但每次都不需要相同的单元格。
是否有一个公式可以查找(非功能性)列表,例如:
=MAX(F:F)-(F4,F8,F163,F354,F574)
我知道这不起作用,但我会不时地从此列表中添加和删除单元格,因为列表非常广泛,例如:
=MAX(F1:F5,F7:F16,F18:F41,F43:F66,F68:F91,F93:F197,F199:F219,F221:F291,F293:F312,F314:F900)
我知道这有效,但是天啊。每次都必须更改,这太可怕了。有没有更简单的方法?
答案1
您可以使用此数组公式:
=MAX(IF(ISERROR(MATCH("F" & ROW($F$1:INDEX($F:$F,MATCH(1E+99,$F:$F))) & "|",$H$1:INDEX($H:$H,MATCH("ZZZ",$H:$H))&"|",0)),$F$1:INDEX($F:$F,MATCH(1E+99,$F:$F))))
笔记:
作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 进行确认。如果操作正确,Excel 会将
{}
公式放在一边。要忽略的单元格必须一次将一个单元格地址放入一列中。我的单元格地址在 H 列中。
描述:
作为数组公式,我们希望限制对数据集的引用。 将会
$F$1:INDEX($F:$F,MATCH(1E+99,$F:$F))
做到这一点。 它将创建一个范围,包括 F1 到 F 列中最后一个包含数字的单元格。 H 列引用查找从 H1 到最后一个包含字符串的单元格的每个单元格。然后,If 函数将返回一个数字和的数组
FALSE
。当行号等于单元格引用时,结果为 False。添加是
"|"
为了确保我们不会得到假阴性。如果没有它,H 列中的引用F2
将排除以 开头的所有单元格引用,F2
包括F20
,F21
...MAX() 将忽略
FALSE
数组中返回的 s 并查找 IF 语句返回的数组中剩余的最大数字。
您还可以使用这个类似的公式,它不需要 Ctrl-Shift-Enter,而是正常输入。
=AGGREGATE(14,6,$F$1:INDEX($F:$F,MATCH(1E+99,$F:$F))/(ISERROR(MATCH("F" & ROW($F$1:INDEX($F:$F,MATCH(1E+99,$F:$F))) & "|",$H$1:INDEX($H:$H,MATCH("ZZZ",$H:$H))&"|",0))),1)
它仍然被视为数组公式,因此我们需要限制数据引用。