如下图所示,有6个月的销售数据分别保存在不同的工作表中。现在的要求是将这6个月中销量大于等于10000的数据全部查询出来,并存放在【多表查询】这个工作表中。结果如动图所示。像这种问题,用函数做就比较麻烦了。最好用pq或者vba代码。下面分享下vba代码的方法。思路其实和单表一对多查询的方法一样,都是用条件和E列的每个销量逐一比较,如果销量大于等于10000(符合条件),那么就把这一行的数据收集起来。全部比较完后,把收集好的符合条件的数据输出到单元格中就可以了。二者所不同的只是多了一层对工作表的循环。有些小伙伴可能对vba不感冒,只对函数感兴趣。下面我就提供一种函数的方法,供参考。在【多表查询】工作表的A2单元格输入下面的公式,按ctrl+shift+enter三键,右拉下拉填充,直到出现空白为止。
=IFERROR(OFFSET(INDIRECT(TEXT(SMALL(IF(N(INDIRECT(COLUMN($A:$F)&"月!e"&ROW(INDIRECT("2:"&MAX(COUNTIF(INDIRECT(ROW($1:$6)&"月!e:e"),"<>"))))))>=10000,COLUMN($A:$F)/1%%+ROW(INDIRECT("2:"&MAX(COUNTIF(INDIRECT(ROW($1:$6)&"月!e:e"),"<>"))))),ROW(A1)),"0月\!r0000c1"),),,COLUMN(A1)-1),"")
函数公式还是比较复杂的,主要用到多维引用和加权法。这种问题不推荐使用函数。
https://pan.baidu.com/s/1R9SHLvGS8M-9FQwvd5Z8MQ