暂时想到两个方法:
方法一:
需要使用数组了,先将数据进行排序(日期+客户代码),使用函数offset()+if()+match()+countifs()的组合。先选中筛选区的A9单元格,输入函数:=If((row(A9)-8)<=countifs(数据源!C:C,筛选区!K4,数据源!E:E,筛选区!K5),offset(数据源!B1,if(match(筛选区!K4,数据源!C:C,0)<match(筛选区!K5,数据源!E:E,0),match(筛选区!K5,数据源!E:E,0),match(筛选区!K4,数据源!C:C,0))+row(A9)-10,0,1,1),"") 按ctrl+shift+enter组合键输入公式,将A9单元格填充到下方单元格(长度>=符合筛选条件的最大长度),根据字段,将B列-H列进行填充。因为没有数据,所以单元格引用可能会有错误,可以自行调整下哈。
可以达到效果,但有个缺陷:因为筛选区的字段和数据源的字段不完全一致,需要将函数输入多次。
方法二:
使用高级筛选+VBA,完美实现你想要的结果。先看效果:将数据筛选过来后,可以根据需求,把不需要的列进行隐藏。这块内容不太好写,我在网上找了个差不多的讲解视频,你看看:
EXCEL中高级筛选改变条件后立即刷新筛选结果VBA案例解析-Excel实例教学
如果解决了问题,帮忙给个赞和关注哈~