excel的动态使用

excel的动态使用,excel,dynamic,offset,Excel,Dynamic,Offset,我在excel中使用偏移函数时遇到了一个问题。基本上,我有两个考虑因素:首先,我需要在列AD中进行计算,所以:AD=AA+AG_u1。对于AG_(+1),我指的是col AG中的下一个值。类似地,我需要在列AF中进行以下计算:AF=R+M_(-1),其中M_(-1)表示列M中的前一个值 现在,如果我在所有行中都有值,这将是直截了当的,但事实并非如此。我的6000多行中有大量空格,这使我的问题变得复杂 我想你可以使用偏移功能,但我似乎做不好。有什么建议吗 下面是一个小型虚拟示例: 最佳如果使用数

我在excel中使用偏移函数时遇到了一个问题。基本上,我有两个考虑因素:首先,我需要在列AD中进行计算,所以:AD=AA+AG_u1。对于AG_(+1),我指的是col AG中的下一个值。类似地,我需要在列AF中进行以下计算:AF=R+M_(-1),其中M_(-1)表示列M中的前一个值

现在,如果我在所有行中都有值,这将是直截了当的,但事实并非如此。我的6000多行中有大量空格,这使我的问题变得复杂

我想你可以使用偏移功能,但我似乎做不好。有什么建议吗

下面是一个小型虚拟示例:


最佳

如果使用数组公式、相对引用和If、index、row和min公式的组合,您将获得代价高昂但足够的结果

我的测试数据:

并在
B1
中添加公式以使单元格向下:

{=IF(A1="","",A1 + INDEX($C$1:$C$20,MIN(IF(C1:$C$20="",9999,1)*ROW(C1:$C$20))))}
说明:

  • 如果(C1:$C$20=“”,9999,1)
    找到非空单元格注意:您必须更改9999以获得真正的外部限制或更改为
    行(C:C)+1
  • MIN(如果(…)*行(C1:$C$20))
    获取第一个非空行
  • 索引($C$1:$C$16,最小(…)
    获取第一个非空值
  • IF(A1=“”,“,…”
    将在左侧单元格为空时删除“留白”
  • 以及在
    B6
    中添加的公式,以使单元格上升:

    {=A6 + INDEX($C$1:C6,MAX(IF($C$1:C6="",0,1)*ROW($C$1:C6)))}
    

    如果将数组公式、相对引用和If、index、row和min公式结合使用,将获得代价高昂但足够的结果

    我的测试数据:

    并在
    B1
    中添加公式以使单元格向下:

    {=IF(A1="","",A1 + INDEX($C$1:$C$20,MIN(IF(C1:$C$20="",9999,1)*ROW(C1:$C$20))))}
    
    说明:

  • 如果(C1:$C$20=“”,9999,1)
    找到非空单元格注意:您必须更改9999以获得真正的外部限制或更改为
    行(C:C)+1
  • MIN(如果(…)*行(C1:$C$20))
    获取第一个非空行
  • 索引($C$1:$C$16,最小(…)
    获取第一个非空值
  • IF(A1=“”,“,…”
    将在左侧单元格为空时删除“留白”
  • 以及在
    B6
    中添加的公式,以使单元格上升:

    {=A6 + INDEX($C$1:C6,MAX(IF($C$1:C6="",0,1)*ROW($C$1:C6)))}
    


    你到底需要什么?@matzone我需要得到列AD和列AF的公式。因此AD=AA+AG_uzy+1。但是AG中的值可能比AD和AA低100行。间距变化很大。如果你创建了公式并复制了下面的其他列..它不管用吗?@pnuts为什么你的评论看起来像一只眨眼的猪?;)@pnuts我看不出我的代码有什么问题。它测试得很好。你到底需要什么?@matzone我需要得到列AD和列AF的公式。所以AD=AA+AG_uu1;1。但是AG中的值可能比AD和AA低100行。差距变化很大。如果你创建了公式并复制了下面的其他列。它不起作用吗?@pnuts你为什么要这样做我看起来像只眨眼的猪?;)@pnuts我看不出我的代码有什么错。测试很好,这是一个数组公式。您是否使用control+shift+enter输入以提交它?这就是我所说的{}哦。。从没听说过。无论如何,control+enter和control+shift+enter也不起作用。我无法提交它。请不要键入{}并按control+shift+enter。如图所示,这对我来说很好。您可能需要调整一些单元格引用以将其放入场景中。。从没听说过。无论如何,control+enter和control+shift+enter也不起作用。这意味着我可以得到8,如果我在B1中使用你的例子,但在B6中它不起作用是的。。但我得到B6中的值3。但是引用和你描述的一样,这是一个数组公式。您是否使用control+shift+enter输入以提交它?这就是我所说的{}哦。。从没听说过。无论如何,control+enter和control+shift+enter也不起作用。我无法提交它。请不要键入{}并按control+shift+enter。如图所示,这对我来说很好。您可能需要调整一些单元格引用以将其放入场景中。。从没听说过。无论如何,control+enter和control+shift+enter也不起作用。这意味着我可以得到8,如果我在B1中使用你的例子,但在B6中它不起作用是的。。但我得到B6中的值3。但是参考资料和你描述的一样