【问题标题】:Excel Search function order of precedenceExcel 搜索功能的优先顺序
【发布时间】:2013-01-22 21:35:10
【问题描述】:

我想知道搜索功能是否支持优先顺序?一旦满足第一个条件,我需要搜索功能来中断执行。

我的公式有什么作用

在Laptops!D2 中搜索某些关键字,找到后将左侧的文本打印出来并剪掉其余部分。

我认为会发生的事情

Excel 在笔记本电脑中找到 B820!D2 将文本打印到左侧并截断其余部分

实际情况

Excel 在笔记本电脑中找到 B820 和 Windows!D2,将文本打印到 Windows 而不是 B820 的左侧

我的公式

=IFERROR(LEFT(Laptops!D2,LOOKUP(2^15,SEARCH(D1:D7,Laptops!D2))-1),"")

我已尝试如下引用我所需的搜索参数

=IFERROR(LEFT(Laptops!D2,LOOKUP(2^15,SEARCH({"B820","AMD","Pentium","Celeron","Windows","Intel","i3"},Laptops!D2))-1),"")

它给出的结果与我从 D1:D7 中引用它们时的结果相同,这并不令人惊讶。

【问题讨论】:

  • 我认为您在这两个问题中都没有指出哪个版本的 Excel 会有帮助。
  • @Doug - 我假设 Excel 2010 - 在上一个问题中引用了

标签: excel


【解决方案1】:

这是我在您上一个问题中提出的观点 - 该公式旨在处理每个单元格中的 单个 关键字 - 如果有多个关键字,您希望发生什么?

使用您引用的公式,您将获得 D1:D7 中 last 匹配项左侧的所有内容,因此如果出现“Windows”和“B820”,它将始终获得所有内容的左侧“Windows”(如果稍后在 D1:D7 中列出)。您可以切换 D1:D7 中的顺序以适应或使用我建议的其他公式,即

=IFERROR(LEFT(Laptops!D2,AGGREGATE(15,6,SEARCH(D$1:D$7,Laptops!D2),1)-1),"")

该版本将始终为您提供 Laptops!D2

第一个匹配项左侧的所有内容

这有帮助吗?如果没有,您能否举一些公式不起作用的例子以及您想要得到什么。

【讨论】:

  • 原来如此,我选择另一个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2011-01-31
  • 1970-01-01
相关资源
最近更新 更多