使用数组公式,返回从列的第一行到当前行的最后一个非空白单元格的行号

时间:2018-12-14 06:51:31

标签: arrays google-apps-script google-sheets spreadsheet

我对此进行了广泛的搜索,虽然我已经达到了一个不错的水平,但是我没有实现我想要的目标:返回最后一个非空白单元格的行号,并具有开始比较的评估范围从所需列的第一行到当前行。这应该使用Google的“数组公式”完成。

到目前为止,我已经可以执行上述任务,但是不能使用“数组公式”。

我的公式如下:

=MAX(
FILTER( 
      row(
          INDIRECT(
         JOIN("";ADDRESS(1;column()+2;4);":";ADDRESS(row();column()+2;4))
                  )
          )
  ;
      INDIRECT(               
         JOIN("";ADDRESS(1;column()+2;4);":";ADDRESS(row();column()+2;4))
               )
<> "")
)

以下是对某些数据进行操作的代码示例: enter image description here

总而言之,以下任何一种选择都可以回答我的问题:

  • 将我上面的公式转换为适合Google的“数组公式”。
  • 具有使用“数组公式”的新解决方案。

Ps:“ arrayFormula”的意思是只需要在列的顶部编写一次公式,从而允许数组扩展到下面的单元格。

Ps2:欢迎使用Google AppScript中的解决方案,但我不能保证它完全适合我的问题范围。

真的谢谢

1 个答案:

答案 0 :(得分:1)

无法在中完成。

Excel不使用FILTER或ARRAYFORMULA。这些是函数。尽管某些带有循环计算的数组公式或标准函数(例如SUMPRODUCT或某些AGGREGATE子函数),但没有没有公式或用户定义的函数用原始公式的相对副本填充一列。填充句柄是Excel的解决方案,只需双击即可。

如果您关注A列中的动态值,那么VBA的Worksheet_Change事件子过程可以解决您的问题。