Excel查找w / 2条件,两个日期之间的日期&匹配id's

时间:2018-03-16 23:59:56

标签: excel excel-vba excel-formula vba

示例数据:

id,action_datetime,value_id,
770940,03/15/2018 23:00:04,??,
801816,03/15/2018 22:45:49,??,
,,,
id,start_datetime,end_datetime,value_id
801816,03/15/2018 21:30:07,03/15/2018 21:55:29,595774419
774137,03/15/2018 22:38:35,03/15/2018 23:05:24,595777227
801816,03/15/2018 22:54:57,03/15/2018 23:02:16,595777156
647428,03/15/2018 22:53:48,03/15/2018 23:01:23,595777127
813437,03/15/2018 22:47:06,03/15/2018 23:01:04,595777115
801816,03/15/2018 22:42:03,03/15/2018 22:49:46,595776712
799132,03/15/2018 22:51:48,03/15/2018 23:00:30,595777071
813433,03/15/2018 22:48:10,03/15/2018 23:00:25,595777088
770940,03/15/2018 21:11:02,03/15/2018 22:10:45,595775340
792244,03/15/2018 22:56:44,03/15/2018 23:00:12,595777081
770940,03/15/2018 22:53:38,03/15/2018 23:00:32,595777094
647428,03/15/2018 22:40:46,03/15/2018 22:49:28,595776789
780946,03/15/2018 22:52:37,03/15/2018 23:00:48,595777105
800197,03/15/2018 22:48:26,03/15/2018 23:04:36,595777209

enter image description here

我需要公式,它会返回 value_id (Col J),其中来自Col B的 action_datetime 位于 start_datetime之间(Col H)和 end_datetime (Col I),Col A的ID与Col G的ID匹配。

我更喜欢公式,但我也可以使用VBA选项。

任何帮助都会很棒。我不知道如何更具体,但如果您有任何疑问,请告诉我。

谢谢,

2 个答案:

答案 0 :(得分:1)

您可以根据数据集调整此公式的范围:

{=INDEX(H$2:H$15,MATCH(1,IF(B2>=F$2:F$15,IF(B2<=G$2:G$15,IF(A2=$E$2:$E$15,1))),0))}

使用 Ctrl + Shift + 输入以激活公式。

答案 1 :(得分:0)

在单元格H2中:= LOOKUP(G2,$ B $ 2:$ C $ 16,$ D $ 2:$ D $ 16) enter image description here

这是在修改问题之前创建的,因此设置可能与您的设置完全不符。

信用:https://www.mrexcel.com/forum/excel-questions/621562-vlookup-if-date-between-2-dates-table.html

P.S。在查看修改后的问题后,这可能对您更有效。在Cell C2中:= vlookup(A2,$ G $ 2:$ J $ 15,4,FALSE)和Cell C3:= vlookup(A3,$ G $ 2:$ J $ 15