EXCEL中如何多条件筛选数据?

EXCEL中如何多条件筛选数据?,第1张

'自定义公式-按ALT+F11-插入-模块-粘贴代码-将表格另存为启用宏的格式(xlsm)

Function 分值(a As Range, b As Range)

For i = 1 To a.Columns.Count

If a.Cells(1, i) <>"" Then

If b.Cells(1, 1) = Left(a.Cells(1, i), 1) * 1 Then

For j = 1 To a.Rows.Count

If b.Cells(1, 2) <a.Cells(j, i) And b.Cells(1, 2) >a.Cells(j + 1, i) Then 分值 = a.Cells(j, 1)

Next

End If

End If

Next

If 分值 = "分值" Then 分值 = 1

End Function

你这样循环查询是不科学了,上万记录会慢死,应该一次性读出所有数据,然后去填写:

'建立已经字典,把数据库内容存入字典

set daList = CreateObject("Scripting.Dictionary")

rs.Open "select DA,B1,S1,M1,St1,R1 from `A`", conn

Do While Not rs.EOF()

     daList.Add rs(1), Array(rs(2),rs(3),rs(4),rs(5),rs(6))

     rs.MoveNext

Loop

'填写EXCEL表

for i=2 to Cells(rows.count, "D").End(xlUp).Row

    da = Cells(i,"D")

    if daList.Exists(da) then

        Cells(i,"E").resize(5,1) = daList(da)

    else

        Cells(i,"E").resize(5,1) = Empty

    end if

next i

excel多个条件筛选是数据分析的常见应用。其中可以使用高级筛选多条件字段设置、函数公式、VBA来实现多条件筛选。下面我就用以上三种 方法 来教你们怎么使用excel多条件筛选功能。

excel多个条件筛选的方法

excel多个条件筛选的方法一:用高级筛选多条件完成多个条件筛选

下图是有两张工作表,“表一”是数据源,“表二”如下图。案例要求:筛选“表一”中性别为“女”或者工资大于6000的记录,将筛选结果放在“表二”中。

下面是具体的 *** 作步骤:

1.首先激活“表二”,此表为当前活动工作表。

2.建立条件区域:在空白地方,比如E1:F3单元格输入条件。

提示:因为筛选条件是“或”的关系,只要性别为“女”或者工资大于6000都可以,因此E2放置一个条件,F3放置另外一个条件。如果将F3的条件放在F2,两个条件就是并列关系,只有同时满足两个条件才可以。

3.单击“数据”——“排序和筛选”——“高级”,打开“高级筛选”对话框,按照如下图设置,单击“确定”,即可完成。

excel多个条件筛选的方法二: 使用函数公式实现excel多个条件筛选

“表二”工作表的A2单元格输入公式:=INDEX(表一!B:B,SMALL(IF(((表一!$C$2:$C$16="女")+(表一!$G$2:$G$16>6000)),ROW($2:$16),4^8),ROW(A1)))&"",按ctrl+shfit+enter三键结束,然后下来,直到出现空白为止。

至于具体公式解释,可以参考 文章 : Excel 用函数公式筛选数据的方法http://www.ittribalwo.com/show.asp?id=959

excel多个条件筛选的方法三: 使用VBA代码实现excel多个条件筛选

按ALT+F11,打开VBE编辑器,插入——模块,然后复制粘贴下面的代码,按F5键运行。

Sub 多个条件筛选()

Range("A2:C65536").ClearContents

Sheets("表一").Range("A1:G16").AdvancedFilter Action:=xlFilterCopy, _

CriteriaRange:=Range("E1:F3"), CopyToRange:=Range("表二!A1:C1"), Unique:= _

False

End Sub

思路提示:可以将方法一介绍的高级筛选录制宏 *** 作一遍,然后再适当修改代码得到。

其中:Sheets("表一").Range("A1:G16"):表示查找的范围。

CriteriaRange:=Range("E1:F3"):表示查询条件,包括字段名称。

CopyToRange:=Range("表二!A1:C1"):表示结果的保存范围,包括字段名称。

>>>下一页更多精彩“excel用if函数多个条件筛选的教程”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10006661.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存