高级筛选是Excel中一个十分实用的操作技能。 但似乎高级筛选并不讨喜,或许是高级筛选并不如函数一样实时更新数据。 下面的例子,应用辅助列,完成三个条件的高级筛选。 先看原始的表格数据: 原始表格数据 要求:根据品牌名称,日期,筛选符合条件的数据。 结果表格 辅助列公式是: =IF(AND(A2>=Sheet2!$F$4,Sheet1!$A2<=Sheet2!$H$4,B2=Sheet2!$F$3)*1,COUNTIF(H$1:H1,'>0') 1,'')解释: 1、AND(A2>=Sheet2!$F$4,Sheet1!$A2<=Sheet2!$H$4,B2=Sheet2!$F$3) Sheet2!$F$4是开始日期,Sheet2!$H$4是结束日期,Sheet2!$F$3是汽车品牌名称。 三个条件同时满足,则公式返回True。 2、AND(A2>=Sheet2!$F$4,Sheet1!$A2<=Sheet2!$H$4,B2=Sheet2!$F$3)*1 True*1=1,Excel的True和False也是可以参与运算的。 3、COUNTIF(H$1:H1,'>0') 1 计算辅助列单元格区间内大于0的个数,因为数据如满足三个条件则返回 1,COUNTIF起到的是累加的作用。 H$1:H1是错位计数,后面 1,是保证第1条符合条件的数据被计数,因第1条符合条件的数据时COUNTIF(H$1:H1,'>0')=0。 4、当不满足条件的时候,if函数就返回空白(辅助列空白)。 5、提取数据的公式: =IFERROR(INDEX(Sheet1!A$2:A$19,MATCH(ROW(A1),Sheet1!$H$2:$H$19,0),),'')条件1 换个条件 不符合条件 同样是iferror index match的组合,效率也是杠杠的。 需要注意的是,日期列要更改单元格格式为日期。 若需要下载Excel练习文件,请看下面链接: 链接: https://pan.baidu.com/s/1MTsT-Pdjrqda723-Cp3UUw 密码: jvkd |
|