对于一个项目,我想查看一组单元格以查找一个单元格中的最大值,并根据相应的日期自动填充下一个单元格以获得最大值。
例如,A 列是数据收集的日期,B 列是数据本身。
在单元格 C1 中,我使用公式“=MAX(B1:B10)”来查找我收集的数据中的最大值。在 D1 中,我想自动填充与我填充到 C1 中的最大值相对应的日期(或者更简单地说,是测量最大值的日期)。
有没有快速简便的方法来实现这一点?我尝试了“and”和“if”函数,但不太清楚如何让它工作。
答案1
XLOOKUP()
您可以按照说明进行操作gns100
,这非常简单:
=XLOOKUP(MAX(B2:B23), B2:B23, A2:A23)
这是XLOOKUP()
设计它的目的:避免人们为了做到这一点必须经历的所有曲折。
当然,MAX()
在公式中使用 C1 而不是函数,除非您只在自己的单元格中计算了它,以便在 C1 中使用它。在这种情况下,只需将其作为公式本身的一部分,如上所示,您不必将其放在自己的单元格中。如果它有用或需要显示,请在 C1 中执行,然后使用 C1 作为查找值。
(您所需要的是在数据范围内“向左看”:之前的所有查找功能都XLOOKUP()
只能向右看,可以这么说。一定有六种有用的解决方法(扭曲),但都需要一定程度的理解。)
我感觉你刚开始使用 Excel,所以我会继续介绍一些其他解决方案。但上面的解决方案最简单、最好。
有些函数一旦理解了,就很简单了(比如 INDEX/MATCH)。有些函数使用了 Excel 世界中令人恐惧的(在 1997 年,而不是 2021 年)“易变”函数。天哪,易变函数!但有些函数非常复杂……但很有效,而且仍然很容易理解。
忘记所有这些技术似乎很可惜,因为这些技术本身可以用于其他公式、其他组合和其他目的。例如,有一种方法可以CHOOSE()
让您在公式本身中创建一个临时表,其中的列重新排列,以便您“向右看”而不是向左看。(因此对于 Excel,B 列可能是第一列,然后是 A 列,而不是相反。然后日期位于您正在搜索的值的右侧,查找所有工作正常。)但在某些情况下它会产生奇怪的效果,谁需要它???
执行基本操作CHOOSE()
的另一种方法是使用INDEX()
指定“自然”范围,然后指定获取所有行的行值,最后使用Array Constant
以不同的顺序请求列。数组常量如下所示:{2,1}
以下是一个公式,它可以做最好的选择XLOOKUP()
,并展示如何INDEX()
满足所有挑剔的 Excel-ites 的最爱VLOOKUP()
:
=VLOOKUP(MAX(B2:B23), INDEX(A2:B23, SEQUENCE(ROWS(A2:B23)), {2,1}), 2, FALSE)
对于那些没有的人来说它也很方便,XLOOKUP()
虽然SEQUENCE()
肯定需要更换,但这很容易:( ROW(2:23)
公平,因为您知道数据范围的开始和结束行)。
INDEX()
给出VLOOKUP()
数据,其中查找值作为第一列(“2”表示“将第 2 列放在第一位”,而“1”表示“将第 1 列放在第二位”),所需日期作为第二列。因此,这VLOOKUP()
本身非常正常,没有什么奇怪的。您可以使用该MAX()
部分从数据本身指定查找值。
顺便说一句,您可以使用LARGE()
来获得各种回报。比如说,您想要某个比赛中表现最好的五名选手。或者您想要第 3 名、第 8 名和第 17 名选手。无论您需要什么。记住LARGE()
和SMALL()
以及MAX()
是MIN()
非常值得的。