excel 如何比较两列中的日期范围,以确定某个日期是否存在于两列中或仅存在于一列中?

tpxzln5u  于 2023-05-30  发布在  其他
关注(0)|答案(2)|浏览(166)

我有一个日期范围,我需要比较日期是否存在于两列中:

如果E6存在于范围AK6:AK24中并且E6存在于范围AL6:AL24中,则返回“Booth”如果E6仅存在于范围AK6:AK24中,则返回“Column 1”如果E6仅存在于范围AL6:AL24中,则返回“Column 2”

bq3bfh9z

bq3bfh9z1#

所以,设置这个,因为你没有提供有用的数据:

IF(AND(IFERROR(MATCH(A1,M3:M7,0),0),IFERROR(MATCH(A1,N3:N7,0),0)),"both",IF(IFERROR(MATCH(A1,M3:M7,0),0)>0,"col 1",IF(IFERROR(MATCH(A1,N3:N7,0),0)>0,"col 2")))

仅适用于第1列和两者:

soat7uwm

soat7uwm2#

下面是一个使用INDEX()XMATCH()并借助BOOLEAN LOGIC的替代公式

·单元格E7中使用的公式

=IFERROR(INDEX({"Column 1","Column 2","Both"},
XMATCH(SUM(($AK$6:$AK$24=E6)+(E6=$AL$6:$AL$24)*2),{1,2,3})),"")

要解释公式的工作原理,请查看示例屏幕截图:

示例屏幕截图中的公式:
·在单元格AP7

=SUM(($AK$6:$AK$24=AO7)+(AO7=$AL$6:$AL$24)*2)

·在单元格AQ7

=XMATCH(AP7,{1,2,3})

·在单元格AR7

=IFERROR(INDEX({"Column 1","Column 2","Both"},AQ7),"")

·XMATCH()中的SUM()根据BOOLEAN LOGIC返回0123

=SUM(($AK$6:$AK$24=E6)+(E6=$AL$6:$AL$24)*2)

·XMATCH()返回相同的位置,但当没有匹配时会有帮助,因此返回#N/A

=XMATCH(SUM(($AK$6:$AK$24=E6)+(E6=$AL$6:$AL$24)*2),{1,2,3})

·最后,我们将其 Package 在IFERROR()中以避免错误,并返回空白,而INDEX()则根据需要获得所需的输出。

=IFERROR(INDEX({"Column 1","Column 2","Both"},
XMATCH(SUM(($AK$6:$AK$24=E6)+(E6=$AL$6:$AL$24)*2),{1,2,3})),"")

或者,如果您的Excel版本中没有XMATCH(),也可以使用MATCH()函数。

=IFERROR(INDEX({"Column 1","Column 2","Both"},
MATCH(SUM(($AK$6:$AK$24=E6)+(E6=$AL$6:$AL$24)*2),{1,2,3},0)),"")

**注意:**根据您的excel版本,使用INDEX()MATCH()时需要按CTRL+SHIFT+ENTER

但是,如果您在MS365中并希望获得溢出效果,则可以使用BYCOL()使用一个公式来实现
·单元格E7中使用的公式

=BYCOL(E6:AI6,LAMBDA(x,
IFERROR(INDEX({"Column 1","Column 2","Both"},
XMATCH(SUM(($AK$6:$AK$24=x)+(x=$AL$6:$AL$24)*2),{1,2,3})),"")))

下面是另一种选择,将CHOOSE()函数与BYCOL()一起使用

·单元格E7中使用的公式-->需要正确填写!

=IFERROR(CHOOSE(SUM((($AK$6:$AK$24=E$6)+($AL$6:$AL$24=E$6)*2)),"Column 1","Column 2","Both"),"")

或者,如果你想要一个溢出数组

=BYCOL(E6:AI6,LAMBDA(x,
IFERROR(CHOOSE(SUM((($AK$6:$AK$24=x)+($AL$6:$AL$24=x)*2)),
"Column 1","Column 2","Both"),"")))

上述公式的几个测试用例按照要求工作:

·在单元格AS7

=IFERROR(CHOOSE(SUM((($AK$6:$AK$24=AO7)+($AL$6:$AL$24=AO7)*2)),"Column 1","Column 2","Both"),"")

相关问题