我很高兴发现了@AdamL的答案,这让我的一天变得美好,但是后来我发现了一个更简单的方法,适用于我的数据样本,那就是使用LOOKUP函数。
LOOKUP函数会在给定范围内查找特定的值,但如果你传递一个巨大的值,即超过你的数据范围的值,则默认返回最后的、右侧的值。
答案非常简单,只需传入该范围——或者行,如果你需要的话——和一个巨大的值(许多人使用Excel可以处理的最大数字,但Google表格不是Excel,而且我不知道Google表格可以处理的最大数字是多少,所以我将给它一个远远超出我的数据集的值)。假设您需要查找整个第二行:
=LOOKUP(999999999,2:2)
就是这样了。
如果没有任何数据,此函数将抛出错误。因此,如果您(像我一样)只在存在特定值时才需要获取该值,可以将其与简单的IF函数结合使用:
=IF(ISERROR(LOOKUP(999999999,2:2)),"EMPTY",LOOKUP(999999999,2:2))
你可以将字符串"EMPTY"替换为任何你想要的值或函数,如果LOOKUP函数返回错误。
希望这种简单的方法能有所帮助,再次感谢@AdamL的原始答案。
有几种方法可以实现,但是其中一种方法(考虑这个例子中的第2行) :
=FILTER(2:2,COLUMN(2:2)=MAX(FILTER(COLUMN(2:2),LEN(2:2))))
为了日后的读者,我在这里添加一条公式。我多年前发现的获取最右侧值的公式是:
=index(2:2,1,COUNT(2:2))
然而,对于数据单元格中间的每个空单元格,返回的值是倒数第N个值(在第2行有2个空单元格,公式将返回从右侧开始的第3个最后一个值,而不是最右边的值)。它似乎可以工作,但并不总是准确的。
因此,我不建议使用此公式,如果数据中最右边的单元格之前出现空单元格,则无法依赖它。