首页 > 解决方案 > 有没有办法使用 ARRAYFORMULA 查找列的最新偶数输入?

问题描述

已解决的编辑

感谢您的帮助。解决方案在这里

原帖

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

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

链接到工作表的图像

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

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

但是,我的问题是,随着输入更多数据,A 列中的数据长度会增加,而我目前使用填充句柄将公式复制到新单元格的解决方案既不优雅又耗时。所以我想要的解决方案是使用输入到 B 列 (B2) 的第一个单元格中的数组公式,能够返回与另一个公式相同的值。我尝试输入的公式如下:<code>=ARRAYFORMULA(IF(ISEVEN(A2:A),A2:A,INDIRECT(ADDRESS(ROW(A2:A)-1,2))) )​</code>

但是,正如我之前的一些数组工作告诉我的那样,并非所有公式都按预期迭代数组。该公式似乎能够在已经是偶数的行上返回正确的输出,但它无法为所有其他行返回预期的最近输入的偶数。似乎该公式无法正确解释​value_if_false<code>IF​ 公式的参数。

我对脚本有点陌生,所以我仍在努力学习,但我也试图涉足自定义函数,但无济于事。在编码方面,我仍然耳后一片空白,这就是为什么我对 Google Sheets 的内置公式如此宽容的原因,但我担心我可能已经达到了 Sheets 公式所能做的极限。

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

编辑

在这里解决问题后,我回去尝试使用OFFSET公式,希望我可以让它与数组公式很好地配合。唉,我不能,但我想我至少应该在这里发布我的进展以供参考。

尝试偏移

还在努力!

标签: google-sheetsgoogle-sheets-formula

解决方案


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

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

在此处输入图像描述

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


推荐阅读