在一行中查找特定值的最后一次出现

我有一个桌子,保持来自幻想足球联赛的分数。 最低得分周不包括在总数中。

我可以使用=min function [=min(B2:R2)]find最低分数

我可以使用=match function. [=MATCH(S2,B2:R2,0)]find第一个实例=match function. [=MATCH(S2,B2:R2,0)] =match function. [=MATCH(S2,B2:R2,0)]

不过,我想要一个公式,返回最低得分周的最新发生。

例如Portia的最低分数为8,第一次出现是第4周,但我希望它返回最新的出现,即第11周

在这里输入图像描述

您也可以使用LOOKUP函数并避免使用数组公式,例如假设S2具有最小值,您可以使用T2此公式获取上一周的值

=LOOKUP(2,1/(B2:R2=S2),B$1:R$1)

这是有效的,因为(B2:R2=S2)返回一个TRUE/FALSE值的数组,然后用该数组除1得到1 s或#DIV/0!的数组#DIV/0! 错误。 当使用2作为该数组的查找值时,它将不会find任何2 s,因此将与数组中的最后一个数字(最后一个数字)匹配。 这对应于最后一周的最小值,因此使用顶部行作为“返回向量”意味着该公式将根据需要返回相应的周数

您将需要使用数组公式来实现这一点。 如果您将列B:R用作数据列,将列T用作低周列,则以下操作将返回“最高”最低值。 您需要通过将其复制并粘贴到单元格T2并按Ctrl + Shift + Enter来将其作为数组(CSE)公式input

 =IFERROR(INDEX($A$1:$R$1,1,SMALL(IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE),COUNTIF(B2:R2,MIN(B2:R2)))),"") 

说明

首先, COUNTIF(B2:R2,MIN(B2:R2))将计算最小值出现的次数。 这是必要的,因为一个简单的MIN(B2:R2)将只抓取第一个最小值,而不是第n个最小值。

接下来, IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE)是公式的实际数组公式部分(之所以需要使用Ctrl + Shift + Enter )。 只有当你有一个最小值时,它才会返回引用,而对于大于最小值的所有其他条目,它将返回FALSE 。 现在,您只有列数的数组是数据集中最小的值。

然后, SMALL(IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE),COUNTIF(B2:R2,MIN(B2:R2)))将取最小的列号值并查找来自COUNTIF(B2:R2,MIN(B2:R2))代码的最新出现。

既然已知最后一次出现的列号是已知的,那么可以使用INDEX函数来查找第一行INDEX($A$1:$R$1,1

最后,如果SMALL函数find匹配, IFERROR将显示Low Week行,否则将显示空白单元格。 这可以用来复制这个数组公式,进一步向下的页面中,你还没有用户的行。

结果

在这里输入图像说明