if({1,0}, 列A,列B),这个公式表达的是什么意思,用在vlookup中的逻辑是什么?

 我来答
1975qjm
高粉答主

推荐于2017-09-16 · 关注我不会让你失望
知道大有可为答主
回答量:2万
采纳率:74%
帮助的人:7194万
展开全部
if({1,0}, 列A,列B)
这样的公式会形成一个数组,即符合1的条件为真值,符合0的条件为假值,形成 {列A;列B} 的数组

如,假设
A1至A5的内容为10,50,45,78,67.
B1至B5的内容为A,B,C,D,E,
在C1单元格写入C,
要求D1单元格写入VLOOKUP函数公式返回B列中与C1单元格相同数据同一行A列的值

则,
D1单元格写入公式
=VLOOKUP(C1,IF({1,0},B1:B5,A1:A5),2,0)
运算后就形成了如下公式
=VLOOKUP(C1,{"A","B","C","D","E";10,50,45,78,67},2,0)
因为C1值为C,符合第一组数组中(即分号前的{"A","B","C","D","E})的第三项,所以返回第二组中(即分号后的{10,50,45,78,67})的第三项45,因此公式得出值为45

其实这样的公式比较烦锁,不如用INDEX和MATCH组合函数方便

=INDEX(A1:A5,MATCH(C1,B1:B5,0))
追问
很清楚,非常感谢
jaxxcyhc3bea9
2022-12-22 · TA获得超过8852个赞
知道大有可为答主
回答量:4564
采纳率:75%
帮助的人:1195万
展开全部
此公式中含有数组{1,0},所以是一个数组公式。数组公式的特点是数组中的每一个元素都要参加运算,因此这个公式可以理解成if(1,列A,列B)及if(0,列A,列B)两次运算的结果。第一次运算的结果是列A,第二次运算的结果是列B,所以他们组合后的结果是列A列B组成的二维数组。当然公式中的列A列B是可以用任意列替换的。if函数的这种用法主要是为了得到一个重组后的,可以和工作表原列序不一致的内存虚拟数组。
这个写法通常是用在vlookup函数中,用于搜索 查找列 之前的某一列的对应值,即从右到左的查找。
如 A列为序号列,B列为姓名列,D列是要查找的姓名,需要通过查找姓名得到序号,可在E1中输入"=vlookup(d1,if({1,0},B:B,A:A),2,0)"
当然若换用index与match两个函数的组合,更容易理解。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式