寻找一种方法来找出上一次事件发生的时间。这是我在Excel中获得的数据。我希望能够在“首页”和“离开”栏中查找“首页”列的名称,然后从上次出现该名称的日期中减去日期。这可能吗?如果是这样,我在寻找什么公式?
Date Home Away
10/4/2017 TOR WPG
10/4/2017 STL PIT
10/4/2017 CGY EDM
10/4/2017 PHI SJS
10/5/2017 NSH BOS
10/5/2017 MTL BUF
10/5/2017 COL NYR
10/5/2017 WSH OTT
10/5/2017 MIN DET
10/5/2017 PIT CHI
10/5/2017 ARI ANA
10/5/2017 PHI LAK
10/6/2017 NYI CBJ
10/6/2017 FLA TBL
10/6/2017 VGK DAL
10/7/2017 NYR TOR
10/7/2017 DET OTT
10/7/2017 TBL FLA
10/7/2017 COL NJD
10/7/2017 BUF NYI
10/7/2017 NSH PIT
10/7/2017 MTL WSH
10/7/2017 MIN CAR
所需结果:
Date | Home|Away|Home_last|Away_Last
10/4/2017 TOR WPG 0 0
10/4/2017 STL PIT 0 0
10/4/2017 CGY EDM 0 0
10/4/2017 PHI SJS 0 0
10/5/2017 NSH BOS 0 0
10/5/2017 MTL BUF 0 0
10/5/2017 COL NYR 0 0
10/5/2017 WSH OTT 0 0
10/5/2017 MIN DET 0 0
10/5/2017 PIT CHI 1 0
10/5/2017 ARI ANA 0 0
10/5/2017 PHI LAK 1 0
10/6/2017 NYI CBJ 0 0
10/6/2017 FLA TBL 0 0
10/6/2017 VGK DAL 0 0
10/7/2017 NYR TOR 2 3
10/7/2017 DET OTT 2 2
10/7/2017 TBL FLA 1 1
10/7/2017 COL NJD 2 0
10/7/2017 BUF NYI 2 1
10/7/2017 NSH PIT 2 2
答案 0 :(得分:0)
D2=IFERROR(DAYS($A2,INDIRECT("A"&MAX(IF(B2=$B$1:$C1,ROW($B$1:$C1),0)))),0)
我们将检查B2并向后看是否存在匹配项。如果是这样,通过使用Row
,我们需要它的ROW()
号,否则应该是0
。但是,一个普通公式一次只能检查一个单元格,因此我们需要将其设为 Array Formlua 。也就是说,它可以一次一次扫描给定区域。
所以我们现在有一堆行号。由于数据已经按日期排序,因此我们使用公式MAX()
选择最大的一个。
现在我们有了所需日期的Row
号,并且我们知道该日期始终在Column A
中。 Indirect()
公式可以轻松地将它们放在一起并获得在该单元格中写入的日期。
DAYS()
用于减去两个日期。第一个参数是公式所在的日期,第二个参数是我们在第1步到第4步中找到的日期。
但是,有些条目可能找不到日期。因此,我们在公式之外放置了IFERROR()
,以防止出现任何错误代码。
请记住,这是一个数组公式,因此请按 Ctrl + Shift + Enter 完成该公式。如果您已正确输入公式,则应该在公式外面看到{}
。
最后,在您的图表中填写此公式,如果不走运,可能还要进行一些调整。