文档库 最新最全的文档下载
当前位置:文档库 › Excel VBA_ADO+SQL实例集锦

Excel VBA_ADO+SQL实例集锦

Excel VBA_ADO+SQL实例集锦
Excel VBA_ADO+SQL实例集锦

1, 包含空值的记录f13 is null

‘https://www.wendangku.net/doc/7d11294778.html,/dispbbs.asp?boardID=5&ID=46032&page=1

‘订单生成系统.xls

‘f6-第6列,f2-第2列

Private Sub Worksheet_Activate()

On Error Resume Next

Dim x As Object, yy As Object, sql As String

Set x = CreateObject("ADODB.Connection")

x.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=no;';Data Source=" & ActiveWorkbook.FullName

sql = "select f6,f2,f3,f4,f5,f7,f13,f24 -f25 from [sheet1$] where f24 -f25'C3' or f13 is null)" ‘不等于字符串用‘C3’包含空值用is null

Set yy = x.Execute(sql)

Range("a:h").ClearContents

Range("a1:h1") = Array("编号", "品名", "规格", "产地", "单位", "件装", "属性", "计划") ‘表头另外赋值

[a2].CopyFromRecordset yy

Set yy = Nothing

Set x = Nothing

End Sub

2,用ADO Connection对象查询

Option Explicit

Public conn As ADODB.Connection

Sub Myquery()

Dim sConnect$, sql1$

Set conn = CreateObject("adodb.connection")

Sheets("sheet1").Cells.ClearContents

sConnect = "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;" & _

"Data Source=" & ThisWorkbook.Path & "\" & https://www.wendangku.net/doc/7d11294778.html, sql1 = "select 物料代码,物料描述,属性,单位from [物料代码表$] where 属性= '采购' " '表格名要用[$],条件部分用单引号''

ThisWorkbook.Sheets("sheet1").Cells(2, 1).CopyFromRecordset conn.Execute(sql1) 'copy 后面紧接SQL查询执行语句

With Sheets("sheet1")

.Range("A1") = "物料代码" '建立表头

.Range("B1") = "物料描述"

.Range("C1") = "属性"

.Range("D1") = "单位"

End With

'conn.Close '可不用每次关闭数据源的连接

End Sub

3,用记录集执行单个查询

Option Explicit

Sub Myquery()

Dim rd As ADODB.Recordset

Dim i%, j%, k%, sConnect$, sql1$, str$

Set rd = New ADODB.Recordset

str = "外协"

Sheets("sheet1").Cells.ClearContents

sConnect = "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;" & _

"Data Source=" & ThisWorkbook.Path & "\" & https://www.wendangku.net/doc/7d11294778.html,

'conn.Open sConnect '打开数据源

sql1 = "select 物料代码,物料描述,属性,单位from [物料代码表$] where 属性= '采购' " '表格名要用[$],条件部分用单引号''

rd.Open sql1, sConnect, adOpenForwardOnly, adLockReadOnly

ThisWorkbook.Sheets("sheet1").Cells(2, 1).CopyFromRecordset rd

With Sheets("sheet1")

.Range("A1") = "物料代码" '建立表头

.Range("B1") = "物料描述"

.Range("C1") = "属性"

.Range("D1") = "单位"

End With

rd.Close '关闭记录集

Set rd=Nothing '关闭

End Sub

4,引用一列,如A列

‘引用单列、单行、单个单元格.xls

'引用一列,如A列

Sub onecolumn()

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\1.xls"

Sql = "select f1 from [sheet1$]"

Cells.Clear

[a1].CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Set Conn = Nothing

End Sub

Sub dgzbhz()

'2008/12/2

‘https://www.wendangku.net/doc/7d11294778.html,/viewthread.php?tid=4912&pid=82252&page=1&extra=page%3D1#pid8 2252

‘Book12021.xls

‘由于分表的第2列表头是“金额”,不用它,改为“一中”,所以要用hdr=no无标题,拷贝时把第一行表头归零,所以最后要加表头。

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

[b2:d4] = ""

arr = Array("一中", "二中", "三中")

For i = 0 To UBound(arr)

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\" & arr(i) & ".xls"

Sql = "select f2 from [sheet1$]"

Cells(1, i + 2).CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Next i

Set Conn = Nothing

[b1:d1] = arr

End Sub

‘test1203.xls EH

‘有标题不用hdr=no,列名用编码文字,可往下连续取数据。

Private Function cnn() As Object

Set cnn = CreateObject("ADODB.Connection")

cnn.Open "Provider=Microsoft.Jet.Oledb.4.0;Extended Properties ='Excel 8.0;HDR=no';Data Source= " & ThisWorkbook.FullName

End Function

Sub onecolumn()

Dim Sql$, Sht1 As Worksheet, Sht As Worksheet

Dim n

Set Sht1 = Sheets("汇总")

Sht1.Activate

‘Set Conn = CreateObject("Adodb.Connection")

‘Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0';data source=" & ThisWorkbook.FullName

For Each Sht In Sheets

If https://www.wendangku.net/doc/7d11294778.html, <> "汇总" Then

Sql = "select 编码from [" & https://www.wendangku.net/doc/7d11294778.html, & "$]"

n = [b65536].End(xlUp).Row + 1

Sht1.Cells(n, 2).CopyFromRecordset Cnn.Execute(Sql)

End If

Next Sht

Cnn.Close

Set Cnn = Nothing

End Sub

5,引用一行,如第1行

'引用一

Sub onerow()

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\1.xls"

Sql = "select * from [sheet1$a1:iv1]"

Cells.Clear

[a1].CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Set Conn = Nothing

End Sub

6,引用一个单元格,如k1 单元格

‘2013-3-14

‘https://www.wendangku.net/doc/7d11294778.html,/thread-992260-1-1.html

Dim Sql$, Conn

Sub testit()

Dim myPath$, mvvar, i&, myName$, Myr&

Sheet1.Activate

[a4:h500].ClearContents

Set Conn = CreateObject("Adodb.Connection")

myPath = ThisWorkbook.Path & "\"

myName = https://www.wendangku.net/doc/7d11294778.html,

mvvar = FileList(myPath)

If TypeName(mvvar) <> "Boolean" Then

For i = LBound(mvvar) To UBound(mvvar)

If mvvar(i) <> myName Then

Conn.Open "provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;hdr=no';data source=" & ThisWorkbook.Path & "\" & mvvar(i)

Sql = "select * from [sheet1$h6:h6]"

Myr = [a65536].End(xlUp).Row + 1

If Myr < 4 Then Myr = 4

Cells(Myr, 3).CopyFromRecordset Conn.Execute(Sql)

Cells(Myr, 1) = Myr - 3

Cells(Myr, 2) = Left(mvvar(i), Len(mvvar(i)) - 4)

Sql = "select * from [sheet1$c14:c14]"

Cells(Myr, 4).CopyFromRecordset Conn.Execute(Sql)

Sql = "select * from [sheet1$c15:c15]"

Cells(Myr, 5).CopyFromRecordset Conn.Execute(Sql)

Sql = "select * from [sheet1$c16:c16]"

Cells(Myr, 6).CopyFromRecordset Conn.Execute(Sql)

Conn.Close

End If

Next

Else

MsgBox "没有找到文件。"

End If

Myr = Myr + 1

Cells(Myr, 2) = "合计"

Cells(Myr, 3).Formula = "=sum(r4c:r[-1]c)"

Cells(Myr, 3).AutoFill Cells(Myr, 3).Resize(1, 5)

End Sub

Function FileList(fldr, Optional fltr As String = "*.xls") As Variant Dim sTemp As String, sHldr As String

If Right$(fldr, 1) <> "\" Then fldr = fldr & "\"

sTemp = Dir(fldr & fltr)

If sTemp = "" Then

FileList = False

Exit Function

End If

Do

sHldr = Dir

If sHldr = "" Then Exit Do

sTemp = sTemp & "|" & sHldr

Loop

FileList = Split(sTemp, "|")

End Function

'引用一个单元格,如k1 单元格

Sub onecell()

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\1.xls"

Sql = "select * from [sheet1$k1:k1]"

Cells.Clear

[a1].CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Set Conn = Nothing

End Sub

Private Sub CommandButton1_Click()

'要求从“数据.xlt”中获取Sheet1.range("C6")中的数据,并赋给一变量

Dim Sql$, Conn, rs, str1

Set Conn = CreateObject("Adodb.Connection")

Set rs = CreateObject("adodb.recordset")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\数据.xlt"

Sql = "select * from [sheet1$c6:c6]"

rs.Open (Sql), Conn, 1, 1

aa = rs.getrows

str1 = aa(0, 0)

MsgBox str1

Conn.Close

Set Conn = Nothing

End Sub

7,计算A1+B1

'计算A1+B1

Sub A1_Plus_b1()

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\1.xls"

Sql = "select f1+f2 from [sheet1$a1:b1]"

Cells.Clear

[a1].CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Set Conn = Nothing

End Sub

8,计算A1+A2

'计算A1+A2

Sub sumcolumn()

Dim Sql$

Set Conn = CreateObject("Adodb.Connection")

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & ThisWorkbook.Path & "\1.xls"

Sql = "select sum(f1) from [sheet1$a1:a2]"

Cells.Clear

[a1].CopyFromRecordset Conn.Execute(Sql)

Conn.Close

Set Conn = Nothing

End Sub

进销存汇总0407.xls

根据不重复的“产品代码”,汇总数量和金额

Sql = "select 产品代码,sum(进货数量),sum(进货金额) from [进货$] group by 产品代码"

如果没有group by ,就出错,显示“产品代码”不能汇总。

Sql = "select 产品代码,' ',sum(进货数量),进货单价,sum(进货金额) from [进货$] group by 产品代码, 进货单价" '第2列为空,单价也成组

两表查询

Sql = "select B.产品代码,' ',sum(B.进货数量),B.进货单价,sum(B.进货金额),sum(C.销售数量),C.销售单价,sum(C.销售金额) from [进货$] as B,[销售$] as C where B.产品代码=C.产品代码group by B.产品代码,B.进货单价,C.销售单价"

三表查询

Sql = "select A.产品代码,A.名称,sum(B.进货数量),B.进货单价,sum(B.进货金额),sum(C.销售数量),C.销售单价,sum(C.销售金额) from [产品资料$] as A,[进货$] as B,[销售$] as C where A.产品代码=B.产品代码and B.产品代码=C.产品代码group by A.产品代码,A.名称,B.进货单价,C.销售单价"

Sql = "select A.产品代码,A.名称,sum(B.进货数量),B.进货单价,sum(B.进货金额),sum(C.销售数量),C.销售单价,sum(C.销售金额),sum(C.销售数量)*(C.销售单价-B.进货单价),sum(B.进货数量)-sum(C.销售数量) from [产品资料$] as A,[进货$] as B,[销售$] as C where A.产品代码=B.产品代码and B.产品代码=C.产品代码group by A.产品代码,A.名称,B.进货单价,C.销售单价"

9,导出工具by:sgrshh29

‘ado导出工具.xls

‘https://www.wendangku.net/doc/7d11294778.html,/dispbbs.asp?boardid=2&replyid=1298919&id=313282&page=1&skin =0&Star=3

Public Sub OutputTxt(strPath As String, strRange As String, LRow As Long)

On Error Resume Next

Dim strSheetName As String

Dim strsql As String

Dim strTxtname As String

Dim strFolder As String

Dim cnn As Object

Dim rs As Object

strTxtname = Left(strPath, InStr(strPath, ".") - 1) & ".txt"

strFolder = sNPath & LRow - 4

If Dir(strFolder & "\" & strTxtname) <> "" Then Kill strFolder & "\" & strTxtname

Set cnn = CreateObject("adodb.connection")

With cnn

.Provider = "Microsoft.Jet.OLEDB.4.0"

.ConnectionString = "Data Source=" & sPath & "\" & strPath & ";Extended Properties=Excel 8.0;"

.CursorLocation = adUseClient

.Open

End With

Set rs = cnn.OpenSchema(adSchemaTables)

Do Until rs.EOF

If Right(rs.Fields("TABLE_NAME").Value, 1) = "$" Then

strSheetName = Mid(rs.Fields("TABLE_NAME").V alue, 1, Len(rs.Fields("TABLE_NAME").Value) - 1)

Exit Do

End If

rs.MoveNext

Loop

rs.Close

Set rs = Nothing

strsql = "SELECT * INTO [" & strTxtname & "] IN '" & strFolder & "' 'Text;' FROM" _

& " [" & strSheetName & "$" & strRange & "]"

cnn.Execute (strsql)

cnn.Close

Set cnn = Nothing

End Sub

10,多表汇总

‘08发票.xls

Sub 分类汇总()

Range("A1:N5000").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

sq1 = "select 编号,日期,发票号,客户,案类,案号,律师,业务量,合作人,项目,金额,收入,应收,备注from [1月$]"

sq2 = "select 编号,日期,发票号,客户,案类,案号,律师,业务量,合作人,项目,金额,收入,应收,备注from [2月$]"

sq3 = "select 编号,日期,发票号,客户,案类,案号,律师,业务量,合作人,项目,金额,收入,应收,备注from [3月$]"

sq4 = sq1 & " UNION ALL " & sq2 & " UNION ALL " & sq3

sq5 = "select 编号,日期,发票号,客户,案类,案号,律师,业务量,合作人,项目,SUM(金额),sum(收入),sum(应收),备注from (" & sq4 & ") GROUP BY 编号,日期,发票号,客户,案类,案号,律师,业务量,合作人,项目,备注order by 发票号"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(sq5)

conn.Close

arr = Array("编号", "日期", "发票号", "客户", "案类", "案号", "律师", "业务量", "合作人", "项目", "金额", "收入", "应收", "备注")

[a1:n1] = arr

Set conn = Nothing

Columns("B:B").Select

Selection.NumberFormatLocal = "yyyy-mm-dd"

Range("A2").Select

End Sub

11,两工作表查询(ADODB_SQL、按时间段、按客户名)

‘查询.xls (自编宏之五)

‘Excel论坛

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim Sql As String

Dim wbName As String, i&, aa$, bb$, cc$, dd$, ee$, Myr%, j%

Dim Sht1 As Worksheet, Sht2 As Worksheet

Sub anrqcx0130()

Set Sht1 = Worksheets("查询表")

Set Sht2 = Worksheets("明细表")

Sht1.Activate

Range("c12:i29").ClearContents

dd = [e6]

ee = [f6]

wbName = ThisWorkbook.FullName

Set cnn = New ADODB.Connection

With cnn

.Provider = "microsoft.jet.oledb.4.0"

.ConnectionString = "Extended Properties=Excel 8.0;" _

& "Data Source=" & wbName

.Open

End With

Sql = "select 日期,客户名称,品名及规格,数量,单价,金额,备注from [明细表$] where (日期between #" & dd & "# and #" & ee & "# )"

Set rs = New ADODB.Recordset

rs.Open Sql, cnn, adOpenKeyset, adLockOptimistic

Sht1.Cells(12, 3).CopyFromRecordset rs

[i9].Formula = "=sum(h12:h29)"

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

Set ws = Nothing

End Sub

Sub ankhcx0130()

Set Sht1 = Worksheets("查询表")

Set Sht2 = Worksheets("明细表")

Sht1.Activate

Range("c12:i29").ClearContents

aa = [e8]

wbName = ThisWorkbook.FullName

Set cnn = New ADODB.Connection

With cnn

.Provider = "microsoft.jet.oledb.4.0"

.ConnectionString = "Extended Properties=Excel 8.0;" _

& "Data Source=" & wbName

.Open

End With

Sql = "select 日期,客户名称,品名及规格,数量,单价,金额,备注from [明细表$] where 客户名称='" & aa & "'"

Set rs = New ADODB.Recordset

rs.Open Sql, cnn, adOpenKeyset, adLockOptimistic

Sht1.Cells(12, 3).CopyFromRecordset rs

[i9].Formula = "=sum(h12:h29)"

rs.Close

Set rs = Nothing

cnn.Close

Set cnn = Nothing

Set ws = Nothing

End Sub

12,多条件、有区间统计(ADO-Sql)

‘AAA1.xls (自编宏之四)

Sub tj1203()

'https://www.wendangku.net/doc/7d11294778.html,/dispbbs.asp?boardID=5&ID=32274&page=1

Dim cnn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim Sql As String

Dim wbName As String, i&, aa$, bb$, cc$, dd$, ee$, Myr%, j%

Dim ws As Worksheet, Sht1 As Worksheet

Set ws = Worksheets("Sheet3")

Set Sht1 = Worksheets("Sheet2")

Sht1.Activate

Myr = [a65536].End(xlUp).Row

dd = [c1]

ee = [d1]

wbName = ThisWorkbook.FullName

'建立与当前工作簿的连接

Set cnn = New ADODB.Connection

With cnn

.Provider = "microsoft.jet.oledb.4.0"

.ConnectionString = "Extended Properties=Excel 8.0;" _

& "Data Source=" & wbName

.Open

End With

For i = 4 To Myr

aa = Cells(i, 1)

For j = 2 To 22

bb = Cells(3, j)

cc = Cells(3, j + 1)

If j = 3 Or j = 6 Or j = 8 Or j = 12 Or j = 14 Or j = 16 Or j = 18 Or j = 20 Then GoTo 100

If j = 4 Or j = 9 Or j = 10 Or j = 21 Or j = 22 Then

Sql = "select sum(价税合计) from [数据$] where 客户名称='" & aa & "' and (开票日期between #" & dd & "# and #" & ee & "#) and (存货编码= " & bb & " )"

Else

Sql = "select sum(价税合计) from [数据$] where 客户名称='" & aa & "' and (开票日期between #" & dd & "# and #" & ee & "#) and (存货编码between " & bb & " and " & cc & ")"

End If

Set rs = New ADODB.Recordset

rs.Open Sql, cnn, adOpenKeyset, adLockOptimistic

Sht1.Cells(i, j).CopyFromRecordset rs

rs.Close

Set rs = Nothing

100:

Next j

Next i

cnn.Close

Set cnn = Nothing

Set ws = Nothing

End Sub

13,不打开工作簿汇总(ADODB)

‘https://www.wendangku.net/doc/7d11294778.html,/thread-394891-1-1.html

‘汇总.xls (自编宏之四)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

If Target.Column <> 1 Then Exit Sub

If Target.Offset(0, 1) <> "" Then Exit Sub

Call huiz1122

End Sub

Sub huiz1122()

Dim f As String, n As Long, Myr%, nm

Dim conn As ADODB.Connection

Dim Sht As Worksheet

Application.ScreenUpdating = False

Set Sht = Sheets("Sheet1")

Sht.Activate

Myr = [a65536].End(xlUp).Row

If Myr > 1 Then

nm = Cells(Myr, 1)

On Error Resume Next

f = nm & ".xls"

Set conn = New ADODB.Connection

conn.Open "dsn=excel files;dbq=" & ThisWorkbook.Path & "\" & f

Cells(Myr, 1).CopyFromRecordset conn.Execute("select * from [Sheet1$] where 工号=" & nm & "")

conn.Close

Set conn = Nothing

Else

MsgBox "请输入工号!"

End If

Application.ScreenUpdating = True

End Sub

14,不打开工作簿多表提取数据(ADODB)

By:兰色幻想

Sub 合并数据()

Dim Y As Long

Y = [a65536].End(xlUp).Row + 1

Range("A2:G" & Y).ClearContents

Set Conn = CreateObject("adodb.connection") '(1)设置对象

For X = 1 To 4

Conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.Path & "/" & X & "月.xls"

Sql = "select * from [" & X & "月$" & "]"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset Conn.Execute(Sql)

Conn.Close '关闭链接

Next X

Set Conn = Nothing '释放对象变量

End Sub

15,筛选工作表

By:兰色幻想

‘工作表记录的模糊筛选.xls

Sub 筛选以A开头的记录()

Range("A2:C100").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sq1 = "select * from [Sheet1$] WHERE 型号Like 'A%'"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sq1)

conn.Close

Set conn = Nothing

End Sub

Sub 筛选非A开头的记录()

Range("A2:C100").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sq1 = "select * from [Sheet1$] WHERE 型号NOT Like 'A%'"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sq1)

conn.Close

Set conn = Nothing

End Sub

Sub 筛选以C至G开头的记录()

Range("A2:C100").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sq1 = "select * from [Sheet1$] WHERE 型号Like '[C-G]%'"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sq1)

conn.Close

Set conn = Nothing

End Sub

Sub 筛选以A开头字符长度为5的记录()

Range("A2:C100").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sq1 = "select * from [Sheet1$] WHERE 型号Like 'A____'"

[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sq1)

conn.Close

Set conn = Nothing

End Sub

16,筛选汇总工作表

‘Book0421.xls

Sub sxhz0421()

Dim Sht1 As Worksheet, Sht2 As Worksheet, Sht3 As Worksheet

Dim conn As ADODB.Connection

Dim rs As ADODB.Recordset

Dim Sql As String, sql1$

Dim wbName As String, i&, aa$, bb$, cc$, dd$, ee$, Myr%, j%

Set Sht1 = Worksheets("Sheet1")

Set Sht2 = Worksheets("Sheet2")

Set Sht3 = Worksheets("Sheet3")

Sht1.Activate

Sht2.Range("A1:d5000").ClearContents

Sht3.Range("A1:d5000").ClearContents

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sql = "select plu,txdate,txno,sum(net_amount) from [Sheet1$] WHERE plu<> '9973000178' group by plu,txdate,txno"

Sht2.[a1:d1] = Array("plu", "txdate", "txno", "net_amount")

Sht2.[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sql)

sql1 = "select plu,txdate,txno,sum(net_amount) from [Sheet1$] WHERE plu= '9973000178' group by plu,txdate,txno"

Sht3.[a1:d1] = Array("plu", "txdate", "txno", "net_amount")

Sht3.[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(sql1)

conn.Close

Set conn = Nothing

End Sub

17,按日期段按款号不同工作簿取数(Dir)

‘SQL跨簿跨表取数.xls

Sub 按日期按款号不同工作簿取数()

Dim sh As String

Dim sql$, conn As New ADODB.Connection

Dim ks$, js$

Const nm = "出仓总查询" '查询需操作的文件夹

Application.ScreenUpdating = False

ks = [d2]: js = [f2]

Range("a4:af65536").ClearContents

sh = Dir(ThisWorkbook.Path & "\出仓数据库\*.xls") '数据库文件夹路径

While Not Len(sh) = 0

aa = Left(sh, Len(sh) - 4)

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.Path & "\出仓数据库\" & sh

sql = "select * from [" & aa & "$a2:af5000] where 款号简称=" & [b2] & "And (日期between #" & ks & "# and #" & js & "#) " '月出仓表示工作表名款号简称表示字段名[a65536].End(xlUp).Offset(1).CopyFromRecordset conn.Execute(sql)

conn.Close

sh = Dir()

Wend

Application.ScreenUpdating = True

End Sub

18,纯文本查询(字段名用变量)

‘文本字段在A2单元格,查询文本在B2单元格

Sub 纯文本查询()

Dim sh As String

Dim sql$, conn As New ADODB.Connection

Dim Zdm$, czz$

Const nm = "出仓总查询" '查询需操作的文件夹

Application.ScreenUpdating = False

Zdm = [a2]: czz = Trim([b2])

Range("a4:af65536").ClearContents

sh = Dir(ThisWorkbook.Path & "\出仓数据库\*.xls") '数据库文件夹路径

While Not Len(sh) = 0

aa = Left(sh, Len(sh) - 4)

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.Path & "\出仓数据库\" & sh

sql = "select * from [" & aa & "$a2:af5000] where " & Zdm & "='" & czz & "' "

[a65536].End(xlUp).Offset(1).CopyFromRecordset conn.Execute(sql)

conn.Close

sh = Dir()

Wend

Application.ScreenUpdating = True

End Sub

19,两表查询

‘EP Book0422.xls

Sub sxhz0422()

Dim Sht2 As Worksheet, Sht3 As Worksheet

Dim conn As ADODB.Connection

Dim Sql As String, sql1$, Myr1&, Myr2&

Set Sht2 = Worksheets("Sheet2")

Set Sht3 = Worksheets("Sheet3")

Sht2.Activate

Myr1 = [a65536].End(xlUp).Row

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sql = "select *,B.* from [Sheet2$] as A , [Sheet3$] as B where A.txno=B.txno " ‘B记录在左,A记录在右,并列显示

‘Sql = "select * from [Sheet2$] as A , [Sheet3$] as B where A.txno=B.txno "‘A记录在左,B记录在右,并列显示

‘Sql = "select * from [Sheet2$] as A left join [Sheet3$] as B on A.txno=B.txno " ‘在A记录右边,并列显示B相同txno的记录

Sht2.[a65536].End(xlUp).Offset(1, 0).CopyFromRecordset conn.Execute(Sql)

Myr2 = [a65536].End(xlUp).Row

Range(Cells(Myr1 + 1, 5), Cells(Myr2, 8)).ClearContents

[a1].Select

conn.Close

Set conn = Nothing

End Sub

20,工资汇总(表格名变量、查询值变量Like)

‘EH help.xls

Sub sxhz0422()

Dim Sht2 As Worksheet, Sht3 As Worksheet

Dim conn As ADODB.Connection

Dim Sql As String, sql1$, Myr1&, Myr2&

Set Sht2 = Worksheets("生成月工资")

Sht2.Activate

Range("a3:d500").ClearContents

cj = Left([d1], 2) '车间

yf = [b1] '月份

Set Sht3 = Worksheets(cj)

Myr1 = [a65536].End(xlUp).Row

Set conn = CreateObject("adodb.connection")

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName

Sql = "select 操作员,sum(本日工资),sum(废品损失),sum(设备工作时间) from [" & cj & "$] where 日期like '" & yf & "%'group by 操作员"

Sht2.[a3].CopyFromRecordset conn.Execute(Sql)

Myr2 = [a65536].End(xlUp).Row

[a1].Select

conn.Close

Set conn = Nothing

End Sub

21,查询(f6,f7)

‘订单生成系统0427.xls

‘https://www.wendangku.net/doc/7d11294778.html,/dispbbs.asp?boardID=5&ID=50456&page=1

Private Sub Worksheet_Activate()

On Error Resume Next

Dim x As Object, yy As Object, sql As String

Set x = CreateObject("ADODB.Connection")

x.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=no;';Data Source=" & ActiveWorkbook.FullName

sql = "select f6,f2,f3,f4,f7,f13,f17/2,f24-f25,(f24-f25)\(f17/60),f17/60*75-f24,round(((f17-f24)/f7)/5,)*5 from [原始数据$] where (f24-f25)'C3'or f13 is null) order by (f24-f25)/(f17/60)"

Set yy = x.Execute(sql)

Range("a:l").ClearContents

Range("a1:l1") = Array("编号", "品名", "规格", "产地", "件装", "属性", "月销售", "库存", "周转", "计划", "件数", "实际")

[a2].CopyFromRecordset yy

Set yy = Nothing

Set x = Nothing

End Sub

注:SQL语句中使用f4,f6的话,前面Properties='Excel 8.0;hdr=no’中要加hdr=no。22,SQL不包含很多内容问题

‘https://www.wendangku.net/doc/7d11294778.html,/dispbbs.asp?boardID=2&ID=319199&page=1&px=0

1、"select * from [sheet2$] where ff not in(" &

join(application.transpose(worksheets("sheet1").range("a2:a10").value,",") & ")"

2、select * from [sheet2$] where ff not in(select ff from [sheet1$a1:a10])

23,在记录最后新增一条记录(RST.AddNew)

‘精英在线2008-12-09

Private Sub CommandButton1_Click()

'新增记录

Dim ArrValues(0 To 13)

Dim ArrFields

ArrFields = Array("乡镇名称", "行政村名", "路线编码", "路线名称", "起点名称", "终点名称", "里程", "路面类型", "路面宽度", "行政等级", "技术等级", "建设计划", "计划年限", "建设情况") Set cnn = CreateObject("Adodb.Connection")

Set rst = CreateObject("Adodb.Recordset")

Stpath = ThisWorkbook.Path & Application.PathSeparator & "农村公路数据库.mdb"

cnn.Provider = "Microsoft.Jet.OLEDB.4.0"

cnn.Open "Data Source =" & Stpath & ";Jet OLEDB:Database Password=" & ""

Strsql = "Select * From 公路信息where 路线编码='" & TextBox3.Value & "'"

rst.Open Strsql, cnn, adopendynamic, adlockoptimistic

For x = 0 To 13

ArrValues(x) = Me.Controls("textbox" & x + 1).Text

Next x

rst.addnew ArrFields, ArrValues

End Sub

24,不打开的多工作簿汇总(FileSearch)

‘https://www.wendangku.net/doc/7d11294778.html,/viewthread.php?tid=376533&highlight=%B6%E0%B9%A4%D7%F7 %B2%BE%BB%E3%D7%DC

Sub pldrwb1203()

'汇总.xls

Dim myFs As FileSearch, Sht1 As Worksheet, Sht As Worksheet

Dim myPath As String, Filename$

Dim i As Long, n As Long,aa,nm$,na%

Dim conn As Object, yy As Object, sql As String

Set Sht1 = ActiveSheet

Sht1.[a2:c1000] = ""

Set conn = CreateObject("Adodb.Connection")

Set myFs = Application.FileSearch

myPath = ThisWorkbook.Path

With myFs

.NewSearch

.LookIn = myPath

.FileType = msoFileTypeNoteItem

.Filename = "*.xls"

If .Execute(SortBy:=msoSortByFileName) > 0 Then

n = .FoundFiles.Count

ReDim myfile(1 To n) As String

For i = 1 To n

myfile(i) = .FoundFiles(i)

Filename = myfile(i)

aa = InStrRev(Filename, "\")

nm = Right(Filename, Len(Filename) - aa) '带后缀的Excel文件名If nm = https://www.wendangku.net/doc/7d11294778.html, Then GoTo 100

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0';data source=" & Filename

sql = "select A.单位名称,B.单位人员数量,C.单位领导数量from [表一$] as A,[表二$] as B,[表三$] as C"

na = Sht1.[a65536].End(xlUp).Row + 1

Sht1.Cells(na, 1).CopyFromRecordset conn.Execute(sql)

conn.Close

100: Next i

Set conn = Nothing

Else

MsgBox "该文件夹里没有任何文件"

End If

End With

[a1].Select

Set myFs = Nothing

End Sub

精英在线

‘https://www.wendangku.net/doc/7d11294778.html,/viewthread.php?tid=5381&page=1#pid91432

Sub pldrwb1213()

'汇总表.xls

Dim myFs As FileSearch, Sht1 As Worksheet, Sht As Worksheet

Dim myPath As String, Filename$

Dim i As Long, n As Long, aa, nm$, na%

Dim conn As Object, yy As Object, sql As String

Set Sht1 = ActiveSheet

Sht1.[g7:ac25] = ""

Set conn = CreateObject("Adodb.Connection")

Set myFs = Application.FileSearch

myPath = ThisWorkbook.Path

With myFs

.NewSearch

.LookIn = myPath

.FileType = msoFileTypeNoteItem

.Filename = "*.xls"

If .Execute(SortBy:=msoSortByFileName) > 0 Then

n = .FoundFiles.Count

ReDim myfile(1 To n) As String

For i = 1 To n

myfile(i) = .FoundFiles(i)

Filename = myfile(i)

aa = InStrRev(Filename, "\")

nm = Right(Filename, Len(Filename) - aa) '带后缀的Excel文件名

If nm = https://www.wendangku.net/doc/7d11294778.html, Then GoTo 100

conn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=no';data source=" & Filename

nm = Left(nm, Len(nm) - 4)

sql = "select * from [" & nm & "$g7:ac7] "

nm = Left(nm, Len(nm) - 3)

Set r1 = Sht1.Range("b:b").Find(nm, , , xlPart)

na = r1.Row

Sht1.Cells(na, 7).CopyFromRecordset conn.Execute(sql)

conn.Close

Excel高级筛选条件区域设置

Excel高级筛选条件区域设置 learning Excel中的“自动筛选”功能大家也许并不陌生,对于条件简单的筛选操作,它基本可以应付。但是,最后符合条件的结果只能显示的在原有的数据表格中,不符合条件的将自动隐藏。若要筛选含有指定关键字的记录,并且将结果显示在两个表中进行数据比对或其他情况,“自动筛选”就有些捉襟见肘了。“傻瓜相机”毕竟功能有限,那么就让我们来试试“高级相机”吧!熟练运用“高级筛选”,无论条件多么复杂,都能一网筛尽。人力资源部的小李最近在做员工表格统计时,就尝到了甜头。 一、特定字符一步筛 现在在这份表格中,小李要查找姓“陈”的所有员工记录,他想了想,很快获得了结果。 如图1所示,在数据区域外的任一单元格(如B17)中输入被筛选的字段名称“姓名”,在紧靠其下方的B18单元格中输入筛选条件“陈*”。然后依次单击“数据→筛选→高级筛选”命令,在弹出的“高级筛选”对话框,选择筛选方式中的“将筛选结果复制到其他位置”单选按钮。将“列表区域”设置为“$A$1:$F$15”,“条件区域”设置为“$B$17:$B$18”,“复制到”设置为“$A$20:$F$20”,单击“确定”按钮,系统便自动将符合条件的记录筛选出来,并复制到指定的从A20开始的单元格区域中(如图2所示)。

小提示:如果在图1的B18单元格中输入筛选条件“*陈”,可筛选名字中含有“陈”字的员工记录(即“陈”字不一定是名字中的第一个字,该字可在名字中的任意位置)。 二、空白数据巧妙筛 接下来小李还需要查找没有职称员工的记录,如何进行呢? 如图3所示,他先在数据区域外的任一单元格(如E17)中输入被筛选的字段名称“职称”,然后在紧靠其下方的E18单元格中输入筛选条件“<>*”。 下一步,打开“高级筛选→将筛选结果复制到其他位置”,设置好“列表区域”、“条件区域”和

Excel数据筛选的技巧

Excel数据筛选的技巧 对于Office一族来说,最常用也是最困扰他们的工作有两个:一个是在浩如烟海的众多数据中,如何快速找到和检索出所需的信息;另一个则是如何轻松得到分类汇总的结果和统计报表数据。下面,我们将向大家介绍用Excel对数据信息进行筛选、检索的一些操作技巧和经验。 日前,在北京召开了第29届奥林匹克运动盛会,来北京参赛旅游的中外宾客络绎不绝,为了更好的了解北京的特色小吃和各式美食,所以在网络中非常流行一个“吃在北京”的文档。该文档是用Excel制作的,文档的标题行中从“店名”到“菜系”,从“地址”到“电话”,从“招牌菜”到“人均消费”可谓一应俱全。为了查询方便,该数据表还设置了“自动筛选”功能,可通过标题右侧的下拉列表来对“餐厅”、“菜系”或“消费价格”等按照条件进行筛选查看,如图1所示 这种通过下拉列表设置条件的筛选在Excel中被称作“自动筛选”,这种筛选可以将列表中的数据直接当作条件,也可以通过“自定义”条件的设置进行某个字段“与”、“或”查询,由于自动筛选的应用较为简单,在此,不再做赘述和讲解。 现在,我们要探讨的是自动筛选的兄弟——高级筛选。虽然自动筛选或高级筛选,在Excel中都可以起到根据条件查询数据的作用,是数据分析必不可少的工具和手段,但是高级筛选才是最好的数据查询方式。因为它不仅包含了所有自动筛选的操作,而且还有很多自动筛选望尘莫及的功能,如:多字段复杂条件的“与”、“或”关系查询;将查询结果复制到其他表;实现条件的“模糊查询”;与“宏”和“窗体控件”结合等等。 多字段复杂条件的“与”、“或”关系查询并将结果复制到其他数据表 用Excel的“自动筛选”功能来对数据表进行筛选查询,若对多字段设置了筛

利用Excel制作学生成绩表

利用Excel制作学生成绩表 每到学期结束时,教师的一项重要工作就是要统计学生的成绩,在电脑逐步普及的今天,我们就把这项繁杂的工作交给Excel去自动完成吧。 本节任务:制作一个学生成绩自动统计表,可以自动统计最高分、最低分、总分、平均分、名次、三率等数据信息,还可以根据自定条件以不同的颜色显示分数。自动统计表做好以后还可以保存成模板,以便以后使用。 涉及术语:单元格、工作表、工作薄、引用(相对/绝对)、自动填充、排序、条件格式等。涉及函数:AVERAGE、COUNTIF 、MAX、MIN、RANK、SUM 任务一:统计最高分、最低分、总分、平均分、名次、三率等数据信息。 1、启动Excel,同时选中A1至L1单元格,按“格式”工具条上的“合并及居中”按钮,将其合并成一个单元格,然后输入统计表的标题“高一(1)班期末成绩统计表”(参见图1)。[img,553,353]file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image1.png 2、根据统计表的格式,将有关列标题及相关内容输入到相应的单元格中(参见图1)。 提示:其中学号的输入可通过“填充柄”快速完成。 3、选中K3单元格,输入公式:=SUM(C3:J3),用于计算第一位学生的总分。 4、选中L3单元格,输入公式:=RANK(K3,$K$3:$K$12),计算出第一位学生总分成绩的名次(此处,假定共有10位学生)。 5、同时选中K3和L3单元格,将鼠标移至L3单元格右下角的成“细十字”状时(通常称这种状态为“填充柄”状态),按住左键向下拖拉至L12单元格,完成其他学生的总分及名次的统计处理工作。 6、分别选中C16、C17单元格,输入公式:=MAX(C3:C12)和=MIN(C3:C12),用于统计“语文”学科的最高分和最低分。 7、选中C18单元格,输入公式:=AVERAGE(C3:C12),用于统计“语文”学科的平均分。 注意:如果成绩表中没有输入成绩时,这一公式将显示出一个错误的值“#DIV/0!”,这个错误代码将在数据输入后消失。 8、选中C19单元格,输入公式:=SUM(C3:C12),用于统计“语文”学科的总分。 9、选中C20单元格,输入公式:=COUNTIF(C3:C12,">=80")/COUNTIF(C3:C12,">0"),用于统计“语文”学科的优秀率。同样在C21内输入相应公式统计良好率。 10、同时选中C16至C21单元格,用“填充柄”将上述公式复制到D16至J21单元格中,完成其它学科及总分的最高分、最低分、平均分、总分、优秀率和良好率的统计工作。 至此,一个基本的成绩统计表制作完成,下面我们来进一步处理一下。 任务二:根据自定条件以不同的颜色显示分数。 (在此例中,让每科分数高于等于平均分的分数显示蓝色,低于的则显示红色) 11、选中C3单元格,执行“格式、条件格式”命令,打开“条件格式”对话框(如图2),在中间方框选中“大于或等于”,在右侧的方框中输入公式:=C18 (平均分所在单元格),然后按“格式”按钮,打开“单元格格式”对话框,将字体颜色设置为“蓝色”。再按“添加”按钮,仿照上面的操作,设置小于平均分的分数字体颜色为“红色”(参见图2)。 注意:经过这样的设置后,当学生的“语文”成绩大于或等于平均分时,显示蓝色,反之显示红色。[img,539,240]file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image2.png 12、再次选中C3单元格,按“格式”工具条上的“格式刷”按钮,然后在C3至J12单元格区域上拖拉一遍,将上述条件格式复制到相应的区域中,完成其他学科及总分的条件格式设置工作。 把学生的成绩填入到表格中试试看,效果不错吧。

Excel高级筛选功能详解

一、用前说明及单条件查询。 1、使用前的说明: 首先在数据表格最上面一行插入几行空白行作为条件设置区域,条件行和数据行尽量不要交叉,以免影响查看效果。 2、录入筛选条件: 例如:查找出所有图号“AJ207”记录,则在先前插入的空白行的第一行(暂定为H1)录入“图号”,在H2中录入“AJ207”,这里的双引号不用录入(下同)。 3、显示筛选结果: 点击菜单数据>筛选>高级筛选,点击列表区域,将要进行参与筛选的所有数据都进行选择,在条件区域将H1和H2进行选择,最后点击确定就能显示出所有图号为“AJ207”的记录了。(如下图) 二、区间查询 例如:查找出发货日期在“2006-8-5”到“2006-8-16”所有记录。同上面设置条件时一样在H1和I1中录入“发货日期”在H2和I2中分别录入“>=2006-8-5”“<=2006-8-16”,然后再和上面使用高级筛选一样设置列表区域和条件区域,这里条件区域要将H1、H2、I1和I2都选上。然后再看看结果,是不是你想要的数据呢。(如下图)

三、查找不符合记录 例如:查找出应收数量和实收数量不同的记录。还是和上面设置条件一样,在H2中录入公式“=D6<>E6”,这里要说明一下在H1中可以不录入任何数据,但在选择条件区域时不能不选择,否则将不能对数据做出正确筛选。(如下图) 四、查找数字 如:在图号中查找与“8”有关的记录。在H2中录入公式“=ISNUMBER(FIND("8",C6))”,H1中还是不用录入数据,然后再进行列表区域和条件区域选择,最后会显示出我们所要的结果来。(如下图)

五、查找空白 例如:在图号中查找为空白的记录。在H2中录入“=C6= ""”,H1中不用录入任何数据,然后再进行列表区域和条件区域选择,最后会显示出我们所要的结果来。(如下图) 六、查找排在前几位的记录 例如:在应收数量中查找应收到数量的前五个记录。在H2中录入“=D6>=LARGE($D$6:$D$264,5)”,H1中不用录入任何数据,然后再进行列表区域和条件区域选择,最后会显示出我们所要的结果来。(如下图)

智用Excel高效分析学生成绩

智用Excel高效分析学生成绩 智用Excel高效分析学生成绩 学生成绩的统计分析是学校重要且枯燥烦琐的工作,市面上有许多相关的成绩管理系统,有学校不惜重金购买来提高处理成绩的效率。然而,此种成绩管理系统普遍存在以下两大缺陷:系统编程人员缺少教学工作方面的经验,而且各校对学生成绩的统计要求各不相同,设计出来的系统很难满足众家之需求;容易出现诸多问题,校方难以自我解决,只能联系专业人员前来救援,远水救近火,难免影响成绩统计的进度。 俗话说得好:“自力更生,丰衣足食。”本人经过摸索,利用大众软件Excel设计了一个全校成绩自动统计的Excel模板,只需在“设置”工作表中初始化考试名称,在“成绩”工作表中导入各考生的班级、姓名、学号和各科成绩,即可在其他工作表中自动统计学校领导、班主任、任课老师所需要的学生成绩分析结果,非常方便。下面笔者将作具体介绍,以期抛砖引玉,与读者朋友一起学习和探讨。 一、学生成绩录入 成绩录入是统计分析的基础,但录入时常会遇到两个问题。 1.有时多科成绩需同时录入,倘若各科分别录在不同的Excel文件中,之后的拼接工作将十分烦琐而且容易出错,若录在同一文件中则同时只能录入一科成绩,降低了效率。针对这个问题,本人通过共享Excel工作簿来解决。具体操作步骤如下:选择Excel软件“工具”菜单中的“共享工作簿”,在窗口中选择“允许多用户同时编辑”,这样就可以在多台电脑上同时在这个Excel文件中录入成绩了,而且互不影响。 2.由于粗心,有时会输入一些让人哭笑不得的成绩,如8978分、七月九日等。为避免这类错误的出现,我们可以设置成绩录入区的数据有效性。只要在Excel菜单中选择“数据”—“有效性”,设置有效性条件为0到100的整数即可,如果输入的成绩超出这个范围,系统就会报错。

《Excel2003电子表格中高级筛选》教学设计

《Excel 2003高级筛选》教学设计 一、教材分析 本课选自安徽省中等职业学校《计算机应用基础》教程。本教材体现“以学生为主体,以就业为导向,以能力为本位,以促进学生可持续发展为目标”的教学理念,面向全体学生,注重知识的宽度和广度,具有时代性、实用性和针对性,将为中等职业学校学生的专业学习、继续教育、终身教育和自主发展打下坚实的基础。 本节课取自第5章电子表格Excel2003中的数据筛选,在学习本节课之前,学生已经初步掌握了工作表的创建及编辑,数据清单的概念和记录单的使用,掌握了记录的排序和自动筛选,力求以信息处理为主线,从一个个学生感兴趣的实用处理任务出发展开教学,引导学生由简到繁、由易到难地动手实践,去完成相关任务,在完成任务的过程中,适时地了解有关的概念与思想,掌握相应的操作方法。 二、学生分析 学习对象是高一的学生,已经初步掌握了工作表的创建及编辑,数据清单的概念和记录单的使用,掌握了记录的排序和自动筛选,已具备一定的知识积累和较丰富的计算机使用经验,能够对相关的问题进行思索、分析和解决,但在传统的教育影响下,不善于思考、发现问题,缺乏合作协作和自主学习能力,同时对Excel高级筛选的相关功能与操作比较陌生,基础相对欠缺。 三、教学手段:采用课件演示,多媒体广播系统等现代化教学手段 四、教学目标: 1.知识目标:掌握高级筛选能解决实际问题。 2.能力目标:通过完成高级筛选的操作,培养学生的分析问题能力和解决问题能力。 3.情感目标:通过小组协作自主完成任务的过程培养学生的小组合作精神、自主学习能力。 五、教学重点: 1、高级筛选的条件设置。 2、解决高级筛选中出现的“执行非法操作”的错误的问题? 六、教学难点: 1、如何设置好高级筛选的条件? 2、如何解决高级筛选中出现的“执行非法操作”的错误的问题? 七、教学方法及设计: 1、采用讲授、讨论、任务驱动、实践、演示和自主学习相结合的教学模式。 2、教师首先播放视频,将学生带进高级筛选的环境,引导学生自学高级筛选的方法与技巧。在学生具有一定的操作经验后,教师再通过任务驱动分层引导学生正确使用高级筛选。最后补充高级筛选中出现的“执行非法操作”的错误问题怎么去解决。

利用EXCEL创建学生成绩动态统计表l

利用EXCEL创建学生成绩动态统计表 江苏省镇江中学张尤嘉(212017) 在平时教学中,教师需经常对学生的学习成绩进行统计和分析。实践表明:人工统计工作量较大,且效率非常低。而使用EXCEL强大的数据统计功能会使上述繁杂的工作大大简化,取得事半功倍的效果。现通过创建一张成绩动态分析表的实例介绍一种虽繁但“傻”的创建方法,供不太熟悉计算机知识的教师参考。 一、创建基本工作区 1.打开EXCEL后,其自动建立了三个空工作表(sheet1. sheet2. sheet3)。 2.选择sheet.1工作表为当前工作区。 二、创建统计表框架 1.选中A1单元格后,在其中输入“***班级**――**学年度第*学期学生成绩表”。 2.选中A2单元格后,在其中输入“学号”。 3.选中B2单元格后,在其中输入“姓名”。 4.选中C2单元格后,在其中输入“语文”。 5.选中D2单元格后,在其中输入“语文成绩名次”。 6.选中E2单元格后,在其中输入“语文标准分”。 7.选中F2单元格后,在其中输入“语文标准分名次”。 8.选中G2单元格后,在其中输入“数学”。 9.选中H2单元格后,在其中输入“数学成绩名次”。 10. 选中I2单元格后,在其中输入“数学标准分”。 11. 选中J2单元格后,在其中输入“数学标准分名次”。 12.选中K2单元格后,在其中输入“个人总分”。 13.选中L2单元格后,在其中输入“个人总分名次”。 14.选中M2单元格后,在其中输入“个人总标准分”。 15.选中N2单元格后,在其中输入“个人总标准分名次”。 16.选中O2单元格后,在其中输入“个人平均分”。 17.选中P2单元格后,在其中输入“个人平均分名次”。 18.分别选中A3-A56单元格后,在其中分别(可利用自动填充功能)输入五十四位同学 的学号。 19.分别选中B3-B56单元格后,在其中分别输入五十四位同学的姓名。 20.选中B57单元格后,在其中输入“班级总分”。 21.选中B58单元格后,在其中输入“班平均分”。 22.选中B59单元格后,在其中输入“班优秀率”。 23.选中B60单元格后,在其中输入“班及格率”。 24.选中B61单元格后,在其中输入“班最高分”。 25.选中B62单元格后,在其中输入“班最低分”。 26.选中B63单元格后,在其中输入“标准差”。 27.选中B64单元格后,在其中输入“离散度”。 28.选中B65单元格后,在其中输入“应考总人数”。 29.选中B66单元格后,在其中输入“实考总人数”。 30.选中B67单元格后,在其中输入“缺考总人数”。

excel的高级筛选功能用法

excel的高级筛选功能用法 一、用前说明及单条件查询。 1、使用前的说明: 首先在数据表格最上面一行插入几行空白行作为条件设置区域,条件行和数据行尽量不要交叉,以免影响查看效果。 2、录入筛选条件: 例如:查找出所有图号“AJ207”记录,则在先前插入的空白行的第一行(暂定为H1)录入“图号”,在H2中录入“AJ207”,这里的双引号不用录入(下同)。 3、显示筛选结果: 点击菜单数据>筛选>高级筛选,点击列表区域,将要进行参与筛选的所有数据都进行选择,在条件区域将H1和H2进行选择,最后点击确定就能显示出所有图号为“AJ207”的记录了。(如下图) 二、区间查询 例如:查找出发货日期在“2006-8-5”到“2006-8-16”所有记录。同上面设置条件时一样在H1和I1中录入“发货日期”在H2和I2中分别录入 “>=2006-8-5”“<=2006-8-16”,然后再和上面使用高级筛选一样设置列表区域和条

件区域,这里条件区域要将H1、H2、I1和I2都选上。然后再看看结果,是不是你想要的数据呢。(如下图) 三、查找不符合记录 例如:查找出应收数量和实收数量不同的记录。还是和上面设置条件一样,在H2中录入公式“=D6<>E6”,这里要说明一下在H1中可以不录入任何数据,但在选择条件区域时不能不选择,否则将不能对数据做出正确筛选。(如下图) 四、查找数字

例如:在图号中查找与“8”有关的记录。在H2中录入公式 “=ISNUMBER(FIND("8",C6))”,H1中还是不用录入数据,然后再进行列表区域和条件区域选择,最后会显示出我们所要的结果来。(如下图) 五、查找空白 例如:在图号中查找为空白的记录。在H2中录入“=C6= ""”,H1中不用录入任何数据,然后再进行列表区域和条件区域选择,最后会显示出我们所要的结果来。(如下图) 六、查找排在前几位的记录

Excel高级筛选技巧

Excel高级筛选技巧 Excel中的“自动筛选”功能大家也许并不陌生,对于条件简单的筛选操作,它基本可以应付。但是,最后符合条件的结果只能显示的在原有的数据表格中,不符合条件的将自动隐藏。若要筛选含有指定关键字的记录,并且将结果显示在两个表中进行数据比对或其他情况,“自动筛选”就有些捉襟见肘了。“傻瓜相机”毕竟功能有限,那么就让我们来试试“高级相机”吧!熟练运用“高级筛选”,无论条件多么复杂,都能一网筛尽。人力资源部的小李最近在做员工表格统计时,就尝到了甜头。 设置筛选条件区 高级筛选的前提是在数据表的空白处设置一个带有标题的条件区域,这个条件区有3个注意要点: ·条件的标题要与数据表的原有标题完全一致; ·多字段间的条件若为“与”关系,则写在一行; ·多字段间的条件若为“或”关系,则写在下一行。 写条件时要遵守的规则是: 1、要在条件区域的第一行写上条件中用到的字段名,比如要筛选数据清单中“年龄”在30岁以上,“学历”为本科的职员,其中“年龄”和“学历”是数据清单中对应列的列名,称作字段名,那么在条件区域的第一行一定是写这两个列的名称(字段名),即“年龄”和“学历”,而且字段名的一定要写在同一行。 2、在字段名行的下方书写筛选条件,条件的数据要和相应的字段在同一列,比如上例中年龄为30岁,则“30”这个数据要写在条件区域中“年龄”所在列,同时“本科”要写在条件区域中“学历”所在的列。 在具体写条件时,我们要分析好条件之间是与关系还是或关系,如果是与关系,这些条件要写到同一行中,如是是或关系,这些条件要写到不同的行中,也就是说不同行的条件表示或关系,同行的条件表示与关系。 一、特定字符一步筛 现在在这份表格中,小李要查找姓“陈”的所有员工记录,他想了想,很快获得了结果。 如图1所示,在数据区域外的任一单元格(如B17)中输入被筛选的字段名称“姓名”,在紧靠其下方的B18单元格中输入筛选条件“陈*”。然后依次单击“数据→筛选→高级筛选”命令,在弹出的“高级筛选”对话框,选择筛选方式中的“将筛选结果复制到其他位置”单选按钮。将“列表区域”设置为“$A$1:$F$15”,“条件区域”设置为“$B$17:$B$18”,“复制到”设置为“$A$20:$F$20”,单击“确定”按钮,系统便自动将符合条件的记录筛选出来,并复制到指定的从A20开始的单元格区域中(如图2所示)。

用Excel的高级筛选比较两个数据表的不同之处

用Excel的高级筛选比较两个数据表的不同之处 来源:IT168作者:佚名编辑:帝国战猪日期:03-20 点击次数:614 Excel筛选数据表 我们工作中经常会遇到这种需求,有两个数据表,想要知道两个表的公共部分和独有部分,高级筛选就可以达到此目的。例如库房里有一个总的件号明细表,今天有一个销售明细表,想要知道今天销售的那些是库房里还有的,哪些是库房里没有的,并分别表示在两个表里,其实就是求出两个表的公共部分,就 可以用高级筛选功能来实现。 图1 Excel高级筛选 实例:如上图1,左方是库房存货,右方是今天销售的货号,想求出两者的公共部分。 步骤一:把光标放在左方数据表的任意单元格,从“数据/筛选/高级筛选”里调出“高级筛选”对话框,并在“数据(列表)区域”和“条件区域”分别如图示填上内容。

步骤二:点击确定按钮得到如下图2所示结果。 图2 Excel表格 步骤三:在库存表的最右一列里填上一个“1”,并把“1”复制到整个表的最右一列。如下图3。 图3 Excel表格步骤四:点击菜单“数据/筛选/全部显示”(2007里是“清除”按钮),使筛选后隐藏的内容显 示出来。如下图4。

图4 Excel高级筛选设置 步骤五:再次调出“高级筛选”对话框,这次把上次的“条件区域”和“数据(列表)区域”互换,填上如上图示的内容,点击确定,得出结果后在右侧的数据区域里写上一个“1”并复制到整列,再点击菜单“数据/筛选/全部显示”(2007里是“清除”按钮),使筛选后隐藏的内容显示出来。 标有“1”的数据行就是两个表的公共部分,没有标“1”的行就是独有部分。 技巧要点: 1、要用于筛选的两个列的标题行内容必需一致,如本例中A列和H列的标题都是“代号”,并且在填写条件时的“数据区域”和“条件区域”里的内容要包含有标题,如本例是“$H$1:$H$6”,而不是“$H$1:$H$6”。 2、为什么要标“1”并复制。因为筛选实际上上是隐藏不符合条件的行,而在隐藏状态下,许多操作都是不行的,所以要取消隐藏,而取消隐藏后,结果就看不到了,所以要在隐藏状态下给符合条件的行最后加上一个“1”以示区别,这样当取消隐藏后仍能根据是否有“1”而看到结果。 3、用于筛选的两列里不能有空白单元格,如本例里的两个“代号”列,要连续,不能有空白单元格。 4、结果显示出来后,隐藏的是整行,所以你在看左面的数据结果时会发现右边的数据表也少了行数。

用Excel制作学生成绩单

校本培训信息技术讲稿 用Excel制作学生成绩单 准备好原始数据后,制作每个学生成绩表的工作说到底就是将“学生成绩表”工作表中的每一行内容转换为每行一项的单独表格,具体操作过程这样来进行: 在工作簿中插入一个空白工作表,下面的工作都在这个工作表中进行。这个工作表的表名可自定,并不影响结果,这里就用Excel的命名“Sheet1”吧。第一步先合并A1和B1两个单元格,填入表头,这里要填的是汉字“学生成绩单”,也可根据实际需要变动。然后在A2单元格填入第一项的名称,为了保证通用性和方便性,这里不直接填汉字“学号”,而是填入公式“=OFFSET(学生成绩表!$A$1,0,MOD(ROW(),11)-2)”,让Excel去取“学生成绩表”中A1单元格的内容。解释一下这里用到的三个函数:ROW()返回当前单元格的行号,MOD函数返回两个参数相除后的余数,OFFSET函数的作用是以指定的引用为参照系,通过给定的偏移量得到新的引用,此处以“学生成绩表”工作表的A1单元格为固定参照系,所以使用了绝对地址的写法“$A$1”,由于项目名称都是在第1行,所以相对于A1单元格的行偏移都为0,而列偏移需要根据所处位置而定,如图2所示,每个学生的成绩单内容共10行,加上相邻两张表之间的一个空行,共11行,所以使用MOD函数将所在行号对11求余数,再减2是为了补偿因加入表头等原因造成的偏移。 填好A2单元格后再在B2单元格中填入公式“=OFFSET(学生成绩 表!$A$1,INT(ROW()/11)+1,MOD(ROW(),11)-2)”。这个公式与A2单元格的很相似,说明一下不同之处:INT函数在多种计算机编程语言中都一样,作用是将数值向下取整为最接近的整数,使用“ROW()/11”的原因在于如前所述每个学生占用11行,这里根据所在行号去取对应的内容,由于第1行的存在,别忘记加1。 图一图二 复制粘贴学生成绩 剩下的主要工作就是简单的复制、粘贴了,这里使用Excel的“填充柄”较为方便。由于曾遇到一些用户并不了解Excel中神通广大的“填充柄”功能,所以在此介绍一下:“填充柄”就是位于选定区域右下角的小黑方块,当鼠标指向“填充柄”时,鼠标的指针变更为黑十字形,此时按住鼠标左键,拖动鼠标经过需要填充数据的单元格区域,然后释放鼠标左键即可快捷地完成复制,比经典的复制、粘贴操作更方便。如果找不到“填充柄”,请

如何使用Excel的数据筛选功能

如何使用Excel的数据筛选功能 自动筛选 “自动筛选”一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。我们通过下面的实例来进行讲解(如图1)。图1为某单位的职工工资表,打开“数据”菜单中“筛选”子菜单中的“自动筛选”命令,以“基本工资”字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。我们还可以根据条件筛选出基本工资在某一范围内符合条件的记录,条件“与”表示两个条件同时要成立,条件“或”表示两个条件只要满足其中之一就可以了。 图1 如图2所示,可根据给定的条件筛选出基本工资大于等于300且小于350的记录。另外,使用“自动筛选”还可同时对多个字段进行筛选操作,此时各字段间限制的条件只能是“与”的关系。如筛选出“基本工资”和“职务工资”都超过380的记录。

图2 高级筛选 “高级筛选”一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来。也可以在新的位置显示筛选结果,不符合条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的对比了。 图3 例如我们要筛选出“基本工资”或“职务工资”超过380且“实发”工资超过700的符合条件的记录,用“自动筛选”就无能为力了,而“高级筛选”可方便地实现这一操作。如图3所示,将“基本工资”、“职务工资”和“实发”三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),在图中所示位置输入条件,条件放在同一行表示“与”的关系,条件不在同一行表示“或”的关系。图4即为上述操作在新的位置(B20起始位置)筛选的结果。 图4

Excel中的高级筛选技巧-可进行关键词筛选

Excel中的高级筛选技巧 Excel中提供了强大的筛选功能,其中“自动筛选”用于条件简单的筛选操作,且符合条件的记录只能显示的在原有的数据表格中,不符合条件的记录将自动隐藏。若要筛选单元格中含有指定关键字的记录,被筛选的多个条件间是“或”的关系,需要将筛选的结果在新的位置显示出来(便于两个表的数据比对),筛选不重复记录等等,“自动筛选”就显得有些无能为力了。“高级筛选” 你可用过?如果熟练使用,能满足许多日常办公所需,从而大大提高我们的工作效率。 一、筛选含有特定字符的记录 比如我们要查找姓“陈”的所有员工记录,可按下面的步骤进行。 如图1所示,在数据区域外的任一单元格(如B17)中输入被筛选的字段名称“姓名”,在紧靠其下方的B18单元格中输入筛选条件“陈*”。 依次单击“数据”菜单中的“筛选”,选择“高级筛选”命令,弹出“高级筛选”对话框,选择筛选方式中的“将筛选结果复制到其他位置”单选按钮。将“列表区域”设置为“$A$1:$F$15”,“条件区域”设置为“$B$17:$B$18”,“复制到”设置为“$A$20:$F$20”,单击“确定”按钮,系统会自动将符合条件的记录筛选出来并复制到指定的从A20开始的单元格区域中(如图2所示)。

小提示:如果在图1的B18单元格中输入筛选条件“*陈”可筛选名字中含有“陈”字的员工记录(即“陈”字不一定是名字中的第一个字,该字可在名字中的任意位置)。 二、筛选空白数据 现在我们来查找没有职称员工的记录,可按下面的步骤进行。 如图3所示,在数据区域外的任一单元格(如E17)中输入被筛选的字段名称“职称”,在紧靠其下方的E18单元格中输入筛选条件“<>*”。 打开“高级筛选”对话框,选择筛选方式中的“将筛选结果复制到其他位置”单选按钮。将“列表区域”设置为“$A$1:$F$15”,“条件区域”设置为“$E$17:$E$18”,“复制到”设置为“$A$20”,单击“确定”按钮,系统会自动将符合条件的记录筛选出来并复制到指定的从A20开始的单元格区域中(如图 4所示)。

Excel的数据筛选功能

Excel的数据筛选功能 2009-02-16 信息来源:电脑学习网 视力保护色:【大中小】【打印本 页】【关闭窗口】 Excel中提供了两种数据的筛选操作,即“自动筛选”和“高级筛选”。如何区分这两种筛选模式,以便熟练掌握和应用,让我们来看看吧: 自动筛选 “自动筛选”一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。某单位的职工工资表,打开“数据”菜单中“筛选”子菜单中的“自动筛选”命令,以“基本工资”字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。还可以根据条件筛选出基本工资在某一范围内符合条件的记录,“与”、“或”来约束区分条件。如图2,根据给定条件筛选出基本工资大于等于300且小于350的记录。另外,使用“自动筛选”还可同时对多个字段进行筛选操作,此时各字段间限制的条件只能是“与”的关系。如筛选出“基本工资”和“职务工资”都超过380的记录。

高级筛选 “高级筛选”一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来;也可以在新的位置显示筛选结果,不符合的条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的比对了。 例如我们要筛选出“基本工资”或“职务工资”超过380且“实发”工资超过700的符合条件的记录,用“自动筛选”就无能为力了,而“高级筛选”可方便地实现这一操作。将“基本工资”、“职务工资”和“实发”三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),所示位置输入条件,条件放在同一行表示“与”的关系,条件不在同一行表示“或”的关系。即为上述操作在新的位置(B20起始位置)筛选的结果。 两种筛选操作的比较 由此我们不难发现,“自动筛选”一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中,操作起来比较简单,初学者对“自动筛选”也比较熟悉。若要筛选的多个条件间是“或”的关系,或需要将筛选的结果在新的位置显示出来那只有用“高级筛选”来实现了。一般情况下,“自动筛选”能完成的操作用“高级筛选”

Excel数据的两种筛选功能

Excel数据的两种筛选功能 1.自动筛选 “自动筛选”一般用于简单的条件筛选,筛选时将不满足条件的数据暂时隐藏起来,只显示符合条件的数据。图1为某单位的职工工资表,打开“数据”菜单中“筛选” 子菜单中的“自动筛选” 命令,以“基本工资”字段为例,单击其右侧向下的列表按钮,可根据要求筛选出基本工资为某一指定数额或筛选出基本工资最高(低)的前10个(该数值可调整)记录。还可以根据条件筛选出基本工资在某一范围内符合条件的记录,“与”、“或”来约束区分条件。如图2,根据给定条件筛选出基本工资大于等于300且小于350的记录。另外,使用“自动筛选”还可同时对多个字段进行筛选操作,此时各字段间限制的条件只能是“与”的关系。如筛选出“基本工资”和“职务工资”都超过380的记录。 2.高级筛选 “高级筛选”一般用于条件较复杂的筛选操作,其筛选的结果可显示在原数据表格中,不符合条件的记录被隐藏起来;也可以在新的位置显示筛选结果,不符合的条件的记录同时保留在数据表中而不会被隐藏起来,这样就更加便于进行数据的比对了。 例如我们要筛选出“基本工资”或“职务工资”超过380且“实发”工资超过700的符合条件的记录,用“自动筛选”就无能为力了,而“高级筛选”可方便地实现这一操作。如图3所示,将“基本工资”、“职务工资”和“实发”三字段的字段名称复制到数据表格的右侧(表格中其他空白位置也可以),在图中所示位置输入条件,条件放在同一行表示“与”的关系,条件不在同一行表示“或”的关系。图4即为上述操作在新的位置(B20起始位置)筛选的结果。

3.两种筛选操作的比较 由此我们不难发现,“自动筛选”一般用于条件简单的筛选操作,符合条件的记录显示在原来的数据表格中,操作起来比较简单,初学者对“自动筛选”也比较熟悉。 若要筛选的多个条件间是“或”的关系,或需要将筛选的结果在新的位置显示出来那只有用“高级筛选”来实现了。一般情况下,“自动筛选”能完成的操作用“高级筛选”完全可以实现,但有的操作则不宜用“高级筛选”,这样反而会使问题更加复杂化了,如筛选最大或最小的前几项记录。 在实际操作中解决数据筛选这类问题时,只要我们把握了问题的关键,选用简便、正确的操作方法,问题就能迎刃而解了。

教材范例_利用Excel统计分析报告学生成绩

教材案例编写模板

第2步处理学生成绩数据 在这一个步骤中,学员将根据以下过程,对前面步骤中已经输入的学生成绩进行统计分析。 ①计算每位同学的总分 利用函数计算总分的方法如下: 在总分栏目中的G2单元格输入“=sum(D2:F2)”,表示计算D2到F2的总和。然后,利用自动填充方式,即可计算出每名学生的总分。 利用公式计算总分的方法如下: 在总分栏目中的G2单元格输入“=D2+E2+F2”,表示求D2、E2、F2三个单元格数据之和。再利用自动填充,即可计算出每位同学的总分。

②计算数学成绩平均分 在D14单元格输入“=average(d2:d12)”,表示计算单元格D2到D12的平均值。利用自动填充(鼠标指向填充柄向右拖动),可以计算出每一学科的平均分。 ③统计数学成绩中85分以上的人数 在D15单元格输入“=countif(d2:d12,”>=85”)”,表示统计单元格D2到D12的于或等于85分的人数。 ④计算数学成绩中的最高分数 在D16单元格输入“=max(d2:d12)”,表示计算单元格D2到D12的最大值。利用自动填充(鼠标指向填充柄向右拖动),可以计算出每一学科的最高分。

⑤计算数学成绩中的最低分 在D16单元格输入“=min(d2:d12)”,表示计算单元格D2到D12的最小值。利用自动填充(鼠标指向填充柄向右拖动),可以计算出每一学科的最低分。 ⑥依据学生总成绩进行排名 如果需要对学生的总成绩进行排名,利用函数RANK()即可。这个函数的作用是把某数在一组数中的排位计算出来。 新建一列(H列),在H1单元格输入“名次”。 在H2单元格输入“=rank(g2,g:g)”,表示计算G2单元格的数据在G列围的排名。然后,利用自动填充方式,即可计算出其他同学的名次。 (注:g:g意思是g列到g列)

Excel的高级筛选功能

Excel的高级筛选功能(上) Excel的高级筛选功能,是一项强大的数据分析工具。它可以在原有区域显示筛选结果,也可以在新的指定的区域进行显示。它可以进行简单的自动筛选,也可以进行多条件、公式计算、逻辑判断甚至表格对比和拆分等复杂的筛选。基本上,可以把高级筛选视同为一项简单实用的数据库分析技能。 这里,利用网络上一些现有的资料和书籍,对高级筛选功能进行简单的汇总。 一、基本数据 假设会计视野论坛对版主进行考核,把一些版面的版主聚到一起进行了简单的语数外考试,得到了下列的排名表:

(感谢以上斑竹的友情出演。对于分数只是起到演示作用,不代表实际的意义。这个分数俺是利用RANDBETWEEN(0,101)函数随机取得的。没有想到,还真有超过100分的。)

二、对话框 高级筛选的对话框比较简单,按照视图可分为上中下三个部分: 最上面为方式按钮,二选一的,可以选择筛选结果的显示区域:原区域或新区域; 中间是重要参数,分别是列表区域:即需要筛选的源数据;条件区域:即筛选的原则;复制到,是在选择了在新区域显示之后才可以进行选择的。 下面是用于选择不重复记录的勾选项。 三、基本功能:单条件高级筛选 现在,要对基本数据进行分析,选择来自我爱我家版面的斑竹的考试情况。 从给出的目的可以看出,是对基础数据中的“所在版面”进行分类,筛选出这一列中“我爱我家”的数据来。 在单元格F1中输入基础数据的标题行:所在版面(为了避免出现格式等原因的影响,最好采用复制功能),F2中输入:我爱我家。然后点击高级筛选,在列表区域输入:$B$5H$25(可以直接选择相应的区域),在条件区域输入:$F$1F$2,在原有区域显示筛选结果。得出下列的结果:

excel高级筛选条件格式方法大全

在创建高级筛选或使用数据库和列表管理函数(如 DSUM)时,要用到复杂条件(条件:所指定的限制查询或筛选的结果集中包含哪些记录的条件。)。 要点(*条件列不一定要邻居,但条件在同一行表示“与”,换一行表示“或”。且条件列无前后排列要求。)由于在单元格中键入文本或值时等号用来表示一个公式,因此Microsoft Excel 会评估您键入的内容;不过,这可能会产生意外的筛选结果。为了表示文本或值的相等比较运算符,应在条件区域的相应单元格中键入作为字符串表达式的条件: =''=条目'' 其中“条目”是要查找的文本或值。例如: 在单元格中键入的内容Excel 评估和显示的内容 ="=李小明" =李小明 ="=3000" =3000 Excel 在筛选文本数据时不区分大小写。不过,您可以使用公式来执行区分大小写的搜索。有关示例,请参见使用区分大小写的搜索筛选文本。 以下各节提供了复杂条件的示例。 一列中有多个条件 多列中有多个条件,其中所有条件都必须为真 多列中有多个条件,其中所有条件都必须为真 多个条件集,其中每个集包括用于多个列的条件 多个条件集,其中每个集包括用于一个列的条件 查找共享某些字符而非其他字符的文本值的条件 将公式结果用作条件 筛选大于数据区域中所有值的平均值的值

使用区分大小写的搜索筛选文本 一列中有多个条件 布尔逻辑:(销售人员= "李小明" OR 销售人员= "林丹") 要查找满足“一列中有多个条件”的行,请直接在条件区域的单独行中依次键入条件。 在下面的数据区域(A6:C10) 中,条件区域(B1:B3) 显示“销售人员”列(A8:C10) 中包含“李小明”或“林丹”的行。 A B C 1 类型销售人员销售额 2 =李小明 3 =林丹 4 5 6 类型销售人员销售额 7 饮料苏术平¥5122 8 肉李小明¥450 9 特制品林丹¥6328 10 特制品李小明¥6544 多列中有多个条件,其中所有条件都必须为真 布尔逻辑:(类型= "特制品" AND 销售额> 1000) 要查找满足“多列中有多个条件”的行,请在条件区域的同一行中键入所有条件。 在下面的数据区域(A6:C10) 中,条件区域(A1:C2) 显示“类型”列中包含

如何用Excel电子表格统计学生成绩

如何用Excel电子表格统计学生成绩 【摘要】使用Excel电子表格统计学生成绩不但方便而且快捷,利用它能自动完成成绩各项统计工作如计算总分、排名次、统计各分数段学生人数和所占比例、最高分、最低分等,还能把分数转换成等级分。用Excel电子表格统计学生成绩,将会大大提高教师的工作效率和工作质量。 【关键词】Excel;电子表格;统计;成绩;名次 统计学生成绩是教导主任和教师每学期都必须做的常规工作。传统的做法是:教师在成绩表上填写学生的平时成绩、考试成绩,然后用计算器按百分比计算每个学生的总评成绩,计算科目总分和平均分,有的还需要列出名次,不但量大,而且容易出错,反复验算是常事。如果用电脑完成,则方便快捷准确得多,而且无需“重算一遍”。Excel是美国微软公司推出的基于Windows操作系统的电子表格软件,是目前被广泛使用的现代办公软件之一,本文举例使用的版本是Microsoft Office Excel 2003。 1 如何制作成绩统计表 [1.1] 输入列标题 开机启动Windows后进入Excel电子表格窗口,在顶端行依次输入表格的列标题:考号、、语文、数学、英语、总分、平均分、名次等。

[1.2] 输入原始数据 考号、、语文、数学、英语的内容属于原始数据,也要依次输入。考号的输入可采用“自动填充”方法。先在1、2单元格输入预先设计好的考号后,再选取1、2号单元格后鼠标移动至选定区域的右下角,当出现“+”后往下拖动,所有的考号会自动出现。(如图1) 图1 [1.3] 数据居中对齐 拖动鼠标选定制表区,单击“格式”,再单击“单元格”,再单击“对齐”,水平和垂直对齐均选“居中”,然后单击“确定”。 [1.4] 加表格框线 选取需加边框的单元格,单击菜单栏中的“格式”,选择“单元格”,在对话框中选择“边框线”标签,从边框线型栏内,选择较粗的线形加入到“外框”标志栏内,选择较细的线型分别加入到上、下、左、右栏内,按下“确定”。(如图2) 第二种方法是选择表格后,单击工具栏上“边框”按钮在弹出的选项中选择“所有框线”则可(如图2)。至此,除需计算部分外全部输入完成。

Excel高级筛选 多条件筛选技巧 使用符号技巧

Excel高级筛选多条件筛选技巧使用符号技巧 Excel中的“自动筛选”功能大家也许并不陌生,对于条件简单的筛选操作,它基本可以应付。但是,最后符合条件的结果只能显示的在原有的数据表格中,不符合条件的将自动隐藏。若要筛选含有指定关键字的记录,并且将结果显示在两个表中进行数据比对或其他情况,“自动筛选”就有些捉襟见肘了。“傻瓜相机”毕竟功能有限,那么就让我们来试试“高级相机”吧!熟练运用“高级筛选”,无论条件多么复杂,都能一网筛尽。人力资源部的小李最近在做员工表格统计时,就尝到了甜头。 一、特定字符一步筛 现在在这份表格中,小李要查找姓“陈”的所有员工记录,他想了想,很快获得了结果。 如图1所示,在数据区域外的任一单元格(如B17)中输入被筛选的字段名称“姓名”,在紧靠其下方的B18单元格中输入筛选条件“陈*”。然后依次单击“数据→筛选→高级筛选”命令,在弹出的“高级筛选”对话框,选择筛选方式中的“将筛选结果复制到其他位置”单选按钮。将“列表区域”设置为 “$A$1:$F$15”,“条件区域”设置为“$B$17:$B$18”,“复制到”设置为“$A$20:$F$20”,单击“确定”按钮,系统便自动将符合条件的记录筛选出来,并复制到指定的从A20开始的单元格区域中(如图2所示)。

小提示:如果在图1的B18单元格中输入筛选条件“*陈”,可筛选名字中含有“陈”字的员工记录(即“陈”字不一定是名字中的第一个字,该字可在名字中的任意位置)。 二、空白数据巧妙筛 接下来小李还需要查找没有职称员工的记录,如何进行呢? 如图3所示,他先在数据区域外的任一单元格(如E17)中输入被筛选的字段名称“职称”,然后在紧靠其下方的E18单元格中输入筛选条件“<>*”。

相关文档
相关文档 最新文档