[英]How can I find the LAST match in a MMULT lookup in Excel?
我是我们教会的歌曲领袖,我正在使用电子表格来跟踪我们最近使用赞美诗书中的每首赞美诗的情况。 (为了让我们每周唱的歌曲有一些轮播。)
在 Exceljet 上使用一些非常有用的指南,我能够构建一个几乎完全符合我想要的公式......它告诉我多少周前我们使用了我们赞美诗书中的每首歌。 问题是它目前只显示我们第一次使用这首歌的时间,而不是最后一次或最近一次,这是我真正想要做的。
我遇到的关键问题是如何从MMULT()
公式中获取最后一个条目。 下面显示了一个简化的示例...我想返回A
列中的最后一个日期,其中示例赞美诗 #15 列在B
、 C
或D
列中。
我当前的公式在获取第一个匹配行(第 3 行)方面做得很好,但没有给我最后一行(第 5 行)。
{=INDEX(ServiceDate,MATCH(1,MMULT(--(HymnNumbers=F2),TRANSPOSE(COLUMN(HymnNumbers)^0)),0))}
( ServiceDate
= A:A
和HymnNumbers
= B:D
)
是的,我意识到还有其他方法可以找到最后一个匹配项,如果我构建一个非常复杂的表达式来单独搜索每列中的最后一个匹配项并找到最大的日期值,则使用MATCH
和LOOKUP
,但性能也是一个问题我正在使用的实际电子表格中数据的大小。
我可以在当前的MMULT
函数中调整一些简单的东西来返回最后一个匹配而不是第一个匹配吗?
您的公式可以修改如下...
=INDEX(ServiceDate,MATCH(2,1/MMULT(--(HymnNumbers=F2),TRANSPOSE(COLUMN(HymnNumbers))^0)))
但是,您可以避免使用 MMULT,如下所示...
=INDEX(ServiceDate,LARGE(IF(HymnNumbers=F2,ROW(ServiceDate)-MIN(ROW(ServiceDate))+1),1))
请注意,这两个公式都需要使用 CONTROL+SHIFT+ENTER 进行确认。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.