根据多个条件查找公式

根据多个条件查找公式

在表 1 中,我需要第 4 列作为表 2 中的答案

基本上我需要在表 1 的 d 列中得到结果。我需要在表 2 的 1 列中查找表 1 中的 1 列,如果表 1 中的 2 列大于或等于表 2 中的 2 列,并且表 1 中的 3 列等于或小于表 2 中的 3 列 - 然后从表 1 中的表 2 返回 d 列

期望结果:第 1 行应包含 a 和 b:第 2 行应包含 e:第 3 行应为 ghi:第 4 行应为 kl:第 5 行应为 mn

第一张桌子

表格1

如正文所示:

# 第一年 第二年
1 2015 2022
2 2017 2021
3 2015 2022
4 2012 2019
5 2015 2021

第二张桌子

表 2

作为文本

# 第一年 第二年 价值
1 2015 2022 A
1 2016 2022 b
1 2017 2023 C
2 2016 2021 d
2 2017 2021
2 2017 2022 F
3 2015 2021 G
3 2015 2022 H
3 2016 2021
4 2011 2018
4 2012 2018
4 2012 2019
5 2015 2019
5 2016 2021 n
5 2017 2022 o

答案1

欢迎!

如果您的 Excel 版本包含TEXTJOIN() 函数,那么任务就很简单了。

类似公式

{=TEXTJOIN(";";1;IF(($F$2:$F$16=A2)*($G$2:$G$16<=B2)*($H$2:$H$16>=C2);$I$2:$I$16;""))}

会这样做:它将测试每个条件并创建一个数组{是,否,否,是...}将这些数组相乘只会为满足所有条件的行给出“YES”。

现在,使用正常IF() 函数,若为真值则返回第四列的值,若为假值则返回空字符串。

TEXTJOIN() 函数会将所有非空值连接成一个字符串,并跳过空值(该函数的第二个参数负责处理这个问题)。

结果

请记住,这是一个数组公式 - 输入应通过按Ctrl+Shift+Enter而不是通常的 Enter

不幸的是,我无法检查公式的正确性 - 我的 Excel 版本还不知道 TEXTJOIN(),我构建了公式LibreOffice Calc- 可能需要一些额外的步骤才能在 Excel 中实现此功能,例如将每个条件包装在N() 函数

{=TEXTJOIN(";";1;IF(N($F$2:$F$16=A2)*N($G$2:$G$16<=B2)*N($H$2:$H$16>=C2);$I$2:$I$16;""))}

答案2

这里有一个公式可以为您提供所需的输出(但是您的描述具有大于/小于关系不同)

=TEXTJOIN(", ",TRUE, FILTER(Table2[Value],(Table2[n]=[@n])*(Table2[Year1]>=[@Year1])*(Table2[Year2]<=[@Year2]),""))

在此处输入图片描述

相关内容