我的文件
包含笔记本电脑和库存表的工作簿1,库存将从仅占用笔记本电脑名称的笔记本电脑中获取数据。
目标
从笔记本电脑中提取产品名称(10,000个条目),例如康柏CQ58-250SA
计划
我们只需要产品名称,因此找到某些关键字(计算机规格)并将其左侧的所有内容(产品名称)
目标关键字
电子表格数据
Cell A1 = Compaq CQ58-250SA Celeron B830,Windows
电池A2 = HP 650奔腾B980,15.6 HD AG LED SVA,
Cell A3 =华硕X401A-WX321H,B815,Windows 8
Cell A4 = Compaq CQ58-256SA E1-1200,Windows 8 64
Cell A5 = ASUS,X401A-WX089V,B820,Windows 7
到目前为止我做了什么:
= LEFT(笔记本电脑!A1,FIND( “赛扬”,笔记本电脑!A1)-1)
我需要做什么
= LEFT(!笔记本A1,FIND( “赛扬” &安培; “奔腾” &安培;!“B815,笔记本电脑A1)-1)
答案 0 :(得分:5)
如果你的水果列表在D1:D3
,你可以使用它:
=LEFT(A1,FIND(INDEX(D1:D3,MATCH(1,COUNTIF(A1,"*"&D1:D3&"*"),0)),A1)-1)
需要输入数组公式,按 CTRL + SHIFT + ENTER 。
答案 1 :(得分:3)
根据更新的问题,您可以使用此公式,假设每个单元格只有一个关键字,D1中的关键字列表:D5
=LEFT(Laptops!A1,LOOKUP(2^15,FIND(D$1:D$5,Laptops!A1))-1)
否则,如果每个单元格可能有多个关键字......
您使用的是哪个版本的Excel?在 Excel 2010 中,您可以使用 AGGREGATE 这样的功能
=LEFT(A1,AGGREGATE(15,6,FIND(D$1:D$3,A1),1)-1)
其中D1:D3是您的“水果列表” - 根据需要展开
[AGGLEGATE函数中的15表示“SMALL”功能而6忽略错误,因此您从FIND(D $ 1:D $ 3,A1)获得最小值,同时忽略错误 - 从而为您提供第一个水果的位置细胞]
这可以作为常规公式输入并向下复制,如果没有找到任何结果它会给出错误但您可以使用IFERROR函数来修改它以返回文本值或A1的全部内容
注意:查找是“区分大小写” - 如果您不想要
,请使用搜索在 Excel 2007 或更高版本中,您可以使用 IFERROR ,因此可以使用此“阵列输入”版本
=LEFT(A1,MIN(IFERROR(FIND(D$1:D$3,A1),""))-1)
答案 2 :(得分:2)
您可以使用SUBSTITUTE
将Apple和Orange的任何实例替换为Apple,然后使用它(应该全部在一行,但为了便于阅读而分解):
=LEFT(A1,FIND("Apple",SUBSTITUTE(SUBSTITUTE(A1,"Pear","Apple"),"Orange","Apple"))
-1)
现在,如果没有Pear,Apple或Orange的实例,您将获得#Value
,所以我们也可以使用ISERROR
来检查无效值:
=IF(ISERROR(LEFT(A1, FIND("Apple",SUBSTITUTE(SUBSTITUTE(A1, "Pear", "Apple"),
"Orange", "Apple"))-1)),A1,LEFT(A1, FIND("Apple", SUBSTITUTE(SUBSTITUTE(A1,
"Pear", "Apple"),"Orange", "Apple"))-1))
答案 3 :(得分:-1)
我的版本有点短。还需要输入数组公式:
=MAX(1-ISERR(SEARCH(D1:D3,A1)))
如果找到则返回1,如果未找到则返回0。从那里开始工作。