这是我的困境。我在一个表中有一列是空白的。填写它我需要在另一个表中查找用户ID,并从该表返回一个值,但是当且仅当第一个表中的日期落在第二个表中两列的日期范围内时。
我试图张贴床单的图片,但我没有获得授权。这是一个缩写的外观
UserID TransDate Place
93696732A 12/01/2014
99898585F 12/01/2014
99898585F 11/01/2014
91867459C 12/01/2014
91867459C 11/01/2014
91867459C 10/01/2014
91867459C 09/01/2014
91867459C 08/01/2014
91867459C 07/01/2014
userid station placeid place placefrmdt placetodt
E13332190 HW 105612 STJWCC 09/01/2014 02/28/2015
A97059190 HW 105614 TCI 01/01/2014 12/31/9999
A56586039 HW 105614 TCI 01/01/2014 12/31/9999
C02409039 HW 107549 USCEFSGA 12/01/2014 01/31/2015
C67974990 HW 107539 KH 05/01/2015 12/31/9999
C99804409 HW 105612 STJWCC 01/01/2015 04/30/2015
C59064990 HW 105611 SBFHG 08/01/2014 04/30/2015
F09035309 HW 107540 LAC 07/01/2014 12/31/9999
D49047905 HW 105612 STJWCC 10/01/2014 01/31/2015
D13929089 HW 107549 USCEFSGA 09/01/2014 01/31/2015
答案 0 :(得分:0)
这可以使用MATCH + INDEX作为数组函数来完成。 注意:在Excel中输入数组功能时,请勿在输入功能后按ENTER键。请按Ctrl + Shift + Enter,以便Excel知道将其视为数组函数。
给出以下Excel工作表:
第1页
Sheet 2中
Sheet1上的Place列的公式是
=INDEX(Sheet2!A:F,MATCH(1,(Sheet2!A:A=A2)*(Sheet2!E:E<=B2)*(Sheet2!F:F>=B2),0),4)
要解决这个问题:
INDEX有3个参数。
第一个参数是您要从Sheet2中检索数据的表!A:F
第二个参数是行号,我们使用MATCH
计算第三个参数是列号,4,对应于Sheet2中的Place列
MATCH有三个参数。
第一个参数是要匹配的值,在本例中为1
第二个参数是与之匹配的表,我们正在计算
第三个参数是匹配的匹配类型,在本例中为0,用于完全匹配。
对于MATCH的第二个参数,我们使用(Sheet2!A:A = A2)(Sheet2!E:E&lt; = B2)(Sheet2!F:F&gt; = B2)。逻辑翻译,这是所有单元的集合,其中列A = A2并且列E <= B2并且列F> = B2。这些单独的项中的每一个都将返回true / false,但是当您在Excel中使用true / false执行数学函数时,它会将true / false转换为1/0。因此对于所有三个条件都为真的行,这将返回1,其余行将返回0.因为我们提供1作为MATCH尝试匹配的值,这将返回所有三个的行号条件是真的。