我确信这可能有点令人困惑,但我有一个与第一张图片类似的数据库。
我想要做的是,根据“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 上,因此如果有更简单的方法来实现它,那就太好了。
假设:
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
)