我的文件
工作簿1包含笔记本电脑和库存单,库存将从只使用笔记本电脑名称的笔记本电脑中获取数据。
目标
从笔记本电脑(如Compaq CQ58 58-250SA)中提取产品名称(10,000项)
计划
我们只需要产品名称,所以找到特定的关键字(计算机规格),并把所有的东西左(产品的名称)。
关键字指向
电子表格数据
到目前为止我所做的:
=左(笔记本电脑!A1,查找(“塞隆”,笔记本电脑!A1)-1)
我需要做什么
=左(笔记本电脑!A1,查找(“Celeron”和“Pentium”&B815,笔记本电脑!A1)-1)
发布于 2013-01-22 15:58:52
根据更新的问题,您可以使用这个公式,假设每个单元格中只有一个关键字和D1:D5中的关键字列表。
=LEFT(Laptops!A1,LOOKUP(2^15,FIND(D$1:D$5,Laptops!A1))-1)
否则,如果每个细胞可能有多个关键字.
您使用的是哪个版本的Excel?在Excel2010中,您可以像这样使用聚合函数
=LEFT(A1,AGGREGATE(15,6,FIND(D$1:D$3,A1),1)-1)
其中D1:D3是您的“水果列表”-根据需要展开
在聚合函数中,15表示“小”函数,6表示忽略错误,因此从FIND获得最小值(D$1:d$3,A1),而忽略错误--从而给出第一个水果在单元格中的位置。
这可以作为常规公式输入并复制下来,如果没有发现任何水果,则会产生错误,但可以使用IFERROR函数修改该函数,以返回文本值或A1的全部内容。
注意:FIND是“区分大小写的”--如果不想使用SEARCH,则使用SEARCH。
在Excel 2007或更高版本中,您可以使用IFERROR,因此可以使用此“数组输入”版本。
=LEFT(A1,MIN(IFERROR(FIND(D$1:D$3,A1),""))-1)
发布于 2013-01-22 14:58:11
您可以使用SUBSTITUTE将梨和橙的任何实例替换给苹果,然后使用这个实例(应该全部放在一行,但为了可读性而拆分):
=LEFT(A1,FIND("Apple",SUBSTITUTE(SUBSTITUTE(A1,"Pear","Apple"),"Orange","Apple"))
-1)现在,如果没有梨、苹果或橘子的实例,您将得到#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))发布于 2013-01-22 15:56:34
我的版本有点短。还需要输入数组公式:
=MAX(1-ISERR(SEARCH(D1:D3,A1)))如果找到,返回1,如果没有找到,返回0。从那里开始工作。
https://stackoverflow.com/questions/14461001
复制相似问题