用LOOKUP和FIND函数规范为标准名称

作为管理或者统计工作者,往往从各个部门收集上来的数据填写非常不规范,比如下:

用LOOKUP和FIND函数规范为标准名称

文章插图
A列中同样的设备,填写的名称不一样,这为后期的统计与分析带来麻烦 。我们要把这些不规范的设备名称改写成标准名称 。
关键操作第一步:建立关键字与标准名称对应表
首先对不规则的商品名称分析,提取出关键字,建立关键字与标准名称之 间的对应关系表,如下:
用LOOKUP和FIND函数规范为标准名称

文章插图
第二步:函数实现
在B2单元格输入公式“=LOOKUP(1,0/FIND($D$2:$D$7,A2),$E$2:$E$7)”,公式公式向下填充,就可以写出所有的标准名称 。
(这种用来填写标准名称的方法,还可用在给物品分类方面)
【用LOOKUP和FIND函数规范为标准名称】
用LOOKUP和FIND函数规范为标准名称

文章插图
公式解析
总公式“=LOOKUP(1,0/FIND($D$2:$D$7,A2),$E$2:$E$7)”
其中:
FIND($D$2:$D$7,A2)
FIND函数返回一个字符串在另一个字符串中的起始位置,如果找不到要查找的字符或字符串,返回错误值#VALUE! 。
本示例中的含义是:依次查找$D$2:$D$7区域中的关键字在A2字符串中起始位置,如果查找到了,就返回关键字在A2字符串中的起始位置,如果查找不到,就返回错误值#VALUE! 。
所以,本部分函数,在本示例中的返回值是由起始位置与错误值#VALUE!组成的数组(为描述方便,称为数组1):
{#VALUE;4;#VALUE;#VALUE;#VALUE;#VALUE}
0/FIND($D$2:$D$7,A2)
用0除以数组1,得到由0和错误值#VALUE!组成的新数组(数组2):
{#VALUE;0;#VALUE;#VALUE;#VALUE;#VALUE}
LOOKUP(1,0/FIND($D$2:$D$7,A2),$E$2:$E$7)
LOOKUP函数用1作为查找值,在数组2中,所有的数字都小于1,所以按照小于1的最大值0进行匹配,匹配出第三个参数$E$2:$E$7数组中与数组2中0对应位置的值,即E3单元格的数据 。
附函数语法
LOOKUP函数:
LOOKUP(lookup_value, lookup_vector, [result_vector])
这是LOOKUP 函数向量形式语法,具有以下参数:
lookup_value必需 。LOOKUP 在第一个向量中搜索的值 。Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用 。
lookup_vector必需 。只包含一行或一列的区域 。lookup_vector 中的值可以是文本、数字或逻辑值 。
result_vector可选 。只包含一行或一列的区域 。result_vector 参数必须与 lookup_vector 参数大小相同 。其大小必须相同 。
FIND函数:
FIND(find_text, within_text, [start_num])
FIND 和 FINDB 函数语法具有下列参数:
find_text必需 。要查找的文本 。
within_text必需 。包含要查找文本的文本 。
start_num可选 。指定开始进行查找的字符 。within_text 中的首字符是编号为 1 的字符 。如果省略 start_num,则假定其值为 1 。

    推荐阅读