答案1
答案2
如果您有 Office 365 Excel,则正常公式:
=MAX(MAXIFS(B:B,A:A,300),MAXIFS(C:C,A:A,300))
您可以将 300 替换为单元格地址。由于这不是数组公式,因此它将允许完整列引用而不会造成损害。
答案3
这是一个更通用的答案:
假设您要计算从第 6 行到第 N 行的数组中第 i 行到第 j 行的连续子集在 C 和 D 列中出现的数值的最大值(或最小值、中位数等),其中“行”的值输入在 B 列中。让 i 的显式值在 B2 中指定,让 j 的显式值在 B3 中指定(--这些值可能已在电子表格的其他地方预先计算过);这里,为了透明起见,让 i = 9 和 j = 14,n = 15。
这是我开发的 Excel2003 代码,它似乎运行良好:
{=MAX(IF(B6:B15>=B2,IF(B6:B15<=B3,C6:C15),""))} ,返回 MAX(C9:C14) ;并且,
{=MAX(IF(B6:B15>=B2,IF(B6:B15<=B3,D6:D15),""))} ,返回 MAX(D9:D14) 。
只需将 MAX 更改为 MIN 或其他函数名称,即可进行类似的计算。但是,不要忘记重新安装(Ctrl-Shift-Enter)那些“花括号”,每次操作语句时它们都会消失。