在表 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 | 2015 | 2022 |
2 | 2017 | 2021 |
3 | 2015 | 2022 |
4 | 2012 | 2019 |
5 | 2015 | 2021 |
第二张桌子
作为文本
# | 第一年 | 第二年 | 价值 |
---|---|---|---|
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;""))}