【问题标题】:Lookup list using wild cards使用通配符的查找列表
【发布时间】:2013-02-26 15:23:44
【问题描述】:

我将从描述我的数据开始

List1:
Company           Result
---------
Company1 (1234)   1
Company1 (1445)   1
Company3blabla    2
Company4          0

LookupList:
Company     Index
------------------
*Company1*    1
*Company3*    2

我正在尝试找到一个公式,如果它包含来自 LookupList 的匹配项(因此存在 * 通配符),它将搜索 List1 中的每个公司,如果是,它将返回对应的索引值,如Result列所示。

到目前为止,我得到了一个公式,如果匹配则返回 1,如果不匹配则返回 0,但我不知道如何从那里获取索引值:

{=MAX(ISNUMBER(SEARCH('LookupList'!$A$1:$A$2,List1[[#This Row],[Company]]))+0)}

【问题讨论】:

    标签: excel excel-formula formulas


    【解决方案1】:

    您不需要通配符(SEARCH 会自动在其他文本中搜索),因此您可以删除这些通配符并在结果列中使用此公式来获取 INDEX 值

    =IFERROR(LOOKUP(2^15,SEARCH('LookupList'!$A$1:$A$2,List1[[#This Row],[Company]]),'LookupList'!$B$1:$B$2),"")

    如果没有匹配,这会给你一个空白 - 如果需要,将末尾的“”更改为“不匹配”之类的文本

    【讨论】:

    • 这很好用!唯一的问题是它返回的是公司值而不是索引。要获得索引,我必须在查找的 las 参数中引用 col B: =IFERROR(LOOKUP(2^15,SEARCH('LookupList'!$A$1:$A$2,List1[[#This Row],[公司]]),'LookupList'!$B$1:$B$2),"")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多