老板发给你一份销售流水明细,让你制作一个查询小系统,当输入完订单号时,下面的详细信息全部显示出来 因为同一个订单号,里面包含的信息是多条,而且不确定几行数据,所以这是一个一对多查询匹配问题 我们用传统的vlooup公式,和新版本的filter函数公式来进行解决,看你更喜欢用哪个 1、vlookup公式如果要用vlookup公式来查找,我们需要在原表先建立一个辅助列,然后输入的公式是: =B2&COUNTIFS($B$2:B2,B2) 通过累计计数函数,统计每个订单号出现的次数 然后再用原文本,连接当前文本出现的次数 所以1001,分别变成了10011,10012,10013 这样构建的辅助列就是不重复的数据,然后我们在查询结果的位置,输入公式: =IFERROR(VLOOKUP($H$2&ROW(A1),$A:$E,3,0),'') row函数是返回单元格是第几行,所以row(a1)的结果就是数字1 和查找值h2单元格连接起来,其实就是查找10011,1001第一次出现的结果 当下位填充的时候,row(b1),就会变成2,查找10012的结果 从而实现了一对多查找 后面的数量和金额,我们只需要将原来的公式第3参数,改成第4列,第5列就可以得到结果了: 可以将公式多下拉几行,然后我们更新订单号时,订单数据就能自动更新出结果了: vlookup公式实现一对多,还是偏复杂,需要基础知识全面组合应用 2、新公式filter在最新的版本里面,出来了新函数公式filter,它是一个筛选函数,使用用法: =filter(筛选的数据,筛选条件,查找不到时返回什么结果) 第3参数可省略 所以这里,我们只需要输入的公式是: =FILTER(B:D,A:A=G2) 筛选的数据区域是b:d列,筛选条件是a列里面,查找g2单元格的值 通过Fliter公式,简单2个参数,就解决了如此复杂的一对多查找问题 关于这个小技巧,你学会了么?动手试试吧! |
|