优秀的编程知识分享平台

网站首页 > 技术文章 正文

VLOOKUP公式中这个{1,0}是什么神仙用法

nanyue 2025-01-18 22:56:41 技术文章 2 ℃

众所周知,VLOOKUP只能从左往右查。

如果一定要从右往左查,也不是不行:

=VLOOKUP(D3,IF({1,0},B2:B9,A2:A9),2,0)

这个方法的核心逻辑是将原始数据中的两列位置对换,构建出一个新的数据区域作为VLOOKUP的第二参数。

要理解其中的奥秘需要具备除了函数本身之外的两个知识点:

【逻辑值】:逻辑判断时数字0等同于FALSE,非0数字等同于TRUE.

【数组】:花括号{}表征数组数据。


首先来看简单的IF公式:

=IF(1,B2:B9,)

这里的数字1等同于TRUE,将其设置为任何不等于0的数字或TRUE,效果一样。

IF的第一参数为TRUE,无条件输出第二参数B2:B9.

同理,可以用数字0代表FALSE:

=IF(0,,A2:A9)

IF的第一参数设置为FASLE,无条件输出第三参数A2:A9.

把以上两个公式整合:

=IF({1,0},B2:B9,A2:A9)

把数组{1,0}设置为第一参数,IF先执行其中的1,输出第二参数B2:B9;再执行0,输出A2:A9,最终得到如图所示的数组。

当然,这里的{1,0}有很多设置方式:{999,0},{TRUE,FALSE},{TRUE,0}……

把IF公式嵌入到VLOOKUP中作为它的第二参数,即表示在这个区域中进行查找。


CHOOSE函数也可以实现这样的数据区域构建,甚至更加灵活强大,例如构建下图所示的三列数据:

=CHOOSE({1,2,3},C2:C9,B2:B9,A2:A9)

再嵌入到VLOOKUP中查找苦瓜的单价和数量:

=VLOOKUP(E2,CHOOSE({1,2,3},C2:C9,B2:B9,A2:A9),{2,3},0)

Tags:

最近发表
标签列表