在VLOOKUP中使用间接函数查找MAX ABS时出错

我正在尝试设置一张表单,可以用作模板对数据进行sorting,查找特定值并创build图表。 一切工作正常,我正在寻找的最大幅度和平均幅度值。 我正在处理一个关于图像中公式的问题。 以下是完整的代码。

=VLOOKUP(MAX(ABS(INDIRECT("J"&P3&":J"&Q3))),INDIRECT("J"&P3&":M"&Q3),4,FALSE) 

用这个代码,我正在定义垂直方向的最大值,然后返回相应的幅度值。

当我刚刚input单元格值时,它工作正常(需要很长时间,但工作正常),但是为了使其适用于其他数据文件(它们在相同的布局中具有相同数量的值有不同的值)我已经调整到上面的公式。

在P和Q列中,我find了我感兴趣的范围的顶部和底部的行,然后将这些值代入我的工作公式中。

这种方法对于平均幅度和最大幅度是很好的,所以我知道它应该工作,但是当使用上面的公式时,它find了不正确的值。 出于某种原因,它将数组计算为列表中第二个值。

1:评估公式之前的失误步骤(我正在寻找范围的数组)

在这里输入图像说明

2:失步后的评估公式(3.5,不接近最大绝对值)

在这里输入图像说明

任何帮助将是伟大的。

你不能转换max(abs(…))并用它来查找; 只适用于正数。 如果第一次使用IFERROR失败,则需要将处理传递给第二个VLOOKUP。

用稍微更高级的子公式可以获得绝对最大值,比使用数组公式可以达到相同的效果更好。

此外,非易失性INDEX可以代替易失性INDIRECT。

作为一个非数组公式,

 =iferror(vlookup(max(max(index(j:j, p3):index(j:j, q3)), abs(min(index(j:j, p3):index(j:j, q3)))), index(j:j, p3):index(m:m, q3), 4, false), vlookup(-max(max(index(j:j, p3):index(j:j, q3)), abs(min(index(j:j, p3):index(j:j, q3)))), index(j:j, p3):index(m:m, q3), 4, false)) 

换句话说,如果找不到最大值(abs(…)),则查找-max(abs(…))。

在这里输入图像说明