excel基于另外两个值返回单元格的值

时间:2016-09-21 10:20:24

标签: excel excel-formula

我想要做的是有点复杂,但我认为它在Excel中可行。

我在工作簿中有两个工作表,我有这个...

| Code1 | Code2 | Code3 | Code4 |
|  BA1  | xxxxx | xxxxx |       |
|  BA2  | xxxxx | xxxxx |       |
|  BA3  | xxxxx | xxxxx |       |

在第二张纸上......

| CodeA | CodeB | CodeC | CodeD |
|  BA1  |   1   |  date | text  |
|  BA3  |   1   |  date | text  |
|  BA1  |   2   |  date | text  |
|  BA2  |   1   |  date | text  |
|  BA1  |   3   |  date | text  |
|  BA3  |   2   |  date | text  |
|  BA2  |   2   |  date | text  |

我想要做的是在第一张表中查找Code1并在CodeA的第二张表中找到它然后找到CodeA的最高CodeB,然后连接CodeC和CodeD并将它们放在Code4中的第一张表中。

我希望这是有道理的,谢谢你的任何建议。

2 个答案:

答案 0 :(得分:0)

我想我明白了。这看起来是否正确?

enter image description here

抱歉瑞典公式,但它是一个使用CTRL + SHIFT + ENTER添加的数组公式。

英文公式为:

{=MAX(IF(Data=A2,CodeB;-1))}

命名范围数据是列H和I,CodeB是列I.
如果找不到值,则返回-1

很抱歉注意到我现在只完成了一半的工作。

创建另一个名为Table的命名区域,它将第I列跨越到K(代码B - >代码D)。

在列代码3中添加以下公式:

=Vlookup(B2,Table,2,false)  

在code4中:

=Vlookup(B2,Table,3,false)  

你应该得到:

enter image description here

答案 1 :(得分:0)

这应该找到您正在寻找的结果。

这是一个数组公式,因此您需要在将其输入公式栏后按CTRL + SHIFT + ENTER,这必须为您添加到列中的每个公式完成。

由于它是一个数组公式,我只将其写入引用第1行到第18行,您需要更新所有引用以包含最后一行。

标题为CODE1(至4)的列位于第一张纸(工作表1)

标题为CODEA(至D)的列位于第二张表(表2)

=CONCATENATE(VLOOKUP(CONCATENATE(A2,MAX(IF(Sheet2!A:A=A2,Sheet2!B:B,-1))), CHOOSE({1,2},Sheet2!A1:A18 & Sheet2!B1:B18, Sheet2!C1:C18 ),2,0)," ",VLOOKUP(CONCATENATE(A2,MAX(IF(Sheet2!A:A=A2,Sheet2!B:B,-1))), CHOOSE({1,2},Sheet2!A1:A18 & Sheet2!B1:B18, Sheet2!D1:D18 ),2,0))

如果日期之间不需要空格,只需从公式中间删除“”。