【问题标题】:EXCEL How to reverse match to find wildcardEXCEL如何反向匹配以查找通配符
【发布时间】:2019-12-10 13:26:22
【问题描述】:

我在 excel 中有两个列表,一个带有通配符,一个带有特定字符串。

我想知道哪个通配符首先匹配的每个字符串。

      A                      B            C          D               E
   2 Text                                Wildcard              
   3 The Fries Paradise                  *pizza*       
   4 CrabbyPatty Burger                  *burger*        
   5 Fries Work                          *fries*         
   6 Pizza & Burgers        
   7 Pizzaderia                 
   8 OverloadedFries   

So in B3 should be *fries*, in B4 *burger* etc

我无法理解 MATCH 函数的反转,有人知道吗?

感谢你们,我已经有了一个可行的解决方案。

但是我也有这样的通配符:

*delicious * nuggets*
as well as
*great V? softdrink*

知道如何让这些反向匹配吗?

【问题讨论】:

    标签: excel excel-formula match wildcard


    【解决方案1】:

    数组公式:

    =INDEX($C$3:$C$5,MATCH(1,COUNTIF(A3,$C$3:$C$5),0))
    

    【讨论】:

    • 对我不起作用 (#NV)。我这样修改它: =INDEX(sheet1!A:A,MATCH(1,COUNTIF(sheet2!B2,sheet1!A:A),0)) (示例行 A 实际上是 sheet2 B,示例行 c 实际上是sheet1 A)
    • 非常好的解决方案罗里!由于COUNTIF 将与*? 通配符一起使用,这应该适用于OP 给出的所有示例。防止数组输入>=INDEX($C$3:$C$7,MATCH(1,INDEX(COUNTIF(A3,$C$3:$C$7),),0))
    • 哦,JvdV的版本对我来说运行流畅,不知道为什么只有这个,但它很棒!
    • 我原来是上面提到的数组公式,所以必须用Ctrl+Shift+Enter来输入,而不仅仅是Enter。 (除非您拥有最新的 O365 版本)
    【解决方案2】:

    数组公式对我不起作用。 JvdV 在评论部分提供的答案有效。请尝试如下:

    =INDEX($C$3:$C$7,MATCH(1,INDEX(COUNTIF(A3,$C$3:$C$7),),0))
    

    【讨论】:

      猜你喜欢
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 2018-03-10
      • 1970-01-01
      相关资源
      最近更新 更多