使用具有多个条件的 Xlookup,同时检查它是否包含文本,而不仅仅是精确匹配

问题描述 投票:0回答:1

我确信这可能有点令人困惑,但我有一个与第一张图片类似的数据库。

我想要做的是,根据“Info”范围的数据,将一个值应用于“Value”范围。为此,我有诸如“=if(A1 = "A",1,0)”或“=if(and(B1 = "red",C1 = "pear"),1,0)”之类的公式,这将得到我第二张图。

我的问题是,我需要将这些标准作为用户易于访问和修改的东西,因为我制作了另一张具有标准的工作表,如第三张图片。

我可能遇到的另一个问题是,我可能会得到“梨汁”,而不是在“Info3”中只得到水果,并且我也需要将其视为“梨”。

我首先想到使用 XLOOKUP 构建一个公式,检查其行是否符合另一个表中列出的任何条件,然后从相应的“值”范围中提取值,但我想不出一种方法让它与具有复杂标准的对象一起使用,例如“红色和梨子”

我知道您可以使用具有多个条件的 XLOOKUP,如下所示:

=XLOOKUP($A2&$B2&$C2,Criteria!$A$2:$A$3&Criteria!$B$2:$B$3&Criteria!$C$2:$C$3,Criteria!E$2:E$3,0)

这样做的问题是,它不适用于只需要与单个条件匹配的行,例如我提到的“A1 = A”。

对于“梨汁”部分,类似的东西可以工作,但我不知道如何让所有这些一起工作。

=XLOOKUP(1,--ISNUMBER(SEARCH("pear",Criteria!$C$2:$C$3)),Criteria!E$2:E$3,2)

我也尝试过使用这个,但是“and”函数返回0,因为“--ISNUMBER”函数不返回0和1。

=XLOOKUP(1,AND(--ISNUMBER(SEARCH(Criteria!A2:A3,A14)),--INSNUMBER(SEARCH(Criteria!B2:B3,B14)),--ISNUMBER(SEARCH(Criteria!C2:C3,C14))),Criteria!E2:E3,0)

数据库也在 Power Querry 上,因此如果有更简单的方法来实现它,那就太好了。

excel excel-formula powerquery xlookup
1个回答
0
投票

假设:

  • A1
    :Info1 中要匹配的值
  • B1
    :Info2 中要匹配的值
  • C1
    :Info3 中要匹配的值
  • All_Combos4
    :包含每个值组合的值的表格

要匹配“部分匹配”,假设它们仅出现在

Info3
中,您可以使用以下公式:

=TAKE(
    FILTER(
        All_Combos4,
        (All_Combos4[Info1] = A1) *
            (All_Combos4[Info2] = B1) *
            ISNUMBER(SEARCH(C1, All_Combos4[Info3]))
    ),
    ,
    -4
)
© www.soinside.com 2019 - 2024. All rights reserved.