我实际上是想写一个公式来匹配并在整个列中查找日期。假设我有这样的内容sheet1
:
A | B
--------------------
ID | Date1
--------------------
101 |10/24/2018
201 |01/21/2019
301 |04/30/2018
并且sheet2
包含 ID 和 Date2,结果列应如下所示:
A | B | C
---------------------------------
ID | Date2 | Result
---------------------------------
201 |04/29/2018 | FALSE
410 |04/30/2018 | NA
101 |10/24/2018 | TRUE
201 |03/29/2019 | TRUE
101 |03/20/2018 | FALSE
501 |04/30/2018 | NA
301 |03/30/2018 | FALSE
310 |04/30/2018 | NA
310 |04/30/2017 | NA
因此,如果 ID 为 101 的 Date1(10/24/2018) 大于或等于 Date2(03/20/2018),则结果列应为 false,否则为 true。如果 ID 或日期不匹配/不存在,则应为 NA。
我尝试使用 COUNTIF() 和 LOOKUP(),但没有成功!我尝试的公式如下:
=IF(COUNTIF(sheet2!A2:sheet2!A109944,sheet1!A2)>0,IF(COUNTIF(sheet2!B2:sheet2!B109944,">="&sheet1!B2),"False")),"True")
查找公式:
=IFERROR(LOOKUP(2,1/(sheet1!A2=sheet2!A2:sheet2!A109944)*(sheet1!B2>=sheet2!B2:sheet2!B109944),"True")"False")
有人能帮我解决这个问题吗?提前谢谢了。
答案1
您可以使用 INDEX 和 MATCH 来做到这一点:
D2 中的公式:
=B2>=INDEX(Sheet1!$B$2:$B$4,MATCH(A2,Sheet1!$A$2:$A$4,0))
MATCH 定位 Sheet1 上的 ID,INDEX 返回相关日期。然后将其与 Date2 进行比较并返回 TRUE/FALSE 结果。
当没有 ID 匹配时,将返回错误条件 #N/A ,而不是 NA。
如果你确实更喜欢 NA,你可以将其包装在 IFERROR 中:
=IFERROR(B2>=INDEX(Sheet1!$B$2:$B$4,MATCH(A2,Sheet1!$A$2:$A$4,0)),"NA")
这将用 NA 文本替换 #N/A: