首先谢谢诸位如此快速准确的回复!
这里果然是高手如云啊。
一个小小问题竟出了这么多种不同的解决方案!不过小弟初来乍到,对EXCEL很感兴趣,以上各位高手提供的解决方案我总结了一下,有以下几种:
(1)A2=VLOOKUP(LEFT(B2,7)&"*",CHOOSE({1,2},COA2!$B$2:$B$19,COA2!$A$2:$A$19),2,)
(2)A2=VLOOKUP(LEFT(B2,7)&"*",IF({1,0},COA2!$B$2:$B$19,COA2!$A$2:$A$19),2,0)
(3)A2=VLOOKUP(LEFT(B2,FIND("-",B2,6)-1),IF({1,0},COA2!$B$2:$B$19,COA2!$A$2:$A$19),2,0)
(4)A2=INDIRECT("'"&"COA2"&"'!a"&MATCH(LEFT(B2,FIND("&",SUBSTITUTE(B2,"-","&",2))-1),COA2!B$2:B$19,0)+1)
(5)A2=VLOOKUP(LEFT(B2,FIND("&",SUBSTITUTE(B2,"-","&",2))-1),IF({1,0},COA2!B$2:B$19,COA2!A$2:A$19),2,0)
以上五种的前两种都用了LEFT(B2,7)&"*",这个语句的我是这样理解的:指取B2单元格中前七个字符及其七个字符之后的内容,其实也就是让EXCEL只去匹配B2单元格的前七个字符,而用“*”是表明这些单元格第七个字符后还存在内容。不知道我的理解是否正确,请高手指点迷津。
至于CHOOSE(),还有其中的条件{1,0}、{1,2}这些函数及条件的应用我就更不了解个中内涵,请各位高手多多指教!让我这个EXCEL晚生也学习学习! |