我希望有人能帮我解决一下我正试图解决的Excel问题。
我有两张桌子。一个叫做SENSOR,另一个叫做CARD
1 - 表SENSOR在一列中有日期/时间,在另一列中有员工ID 2 - 表CARD在一列中有日期/时间,在另一列中有员工ID
唯一完全匹配的是员工ID。表SENSOR的日期/时间与表CARD不完全匹配(通常为几分钟加或减)。我需要做的是在单元格C1上返回表格CARD中的日期/时间列,这是从SENSOR表格中的日期/时间列中找到的最近时间。
TABLE SENSOR:
A栏:日期/时间
11/3/17 10:48
11/3/17 16:02
11/10/17 7:09
11/13/17 20:58
11/15/17 21:24
11/16/17 11:32
B栏:员工ID
7164
7165
7166
7163
7167
7163
桌卡:
第一栏:日期/时间
11/3/17 16:05
11/10/17 7:10
11/13/17 21:04
11/15/17 21:30
11/16/17 11:40
11/3/17 10:45
COLUMN J:员工ID
7165
7166
7163
7167
7163
7164
这是我正在尝试做的事情(它实际上适用于其中一些,但在其他一些它只是不起作用,我无法理解为什么):
C1 = INDEX(2美元:285美元,匹配(最小(ABS(I $ 2:I $ 285-A16)),(2美元:285美元= B16)* ABS(I $ 2:I $ 285-A16), 0))
谢谢你们
答案 0 :(得分:1)
自从您提到TABLES
后,我使用了TABLES
和结构化引用。从长远来看,使事情变得容易一些。但是,如果需要,您应该可以转换为直接引用。
这是公式:
=LOOKUP(2,1/(AGGREGATE(15,6,(ABS(([@[EMPLOYEE ID]]=CARD[EMPLOYEE ID])*
CARD[DATE/TIME]-[@[DATE/TIME]])),1)=ABS(([@[EMPLOYEE ID]]=CARD[EMPLOYEE ID])*
CARD[DATE/TIME]-[@[DATE/TIME]])),CARD[DATE/TIME])