如果单元格与字符列表匹配,则从单元格中提取值

时间:2014-06-10 18:37:56

标签: excel

如果它以下列字母之一开头,我试图从句子中提取一个单词.Dell **或Samsung **或Apple **。单词的位置可能在单元格中有所不同。

A1:Dell2622 Retail34792联想StoreQuantity4
  A2:Retail9858 Qty8 Samsung783546 Android
  A3:Retail21512 Apple3411 StoreQty15 Macintosh

我正在尝试使用以下公式来提取戴尔**或三星**或Apple **,如果它出现在单元格中。

  =MID(A1, SEARCH({"Dell","Samsung","Apple"},A1), SEARCH(" ",A1, SEARCH({"Dell","Samsung","Apple"},A1))- SEARCH({"Dell","Samsung","Apple"},A1))

它适用于单元格A1,但其他所有内容都返回#VALUE!。我想它不会认识到我想要它检查或者提取或者。我想要实现的结果是:

A1:Dell2622
  A2:Samsung783546
  A3:Apple3411

稍后我可能需要添加更多内容来搜索,所以我试图让它易于修改。我想因为它找到了第一个实例,所以只需要调整一些东西来确保如果没有找到第一个值,它会寻找第二个,等等。

1 个答案:

答案 0 :(得分:0)

假设您的数据设置类似于下图,您的字符串位于A列,B列中的公式以及D列中要查找的字词:

tigeravatar example

单元格B2中的公式并向下复制:

=TRIM(LEFT(SUBSTITUTE(MID(A2,MIN(INDEX(SEARCH($D$2:$D$4,A2&$D$2:$D$4),)),255)," ",REPT(" ",255)),255))

根据您的要求,不使用范围引用,而是直接在公式中包含单词列表:

=TRIM(LEFT(SUBSTITUTE(MID(A3,MIN(INDEX(SEARCH({"Dell","Samsung","Apple"},A3&{"Dell","Samsung","Apple"}),)),255)," ",REPT(" ",255)),255))