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))
在我开始防止它变成一英里长的只写公式之前,我需要思考如何改进我的概念...
我试图以图形方式做的是:
我有两行有 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))