Search EXCEL 2010,垂直搜索,解析单元格

Search EXCEL 2010,垂直搜索,解析单元格,search,excel-2010,vlookup,Search,Excel 2010,Vlookup,我需要有关Excel 2010中垂直搜索的帮助。 我有一个有两张纸的文件,每张纸上有一个包含数据的表格 sheet one A B C D 123 sth sth 'need to find and copy value from second sheet(key is collumn A); formula here 321 678 845 983 sheet two A B C 123, 321 sth 100

我需要有关Excel 2010中垂直搜索的帮助。
我有一个有两张纸的文件,每张纸上有一个包含数据的表格

sheet one
A    B     C     D
123  sth   sth   'need to find and copy value from second sheet(key is collumn A); formula here
321
678
845
983

sheet two
A          B        C
123, 321   sth      100 'looking for this value, copy 100 to first sheet to key 123 and also 321
678                 99  'value for key 678 in sheet one
845, 983            82  'value for keys 845 and 983 in sheet one ..
我使用vlookup(),但当我在一个单元格中有两个用逗号分隔的值时,它不起作用,我必须手动执行。 是否有类似于vlookup的函数可以与left()和right()函数结合使用,还是必须使用更复杂的VB宏?
我无法更改这些图纸的布局…

谢谢。

相当老套的解决方案,只使用公式

进入
Sheet1!C1

=IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A1)=1,VLOOKUP(Sheet1!$A1,Sheet2!$A:$C,3,FALSE),SUMIF(Sheet2!$A:$A,"*"&Sheet1!$A1&"*",Sheet2!$C:$C))
样本结果:

第2张

表1

免责声明:


这种方法很容易被打破。一个可能的失败是,如果
表2中的ID之间没有空格,则公式将失败。此外,如果ID在
Sheet2
中重复出现,则会由于使用
SUMIF
而添加这些ID。一种解决方法是使用
AVERAGEIF

将数组公式与搜索一起使用

{=IF(SEARCH(A1,Sheet1!A:A),Sheet2!D:D)}
略为全面的版本:

{=SUM(IF( NOT(ISERROR(SEARCH(A1,Sheet2!A:A))),Sheet2!D:D))}
正如Nanashi所提到的,您可以将sum更改为average,或者处理多个值

您需要使用ctrl+shift+enter将公式设置为数组公式