Excel公式在池中查找最大date并返回相应的值
我在网站上研究这个问题,否则我仍然找不到正确的答案。
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
这是我一直在努力做的一个数据样本。 我希望能够将帐户列与date列中的最近date相匹配,并返回相应的状态列。
这是我尝试过的公式
=VLOOKUP(MAX(IF($A:$A=E1,$B:$B)),$B$1:$C$24,2,0)
这个公式的问题是它将date转换为数字。 我有大行。
问题不在于将date转换为数字。 问题来自将数组公式的输出转换为input。
MAX/IF
从VLOOKUP
分离MAX/IF
,它将起作用。 只要将您要查找的MAX
输出放入一个单元格,然后将该单元格用作VLOOKUP
的input。
您可以使用数组公式与匹配和索引结合使用。
例如: =INDEX($C:$C,MATCH(MAX(IF($A:$A=$E$1,$B:$B,0)),IF(A:A=$E$1,$B:$B,0),0))
应该工作。 您需要通过按Ctrl-Enter完成编辑,将其作为Array公式input。
基本上这是创build一个过滤的date列( IF($A:$A=$E$1,$B:$B,0)
),挑选最大值,find行( INDEX
),然后用它来查找列C( MATCH
)。
以下是使用提供的样本数据制定的。
如果我的理解是正确的,你正在寻找的是一个公式,返回\突出显示以下内容:
Account Date Status 405423048 05/09/2015 CreditFail
但是,也注意到几个账户共享一个date,因此在上述logging不存在的情况下,最近的date是2015年9 05/09/2015
,最新logging的结果是这样的:
Account Date Status 116448 05/05/2015 EnrollmentRejected 25058075 05/05/2015 Active
所以我在这里指出的是,具有最新状态的帐户的结果更新可以是具有多个logging的Range \ Array
现在,清楚的是,我们至less可以有两种输出:
- 突出显示标记源数据中的结果logging
- 用结果logging生成一个单独的范围\数组
下面提出的公式将满足这两个要求(请告知,如果您的要求确实有所不同)
首先,我们应该为源数据添加一个字段(称为“最新”)以反映公式的结果,我们使用列“D” ,为此字段中的每条logginginput以下公式(这不是公式) :
=IF(B7=MAX($B:$B),"Latest Record","")
按{F9}(如果使用手动计算),那么最新更新的所有logging将被标记为“ Latest Records
”
这在这里,满足输出1。
如果要求是输出2,则:使用“最新logging”值过滤字段“最新”的源数据,select源数据中的VisibleCell,然后将VisibleCell的范围粘贴到目标目的地。
但是,这似乎是一个重复的任务,我build议创build一个macros来做到这一点。