2 个运行时确定的可能包含 #NV 的范围上的 MAX 函数

MAX function on 2 runtime-determined ranges that may contain #NV

在我开始防止它变成一英里长的只写公式之前,我需要思考如何改进我的概念...

我试图以图形方式做的是:

我有两行有 4 个必填单元格(直线)和 4 个可选单元格(虚线),我需要 运行 一个 MAX 函数。任何数量的 X 都可能包含 #NV(出于图表目的,这些 故意 )。

首先,我需要确定实际范围。目前这是通过 INDIRECT(..) 完成的。根据当前季度,它会选择行中 5 到 8 个单元格的范围。

INDIRECT("Q5:" & CHAR(CODE("T") + VarQuarter) & 5)

之后,对范围进行MAX,然后对两个范围之前计算的MAX结果进行计算。如果出现错误(因为 #NV),则需要省略该结果,否则两个结果都会被使用。如果两个结果都是错误的,我对由此产生的错误没有意见,因为稍后会发现这个错误。

对此我唯一的想法是无限长地连接 IFERROR 和冗余的 MAX 语句...


对于这两个步骤中的任何一个,有什么改进的想法吗?我被特别告知要在工作表而不是代码中执行此操作,以便其他人更容易维护,所以除非绝对不可能,否则这将不得不做。

假设第一行从 Q5 开始,第二行从 Q6 开始尝试

=MAX(IFERROR(MAX(OFFSET(Q5,0,0,1,varQuarter+4)),0),IFERROR(MAX(OFFSET(Q6,0,0,1,varQuarter+4)),0))