Excel 查找左侧的所有内容(多输入)

Excel 查找左侧的所有内容(多输入),excel,Excel,我的文件 工作簿1包含笔记本电脑和库存表,库存将从笔记本电脑中获取数据,仅记录笔记本电脑的名称 目标 从笔记本电脑(如Compaq CQ58-250SA)中提取产品名称(10000个条目) 计划 我们只需要产品名称,这样就可以找到某些关键字(计算机规格)并将所有内容都放在左边(产品名称) 目标关键字 赛扬 奔腾 B815 E1-1200 B820 电子表格数据 A1单元=康柏CQ58-250SA赛扬B830,Windows 单元A2=HP 650奔腾B980,15.6高清AG LED SV

我的文件

工作簿1包含笔记本电脑和库存表,库存将从笔记本电脑中获取数据,仅记录笔记本电脑的名称

目标

从笔记本电脑(如Compaq CQ58-250SA)中提取产品名称(10000个条目)

计划

我们只需要产品名称,这样就可以找到某些关键字(计算机规格)并将所有内容都放在左边(产品名称)

目标关键字

  • 赛扬
  • 奔腾
  • B815
  • E1-1200
  • B820
电子表格数据

  • A1单元=康柏CQ58-250SA赛扬B830,Windows

  • 单元A2=HP 650奔腾B980,15.6高清AG LED SVA

  • 单元A3=Asus X401A-WX321H、B815、Windows 8

  • 单元A4=Compaq CQ58-256SA E1-1200,Windows 8 64

  • 单元A5=ASUS,X401A-WX089V,B820,Windows 7

到目前为止我所做的:

=左侧(笔记本电脑!A1,查找(“赛扬”,笔记本电脑!A1)-1)

我需要做什么


=左(笔记本电脑!A1,FIND(“Celeron”和“Pentium”和“B815,笔记本电脑!A1)-1)

您可以使用
替换
将Pear和Orange的任何实例替换为Apple,然后使用它(应全部放在一行中,但为了可读性而将其拆分):

现在,如果没有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))

如果您的水果列表位于
D1:D3
中,您可以使用以下内容:

=LEFT(A1,FIND(INDEX(D1:D3,MATCH(1,COUNTIF(A1,"*"&D1:D3&"*"),0)),A1)-1)

需要通过按CTRL+SHIFT+ENTER将其作为数组公式输入。

我的版本稍短。还需要作为数组公式输入:

=MAX(1-ISERR(SEARCH(D1:D3,A1)))

如果找到,则返回1,如果未找到,则返回0。从那里开始计算。

根据更新的问题,假设每个单元格只有一个关键字,并且D1:D5中的关键字列表,则可以使用此公式

=左(笔记本电脑!A1,查找(2^15,查找(D$1:D$5,笔记本电脑!A1))-1)

否则,如果每个单元格可能有多个关键字

您使用的是哪个版本的Excel?在Excel2010中,您可以使用这样的聚合功能

=左(A1,聚合(15,6,查找(D$1:D$3,A1),1)-1)

其中D1:D3是您的“水果清单”-根据需要展开

[15 in-AGGREGATE函数表示“SMALL”函数,6忽略错误,因此在忽略错误的同时从FIND(D$1:D$3,A1)中获得最小值,从而给出单元格中第一个结果的位置]

这可以作为常规公式输入并向下复制,如果未找到任何结果,则会出现错误,但您可以使用IFERROR函数对其进行修改,以返回文本值或A1的全部内容

注意:FIND是“区分大小写的”-如果不需要,请使用SEARCH

Excel2007或更高版本中,您可以使用iError,因此可以使用此“数组输入”版本


=左(A1,最小(IFERROR(查找(D$1:D$3,A1),“”)1)

我不明白……你到底想做什么?你的输入看起来像什么?好的,我已经更新了这个问题。+1极好!简短:)如果A1可以包含多个水果,那么这个公式不一定会给出第一个水果左边的所有文本-取决于D1:D3中水果的顺序,例如,如果D1=“Apple,D2=“Pear”,D3=“Orange”&A1=
“两棵树,梨和苹果”
然后公式将所有文本返回到苹果的左侧(而不是梨的左侧)。我建议的公式应该总是将文本返回到第一个水果的左边-如果每个单元格中只有一个水果,那么您可以使用这个非数组公式
=left(A1,LOOKUP(2^15,FIND(D$1:D$3,A1))-1)
Ctrl-Shift-Enter,我想输入数组公式?@barryhoudini这是给Doug的:需要通过按Ctrl-Alt-Enter键将其作为数组公式输入。”他回答道。编辑它,很抱歉造成混淆)@Peter L.好吧,很抱歉我现在看到了好吧,但我的例子只是我所需要的一个简单版本:我可以用Pm向你小Bobby寻求帮助,这样我就可以避免重复问题吗?@Ninja2k-可能最好根据你的具体情况更新你的问题,这样我们才能最好地帮助你。我认为你太挑剔了。我已经完成了困难的部分。OP可以根据其工作表的配置完成简单的部分。如果这对你来说还不够好,我道歉。非常有趣,但是我得到了一个#值,当它找不到keyword@Ninja2k用哪种配方?您使用的是哪个版本的Excel?如果找不到关键字,您希望得到什么结果?Excel 2010正在考虑使用“应该做对吗?”将公式封装在IFERROR中,例如,对于查找版本
=IFERROR(左(笔记本电脑!A1,查找(2^15,查找(D$1:D$5,笔记本电脑!A1))-1),”)
=MAX(1-ISERR(SEARCH(D1:D3,A1)))