老板发给你一份销售流水明细,让你制作一个查询小系统,当输入完订单号时,下面的详细信息全部显示出来
因为同一个订单号,里面包含的信息是多条,而且不确定几行数据,所以这是一个一对多查询匹配问题
我们用传统的vlooup公式,和新版本的filter函数公式来进行解决,看你更喜欢用哪个
如果要用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公式实现一对多,还是偏复杂,需要基础知识全面组合应用
在最新的版本里面,出来了新函数公式filter,它是一个筛选函数,使用用法:
=filter(筛选的数据,筛选条件,查找不到时返回什么结果)
第3参数可省略
所以这里,我们只需要输入的公式是:
=FILTER(B:D,A:A=G2)
筛选的数据区域是b:d列,筛选条件是a列里面,查找g2单元格的值
通过Fliter公式,简单2个参数,就解决了如此复杂的一对多查找问题
关于这个小技巧,你学会了么?动手试试吧!
联系客服