我想要做的是有点复杂,但我认为它在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中的第一张表中。
我希望这是有道理的,谢谢你的任何建议。
答案 0 :(得分:0)
我想我明白了。这看起来是否正确?
抱歉瑞典公式,但它是一个使用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)
你应该得到:
答案 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))
如果日期之间不需要空格,只需从公式中间删除“”。