mongo 多条件筛选_高逼格,Excel多条件智能筛选,这样的模板你值得拥有

智能筛选

筛选功能相信大家再熟悉不过了,动动小手指,勾选需要的字段即可完成。

但是当同时筛选多个字段的时候,就略微繁琐,需要一个个去下拉字段选择,这里我做了个小模板,只要鼠标点击几下,一键筛选即可。

d45911c5d90cebc3c871ed96d38f0f70.png

动态展示如下

81b059b9434b1221e763a2b05fa153ab.gif

一是多列筛选中,需要筛选哪个字段,选中哪个字段,底色被填充,突出显示;

二是点击筛选按钮,底部数据即被筛选出来。

整体来说操作感更强,可视化效果更明显

制作过程

这个模板主要是用VBA实现的,一共三段代码

第一段最为重要,用来实现筛选框底部颜色的填充,当鼠标选择发生变化时,判断鼠标的位置,如果位于筛选框区域,这对相应的单元格底色进行填充,并在Excel固定单元格保存选中的数据;

5473a64f0285dcafdcf6703b01a9c081.png

注意点:

1、此段代码是在当前工作表Sheet1下输入的,且在代码输入框的顶部选择【Worksheet】与【SelectionChange】,表示此段代码只在当前工作表中有效,且当选择发生变化时运行;

2、3段IF语句,负责判断鼠标是否选中筛选区域,如果选中,则将对应区域底色填充,并将选中的单元格内容保存到固定单元格【M2:O2】,便于下部筛选(将这三个单元格的颜色设置为白色)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)If Target.Row = 2 And Target.Column >= 2 And Target.Column <= 8 And Target.Text <> "" And Target.Count = 1 Then    Range("B2:h2").Interior.ThemeColor = xlThemeColorLight2    Range("B2:h2").Interior.TintAndShade = 0.799981688894314    Cells(Target.Row, Target.Column).Interior.Color = 15773696    Cells(2, 13) = Target.Text   End IfIf Target.Row = 4 And Target.Column >= 2 And Target.Column <= 3 And Target.Text <> "" And Target.Count = 1 Then    Range("B4:C4").Interior.ThemeColor = xlThemeColorLight2    Range("B4:C4").Interior.TintAndShade = 0.799981688894314    Cells(Target.Row, Target.Column).Interior.Color = 15773696    Cells(2, 14) = Target.TextEnd IfIf Target.Row = 6 And Target.Column >= 2 And Target.Column <= 3 And Target.Count = 1 Then    Range("B6:C6").Interior.ThemeColor = xlThemeColorLight2    Range("B6:C6").Interior.TintAndShade = 0.799981688894314    Cells(Target.Row, Target.Column).Interior.Color = 15773696    Cells(2, 15) = Target.TextEnd IfEnd Sub

第二段代码主要是实现筛选的功能。

f912a7ba1cb56e4dc8172caa751d7d51.png

筛选

注意点:

Field:=1,代表表格的第一列删选为o2;

Field:=2,代表表格的第二列删选为m2;

Field:=3,代表表格的第三列删选为n2;

o2/n2/m2是通过第一段代码获得,在表格中,字体白色处理;

Sub 筛选()    a = Cells(Rows.Count, 1).End(xlUp).Row    Range("B9").Select    Selection.AutoFilter    ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=1, Criteria1:=Range("o2")    ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=2, Criteria1:=Range("m2")    ActiveSheet.Range("$A$8:$W$" & a).AutoFilter Field:=3, Criteria1:=Range("n2")    Range("A1").SelectEnd Sub

第三段代码比较简单,取消筛选,选中表格任一单元格,Selection.AutoFilter取消筛选即可。

24b2449a85fdf48465bd086a52c35bf5.png

取消筛选

Sub 清除筛选()    Range("B9").Select    Selection.AutoFilterEnd Sub

小结

也许有些小伙伴会觉得这个模板看着比较鸡肋,但在某些场景下还是比较实用的,适合多部门分享查看,给人耳目一新的感觉。

需要模板的小伙伴可在后台私我,发送“筛选”二字即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值