我在Excel中有一个简单的功能。
在A栏中,我有一些数字。在B列中,我有一个表格中的函数(对于B6):{=MAX(ROW(A$1:A5)*(A$1:A5<A6))}
这一切都很好。它找到最接近的前一行,其值小于当前行的值。但是如果我插入一行,其中一个函数会搞砸,只是因为有相对的引用。
我尝试将A$1:A5
转换为OFFSET
,但出于某种原因,这不起作用:
{=MAX(ROW(OFFSET(A$1,0,0,ROW()-1))*(OFFSET(A$1,0,0,ROW()-1)<A6))}
通过一些测试将其分解后,它显然是OFFSET
的第二个实例,以及导致问题的相关逻辑测试。但我无法弄清楚原因。或者如何解决它。
有没有办法让这个工作,或执行此插入安全的查询的替代方法?
答案 0 :(得分:0)
有时候ROW
函数会出现问题,因为它会返回一个数组,即使您期望单个值,例如它返回{6}而不是6。
尝试使用MAX
或SUM
等函数将此数组强制为单个值。 e.g。
=MAX(ROW(OFFSET(A$1,0,0,ROW()-1))*(OFFSET(A$1,0,0,SUM(ROW())-1)<A6))