Excel - 在 XLOOKUP 中使用条件语句查找行

Excel - Find row with conditional statement in XLOOKUP

我正在尝试使用 XLOOKUP 查找基于用户输入的值。

table 看起来像这样:

Type  Start  End   33    36   42    48
---------------------------------------
4002    1     7   1.17  1.34  1.5  1.84
4002    8     12  1.84  1.67  2.1  3.45

用户选择类型、编号(可以在开始和结束之间)和 33-48

我可以嵌套 XLOOKUP 来指定 3 个条件

=XLOOKUP(*type* & *number* , *typeRange* & *numberRange* ,XLOOKUP(*33-48* , *33-48Range* , *ResultRange* ))

而且我可以找到列之间是否有值

=IF(AND(*number*>=*Start*,*number*<=*End*),TRUE,FALSE)

我可以把两者结合起来吗?数字 1-7 的数据是多余的,我想保持 table 小。

您sort-of可以将它们组合起来。我在 table 中添加了几行,以查看如果您具有不同的类型值和数字值会发生什么情况。那么问题是,如果您使用近似匹配并输入一个像 13 这样超出范围的数字,您最终可能会得到 table 的下一行,这是不正确的。一种方法是使用 Xlookup 中的选项在开始列中搜索 next-smaller-item 并在结束列中搜索 next-larger-item 并查看结果是否匹配:

=IF(XLOOKUP(I2&TEXT(J2,"00"),A2:A7&TEXT(B2:B7,"00"),XLOOKUP(K2,D1:G1,D2:G7),,-1)=XLOOKUP(I2&TEXT(J2,"00"),A2:A7&TEXT(C2:C7,"00"),
XLOOKUP(K2,D1:G1,D2:G7),,1),XLOOKUP(I2&TEXT(J2,"00"),A2:A7&TEXT(C2:C7,"00"),XLOOKUP(K2,D1:G1,D2:G7),,1),"Error")

如果你有一些检查使数字不可能超出范围,那么你可以简化公式:

=XLOOKUP(I2&TEXT(J2,"00"),A2:A7&TEXT(B2:B7,"00"),XLOOKUP(K2,D1:G1,D2:G7),,-1)

=XLOOKUP(I2&TEXT(J2,"00"),A2:A7&TEXT(C2:C7,"00"),XLOOKUP(K2,D1:G1,D2:G7),,1)