有没有办法使用ARRAYFORMULA来查找列的最新偶数输入?

问题描述 投票:1回答:1

解决了编辑

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

原始邮政

我已经制作了一个谷歌表来描述我在这里链接的问题(https://docs.google.com/spreadsheets/d/1yK6ZAX8BFnEqiuQO9HIxuY0l62ewDDccj-8EN1r2i2w/edit?usp=sharing)。

我还将在下面的文字中描述我所面临的问题,以及我尝试过的解决方案。

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公式可以做的极限。

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

编辑

在解决了问题之后,我回过头来尝试使用OFFSET公式,希望我可以使用数组公式很好地发挥它。唉,我无法,但我想我至少应该在这里发表我的进展以供参考。

Attempt with offset

还在努力吧!

google-sheets google-sheets-formula
1个回答
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.

© www.soinside.com 2019 - 2024. All rights reserved.