excel 如何返回一个特定的文本,如果一个单元格包含特定的文本使用XLOOKUP?

jtw3ybtb  于 2023-05-08  发布在  其他
关注(0)|答案(1)|浏览(259)

如何将相应的文本从E列返回到B列。我知道这是可能的,通过以下查找公式:

但是,由于Excel现在有XLOOKUP,并且它能够执行任何查找功能,请解释如何使用XLOOKUP进行相同的操作。

fnvucqvd

fnvucqvd1#

LOOKUP Function的语法如下:
LOOKUP(lookup_value,lookup_vector,[result_vector])
XLOOKUP Function的语法如下:
XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])
因此,您应该能够看到XLOOKUP的前3个参数对应于LOOKUP的三个参数,主要区别是result_vector/return_array不再是可选的。如果它从LOOKUP中被省略,那么你需要用lookup_vector/lookup_array的副本(如果你的数组的维度之一是1),或者用lookup_vector/lookup_array的最后一行/列来替换它。
(For如果数组的维度都不为1,这将提供更多的控制-LOOKUP将根据数组的宽度是否大于高度在水平或垂直查找之间交换。这就是为什么HLOOKUPVLOOKUP是首选的部分原因,尤其是对于动态大小的阵列)
因此,您可能认为您应该能够将=LOOKUP(..)更改为=XLOOKUP(..)并完成它。除非你错了
问题出在这3个新的可选参数上--特别是第二个,match_mode。它有4个可能的值:

match_mode(可选)指定匹配类型:

0 -完全匹配。如果未找到,则返回#N/A。这是默认值。
-1 -完全匹配。如果没有找到,则返回下一个较小的项。
1 -完全匹配。如果没有找到,则返回下一个较大的项。
2 -通配符匹配,其中 *,?,并且~具有special meaning
你看,LOOKUP的功能是“如果没有找到,返回下一个较小的项目”,而XLOOKUP默认为“如果没有找到,返回#N/A”。
这意味着,为了使XLOOKUP像以前的LOOKUP一样运行,您需要指定-1match_mode。就像这样:

=XLOOKUP(1.1,1/COUNTIF(A1,"*"&$D$1:$D$3&"*"),$E$1:$E$3,,-1)

(You可能还注意到,我没有指定if_not_found,因此它保持为默认值-这是通过在它们之间放置2个逗号来完成的)

相关问题