连续查找最新值,然后在单元格中输入日期

时间:2014-07-09 15:57:46

标签: excel excel-formula

如果您查看下图,我们正在尝试使用公式,因此我们可以执行以下操作。

在第6行中,我们需要在当前日期之前的日期中找到最后一个Full。

因此对于Blandc01,我们在第6行和第UJ6列中有一个完整的。我们需要在该列中找到最新的Full,然后将日期放在该列的顶部,该单元格中显示Last Full,在这种情况下是B12。

例如,如果您查看Blanbck01,我们在UF列中的最后一次完整是04/07/2014,因此单元格B8在Cell UF6中具有该日期。

那么我们如何使用一系列函数来确定相应行中的最后一个Full,找到该列的日期并将其放在左侧的相关单元格中。

我更新了图片以包含行号。

enter image description here

2 个答案:

答案 0 :(得分:2)

感谢pnuts评论,显然只使用" full"不会在未列出的列表上工作。所以这是一个

=IFERROR(LOOKUP(2,1/(C5:XD5="full"),$C$3:$XD$3),"")

您需要更改行引用以正确反映两个向量。第一个数组是您要查找的行" full",第二个数组是日期所在的位置。

OP在评论部分提出了更多问题。似乎他想要返回最新的日期,其中包括" full"或" syn.full"在特定的行中可以看到。

如果只是寻找子串"完整"就足够了(换句话说,如果没有其他字符串包含" full"需要排除,那么可以使用:

=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH("full",C6:XD6)),$C$3:$XD$3),"")

另一方面,如果可能有其他字符串包含" full"我们要忽略的(例如,丰满度),如果第3行中的日期按升序排列,请尝试以下操作:

=MAX(IFERROR(LOOKUP(2,1/(C6:Z6="full"),$C$3:$Z$3),0),IFERROR(LOOKUP(2,1/(C6:Z6="syn.full"),$C$3:$Z$3),0))

如果使用后者,则应将单元格格式化为不显示0(例如:yyyy-mm-dd ;;)或将整个公式包装在IF中以返回空字符串(如果结果为零。

答案 1 :(得分:1)

找到最后一场比赛总是比第一场比赛更难,但我想我有一些有用的东西。这是一个数组函数,因此必须使用 ctrl + shift + enter

输入
=indirect("R3C" & max((UB6:UJ6="full")*column(UB6:UJ6)),FALSE)

该功能的细分如下

(UB6:UJ6 =“full”)返回1和0的数组(1表示它的计算结果为true)。然后将其乘以列号(以数字给出,而不是字母)。一旦将它们相乘,我们就会列出所有具有“完整”一词

的列

如果第二个变量为False,则间接功能允许您使用R1C1样式公式,因此该列可以作为数字直接输入。开头的R3表示返回的值在第3行。