夜雨聆风学习资料网

ARTICLE · 1337570

学会Excel做出这么高级的查询表,5000的工资肯定不能少!

学会Excel做出这么高级的查询表,5000的工资肯定不能少!

点亮☆星标,不错过精彩分享



有小伙伴在后台问了这么一个问题:她有一个有很多列标题的表,一共有36列标题5000行数据,表格太长了,数据也很大。
现在,想做一个查询表,根据自己的需求,自定义查询条件,自定义标题显示,怎么做呢?
就是:我不想显示那么多标题,我想显示哪个就显示哪个。
比如有36列标题,我只想显示其中7个标题,但这7个标题是哪7个,不确定,根据我的需求和心情来!
这个需求,不确定的地方很多,一般用VBA做,比较好做,但她不用VBA,想用公式做,方便她后续修改维护。
今天我们来看一下,如何实现这个需求,如果你学会了,就去找老板涨工资,5000的工资哪里还压得住你。
接下来,我们一步步讲解。这个需求用公式做比较麻烦,需要做一些准备工作
第一,准备一个标题设置区域
可以新建一个表,也可以设置一个单元格区域。主要目的是让我们可以自由选择要显示的标题,和自定义标题要显示的格式。
要显示哪个标题,就在对应标题上打勾,并设置标题要显示的格式:文本、日期、数字;
第二,设置查询表格式结构
我们设置两个查询条件:
    1、任意选择查询的字段;
在第一步勾选显示的标题中,选择要查询的标题,比如民族,在关键字的地方,输入民族关键字,比如:汉;
2、写动态显示标题公式
在A5单元格,写公式:
=LET(fld,标题设置!A2:A29,chk,标题设置!B2:B29,k,IF($C$3="",0,COUNTIF(chk,"√")),IF(k=0,"",INDEX(FILTER(fld,chk="√"),SEQUENCE(1,k))))
只显示打勾的标题,不勾选的,不显示。同时,可以用条件格式,设置查询字段的高亮显示。
3、设置查询筛选公式
这个步骤是最复杂最难的地方。
在第一个数据显示单元格A6,写以下公式:
=LET(  f,标题设置!A2:A29,  c,标题设置!B2:B29,  m,标题设置!C2:C29,  sel,FILTER(f,c="√"),  k,ROWS(sel),  fmt,FILTER(m,c="√"),  s,员工信息表!$A$2:$AB$91,  h,CHOOSEROWS(员工信息表!$A$1:$AB$1,1),  fc,XMATCH($C$3,h),  hit,FILTER(s,ISNUMBER(SEARCH($F$3,CHOOSECOLS(s,fc))),"无记录"),  d,CHOOSECOLS(hit&"",XMATCH(sel,h)),  IF($C$3="","",    IF(AND(ROWS(hit)=1,INDEX(hit,1,1)="无记录"),"无记录",      MAKEARRAY(ROWS(d),k,LAMBDA(r,j,        IF(INDEX(d,r,j)="","",          IF(INDEX(fmt,j)="日期",TEXT(INDEX(d,r,j),"yyyy-m-d"),            IF(INDEX(fmt,j)="数字",TEXT(INDEX(d,r,j),"0.00"),              INDEX(d,r,j)            )          )        )      ))    )  ))
你学会了吗?
若需要教程示例文件,关注公式号,发消息关键字:标题筛选
视频演示:

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料