excel 如何利用函数提取出文字中的关键字

来源:百度知道 编辑:UC知道 时间:2024/06/16 14:55:16
项 目 名 称 关键字 价格 查找区 价格
第一教学楼模板 模板 80 模板 80
第一教学楼圆8钢筋制作安装 钢筋制作安装 5 钢筋制作安装 5
第一教学楼混凝土 混凝土 300 混凝土 300
第一教学楼砌筑墙体 砌筑墙体 120 砌筑墙体 120
食堂模板 模板 80
食堂圆8钢筋制作安装 钢筋制作安装 5
食堂混凝土 混凝土 300
食堂砌筑墙体 砌筑墙体 120
图书馆模板 模板 80
图书馆圆8钢筋制作安装 钢筋制作安装 5
图书馆混凝土 混凝土 300
图书馆砌筑墙体 砌筑墙体 120

如何利用函数从项目名称一栏中提取出关键字,以便使用vlookup函数查找对应价格。
这是一个模型,实际情况比这个复杂,关键字可能会有50多个。次序也是不规则的。
第二张工作表中是我的一个笨办法,有没有更简单直接的办法呢?

比如Sheet1是价格表,A列查找区,B列是价格
Sheet2的A列是项目名称,用以下公式查找得出对应关键字的价格。
=SUM((RIGHT(A2,LEN(Sheet1!$A$2:$A$50))=Sheet1!$A$2:$A$50)*Sheet1!$B$2:$B$50)
数组公式,用CTRL+SHIFT+ENTER结束输入。

有前提条件,关键字不能存在这种情况,某个关键字的最后字符是另一个关键字,比如有”模板”,就不能再有“混凝土模板",否则会重复计算。

如果你的内容能符合以下规律:
1、“项目名称”中的关键字都是在最后的,如“第一教学楼模板”中“模板”等关键字不会在中间或其他地方出现。2、关键字的字数都不大于8。现在以你这里的内容为例(关键字的字数最大为6),提供公式参考:

设“项目名称 关键字 价格 查找区 价格”分别在A、B、C、D、E列,可在B2输入公式:
=IF(ISERROR(VLOOKUP(RIGHT(A2,2),D:D,1,)),IF(ISERROR(VLOOKUP(RIGHT(A2,3),D:D,1,)),IF(ISERROR(VLOOKUP(RIGHT(A2,4),D:D,1,)),IF(ISERROR(VLOOKUP(RIGHT(A2,5),D:D,1,)),VLOOKUP(RIGHT(A2,6),D:D,1,),VLOOKUP(RIGHT(A2,5),D:D,1,)),VLOOKUP(RIGHT(A2,4),D:D,1,)),VLOOKUP(RIGHT(A2,3),D:D,1,)),VLOOKUP(RIGHT(A2,2),D:D,1,))
并将公式向下复制到其他单元格中,即能求出A列上与“查找区”中相同的关键字,至于“价格”相信你也知道如何用“vlookup”函数求出了。