题目】如下图所示,A列是公司全称,要求在D列设置公式,根据C列的简称查找A列全称。规则是查找返回的全称要包含C列简称的每一个字符。如:
中石化 查找返回 中国石油化工总公司
有很多同学参与本次答案的提交,公式也有写的非常好的同学,只是或多或少有优化的空间。下面是兰色写的一个公式,供同学们参考吧。
=INDEX(A:A,MATCH(,MMULT(-ISERR(FIND(MID(C2,COLUMN(A:X),1),A$1:A6)),B1:B24+1),))
公式重点说明:
- 用MID+Column函数对简称进行分割。
- 用FIND函数逐个查找,成功返回位置(数字),不成功返回错误值。然后用ERROR转换成TRUE或FALSE,错误的变成TRUE、正确的变成FALSE。用-(负号)再把TRUE转换成-1,把FALSE转换为0。
- MMULT函数的作用是数组的分行求和。B2:B24+1是生成{1,1,1...} 24个1组成的数组。求和的结果,全匹配的行求和结果为0,其他为负值。
- 用MATCH函数查找0的位置
- 用INDEX函数返回A列的全称。
兰色说:估计很多函数新手看不明白这个公式,不过它很实用,建议同学们收藏起来备用吧。
暂无评论...