Excel公式在池中查找最大日期并返回相应的值

时间:2015-05-15 04:50:54

标签: excel

我在网站上研究了这个问题,否则我仍然无法找到正确的答案。

Account     Date         Status
115937      4/29/2015   BegunFlow
116448      5/5/2015    EnrollmentRejected
116448      4/9/2015    Rejected
116523      4/24/2015   EnrollmentRejected
120070      4/29/2015   BegunFlow
120070      5/2/2015    BegunFlow
1736792     4/29/2015   Inactive
1736792     5/1/2015    BegunFlow
2755700     4/24/2015   EnrollmentSubmitted
10418622    4/9/2015    CreditFail
25058075    5/5/2015    Active
25058075    4/9/2015    Pending Start
34359030    4/9/2015    Pending Start
34362064    4/9/2015    Pending Start
161020809   4/9/2015    CreditFail
161020809   4/9/2015    CreditFail
161020809   4/10/2015   PreenrollmentCancel
405423048   5/9/2015    CreditFail
405423048   4/9/2015    CreditFail
415096105   4/9/2015    Waiting Termination
651119087   4/9/2015    Active
858051162   4/9/2015    Active
949429029   4/9/2015    Active
949429029   4/10/2015   Rejected

这是我一直在努力做的数据样本。我希望能够将帐户列与日期列中的最近日期进行匹配,并返回相应的状态列。

这是我试过的公式

=VLOOKUP(MAX(IF($A:$A=E1,$B:$B)),$B$1:$C$24,2,0)

此公式的问题是它将日期转换为数字。我有大行。

3 个答案:

答案 0 :(得分:0)

问题不在于将日期转换为数字。问题来自将数组公式的输出转换为输入。

如果您将MAX/IFVLOOKUP分开,则会有效。只需将您要查找的MAX输出到一个单元格中,然后将该单元格用作VLOOKUP的输入。

答案 1 :(得分:0)

您可以使用与匹配和索引相结合的数组公式来执行此操作。

类似于:=INDEX($C:$C,MATCH(MAX(IF($A:$A=$E$1,$B:$B,0)),IF(A:A=$E$1,$B:$B,0),0)) 应该管用。您需要按Ctrl-Enter键将其作为数组公式输入以完成编辑。

基本上这是创建一个过滤日期列(IF($A:$A=$E$1,$B:$B,0)),选择最大值,找到行(INDEX),然后使用它来查找C列(MATCH

答案 2 :(得分:0)

使用提供的样本数据计算出以下内容。

如果我的理解是正确的,那么你要找的是一个返回\的公式,突出显示以下内容:

Account   Date       Status
405423048 05/09/2015 CreditFail

但是,也注意到有几个帐户共享一个共同日期,因此在上述记录不存在的情况下,最新日期为05/09/2015,最新记录的结果如下:

Account  Date       Status
116448   05/05/2015 EnrollmentRejected
25058075 05/05/2015 Active

所以我在这里指出的是,最新状态更新的帐户的结果可能是具有多个记录的Range \ Array

现在,有了这个,我们至少可以有两种输出:

  1. 突出显示,标记源数据中的结果记录
  2. 使用生成的记录生成单独的范围\数组
  3. 下面提出的公式将满足的要求(如果您的要求确实不同,请告知)

    首先,我们应该在源数据中添加一个Field (称为“Latest”)以反映公式的结果,我们使用列“D”,输入以下内容此字段中每条记录的公式(这不是FormulaArray)

    =IF(B7=MAX($B:$B),"Latest Record","")
    

    按{F9}(如果使用手动计算),那么最新更新的所有记录将在字段字段下的源数据中“标记”Latest Records

    此处此处满足输出1。

    如果要求是输出2,则: 使用字段"最新“使用值"最新记录"”过滤源数据, 选择源数据中的VisibleCell,然后将VisibleCells的范围粘贴到目标目标。

    然而,由于这似乎是一项重复的任务,我建议创建一个宏来完成它。