关键字查询是比较常见的场景,今天我们将利用xlookup函数快速查询多关键字或符合多个条件的数据。
如下图所示,左侧是某公司销售产品的数据表,现在需要查询指定生产地和品种的货物销量。

那么这个问题中的两个关键字就是生产地和品种,它们分别对应数据表中的C列“Country of origin”和D列“Category”。
在这种情形下,我们可以称之为多条件查询,即符合指定生产地和品种条件。
下面通过一个动图来看下xlookup公式查询的效果:

作者给两组关键字创建了下拉列表,通过切换下拉列表,来动态查询不同生产地和品种下的销量数据,当没有查询到任一数据时,则返回了“未查询到”的文本内容。
我们知道xlookup函数的基础表达是:
=xlookup(查找值,查询列,返回列)
这是基础且必须的三参数表达式,添加上第4参数未找到值,即能满足上述当未查询到数据时返回某个特定值的效果。
那么当查找值变成了两个、三个,甚至更多的时候,也就是包含多个关键字时,公式该怎么样来表达?是否还能使用这个基础语法表达来写公式?
答案是肯定的!
在excel中,xlookup这个新函数在很多场景中的公式应用都特别直接,没有像offset或index等函数一样进行多层嵌套和组合。
下面作者输入查询公式:
=XLOOKUP(H2&I2,C:C&D:D,F:F,"未查询到")

从公式可见,通过连接符号,将多个关键字连接在一起,且在第参数查询列中进行相应的连接操作。
第3参数返回列甚至为要获取的结果数据列,然后设置第4参数为文本“未查询到”。
xlookup函数的这个表达式写法与match函数类似,将多个关键字连接在一起来进行多条件下的查询。
这是因为当两个或多个关键字连接在一起时,会形成一个新的文本组合,比如中文“语文”和数字“97”,连接在一起就形成新文本“语文97”,那么在xlookup函数的第2参数查询列也进行相应的连接,则两列查询列表也会形成一个新的查询列表,其中完全符合“语文97”这个新查找值文本的数据,就是我们要获取的值。

所以xlookup函数多关键字查询的特点就在于其第1参数和第2参数的合并变化,但我们要注意关键字所在的查询列要相对应起来,否则会出现错误结果。
此外,作者也提醒大家,关键字属于条件的一种,用算式来表示就是等于“=”,也就是将查询列必须包含与该查找值一致的数据;但当需要处理一些其他情形的条件,比如小于或大于某个值,其算式用大于或小于符号来表示,因此查询列中并不一定要包含与查找值一致的数据,所以在这种情形下,此多关键字查询公式就无法达成所需。