Google sheets formula 从google sheets中的FILTER函数返回最后一个值

Google sheets formula 从google sheets中的FILTER函数返回最后一个值,google-sheets-formula,Google Sheets Formula,我正在使用Google Sheets,并希望在根据屏幕截图所示的单独列中的值进行过滤时获得列中的最后一个值: 我想从A列中获取最后一个值,其中B列中的值与单元格D1中指定的值匹配 我已经通过以下方法做到了这一点: =索引(过滤器($A:$A,$B,$B=$D$1),计数A(过滤器($A:$A,$B:$B-$D$1)),1) 这是可行的,但似乎没有必要使用第二个过滤器和COUNTA,因为这会使它更难理解。我不能直接从FILTER函数返回最后一个值吗 自从发布这篇文章后,我找到了另一种更简洁的方法

我正在使用Google Sheets,并希望在根据屏幕截图所示的单独列中的值进行过滤时获得列中的最后一个值:

我想从A列中获取最后一个值,其中B列中的值与单元格D1中指定的值匹配

我已经通过以下方法做到了这一点:

=索引(过滤器($A:$A,$B,$B=$D$1),计数A(过滤器($A:$A,$B:$B-$D$1)),1)

这是可行的,但似乎没有必要使用第二个过滤器和COUNTA,因为这会使它更难理解。我不能直接从FILTER函数返回最后一个值吗

自从发布这篇文章后,我找到了另一种更简洁的方法,但我必须承认,我并不真正理解它是如何工作的:


=ArrayFormula(查找(2,1/($B:$B=$D$1),$A:$A))

我知道有时我会这样做。它利用了VLOOKUP(..TRUE)[default]选项


=VLOOKUP(9^99,FILTER({ROW(A:A),A:A},B:B=D1),2)

这里您将了解排序和数组约束:

=array_constrain(filter(sort({A1:A,row(A1:A)},2,false),B1:B=D1),1,1)
或者您可以使用查询:

=query(filter({A1:A,row(A1:A)},B1:B=D1),"Select Col1 order by Col2 desc limit 1")
或者您可以使用间接:

=indirect("A" & max(filter(row(A:A),B:B=D1)))

如果您的真实数据中碰巧有一个timestamp列,这就更简单了。在本例中,这对我来说是可行的,但是当我在真实数据上尝试它时,我得到了以下错误:在VLOOKUP求值中没有找到值“2.95127E+94”。当您尝试这一部分时会发生什么=FILTER({ROW(A:A),A:A},B:B=D1)?对不起,我弄错了,我设法将参数切换到了花括号内的数组结构。它工作得很好!最后两个对我有用,但我不能让第一个数组约束公式起作用-它有错误吗?如果我理解正确,我可以使用index:
=index(filter(sort({A1:A,row(A1:A)},2,false),B1:B=D1),2,1)
希望你已经把它作为答案发布了。(我花了一段时间才发现你做了什么)