有没有一种方法可以使用ARRAYFORMULA查找列中最近的偶数输入?

时间:2019-03-18 18:31:09

标签: google-sheets google-sheets-formula

已解决的编辑

感谢您的帮助。解决方案here

原始帖子

我制作了一个Google工作表来描述我在此处链接的问题(https://docs.google.com/spreadsheets/d/1yK6ZAX8BFnEqiuQO9HIxuY0l62ewDDccj-8EN1r2i2w/edit?usp=sharing)。

我还将在下面用语言描述我所面临的问题以及我尝试过的解决方案。

link to the image of worksheet

列A的数据是随机的一位数字(0-9)。我希望B列显示A列中的最新偶数,但仅显示特定行。该特定行是与B列中单元格所在行相对应的行。换句话说,在单元格B7中,我想查找A列中最近输入的偶数,特别是仅在范围A2:A7上(A1包含列标题)。

这实际上是一个非常简单的公式,我可以通过简单地检查A列中单元格中的值是否为偶数,然后返回该单元格的值(如果是)或单元格的输出来获得所需的输出如果不是这样的话因此公式看起来像:=IF(ISEVEN(A7),A7,B6)​

但是,我的问题是,随着输入更多数据,A列中数据的长度将不断增加,而我当前使用填充手柄将公式复制到新单元格的解决方案既费力又费时。所以我想要的解决方案是使用输入到B列(B2)的第一个单元格中的数组公式,该数组公式能够返回与另一个公式相同的值。我尝试输入以执行此操作的公式如下:{=ARRAYFORMULA(IF(ISEVEN(A2:A),A2:A,INDIRECT(ADDRESS(ROW(A2:A)-1,2))))​

但是,正如我之前对数组所做的一些工作教给我的那样,并不是所有的公式都能按预期在数组中进行迭代。该公式似乎能够在已经为偶数的行上返回正确的输出,但是对于所有其他行,它无法返回预期的最近输入的偶数。看来该公式无法正确解释​value_if_false公式的IF参数。

我对脚本编程还有些陌生,所以我仍在尝试学习,但是我也尝试尝试使用自定义函数,但无济于事。在编码方面,我仍然不知所措,这就是为什么我对Google Sheets的内置公式如此宽容的原因,但是我担心我可能已经达到了Sheets公式可以做的极限。 / p>

我愿意尝试新的方法,但是我唯一真正的限制是我真的希望这是一种单触(甚至更好的无触摸)解决方案,希望不会超出此范围问题。任何帮助将不胜感激。

编辑

在这里引起问题之后,我回过头来尝试使用OFFSET公式,希望我可以使它与数组公式很好地配合使用。 las,我无法,但是我认为我至少应该在这里发布我的进度以供参考。

Attempt with offset

仍在努力!

1 个答案:

答案 0 :(得分:0)

对行号进行vlookup似乎对我有用

=ArrayFormula(if(A2:A="","",vlookup(row(A2:A),{if(iseven(A2:A),row(A2:A)),A2:A},2)))

enter image description here

注意:如果某些行的范围内没有偶数,则会为这些行产生#N / A。