excel要查特定日期的打卡数据,两个条件的筛选,用vlookup老是不对,求高人帮忙

2025-04-03 06:32:00
推荐回答(1个)
回答1:

首先,你的vlookup第一参数我看不懂,if那句也看不明白

如果你非得纠结执着于vlookup,用如下公式验证

=VLOOKUP(B2&C2,IF({1,0},Sheet1!B:B&Sheet1!C:C,Sheet1!D:D),2,0)

因为涉及到数组的运用,录入完公式,要按CTRL+SHIFT+ENTER三键

整个公式逻辑思路如下:

  • 外层vlookup函数作为主体函数,首列单条件查找

  • 由于题主的问题涉及到两个条件,那么我们可以将两个条件用连接符连接一起作为一个单条件,这样就可以运用vlookup的查找方式了

  • 既然条件已经构造好,剩下的关键就是如何构造一个查找区域的问题了。此处运用的是if函数套用常量数组{1,0}去构造一个新的数组,在逻辑中,非零的值是真,零值为假,因此,,IF函数中1返回真的区域Sheet1!B:B&Sheet1!C:C(表sheet1中B列连接C的组合字符),0返回假的区域Sheet1!D:D。这个构造数组由Sheet1!B:B&Sheet1!C:C和Sheet1!D:D各单元格实际内容组成

  • 针对if函数构造的数组,举一个具体的实例加深理解:假设B1:D3单元格内容如下图

    那么B1:B3&C1:C3连接后结果是{"A1";"B2";"C3"};D1:D3写入内存数组是{"aa";"bb";"cc"};再返回到函数if({1,0},B1:B3&C1:C3,D1:D3),IF函数中1返回真{"A1";"B2";"C3"},0返回假{"aa";"bb";"cc"},最终构造了一个新的数组{"A1","aa";"B2","bb";"C3","cc"}

多条件查找,其实大可绕道lookup,道宽且直,建议用如下公式

=LOOKUP(1,0/(B2=Sheet1!B:B)*(C2=Sheet1!C:C),Sheet1!D:D)