remembering you钢琴谱:Excel 请教多条件选择性查询数据 - ExcelVBA程序开发 - Excel Hom...
来源:百度文库 编辑:偶看新闻 时间:2024/05/11 20:38:55
根据输入的查询条件,请高人用函数或VBA实现查找数据功能。
1查询数据---记录日期:根据查询条件中的产品名称,不良项目以及开始日期和结束日期查找《数据表》中的符合条件的记录日期。超出查找日期范围的不记录或空白显示。
2查询数据---不良数量:搜索《数据表》中同时满足查询条件的合计不良数量.
如果查询条件中只选产品名称未选不良项目时,统计这个产品的所有不良项目的合计不良数;如果查询条件中只选不良项目未选产品名称时,统计所有产品的查询的不良项目的合计不良数;
3查询数据---投入数量,同不良数量对应关系
如果查询条件中只选产品名称未选不良项目时,统计这个产品的所有不良项目的合计投入数;如果查询条件中只选不良项目未选产品名称时,统计所有产品的查询的不良项目的合计投入数;
Sub Macro2()
Dim c As Range, Mydate1 As Date, Mydate2 As Date, arr, brr(), x As WorksheetFunction
Dim i As Long, r1 As Long, r2 As Long, m As Integer
Set x = WorksheetFunction
Mydate1 = [d2]
Mydate2 = [j2]
Set d = CreateObject("Scripting.Dictionary")
With Sheets("数据")
arr = .Range("B3:g" & .Range("B65536").End(xlUp).Row)
For i = 1 To UBound(arr)
If arr(i, 1) >= Mydate1 Then
r1 = i
Exit For
End If
Next
For i = 1 To UBound(arr)
If arr(i, 1) > Mydate2 Then
r2 = i - 1
Exit For
End If
Next
If r1 >= 0 And r2 >= r1 Then
For i = r1 To r2
If Not d.exists(arr(i, 1)) Then
m = m + 1
d(arr(i, 1)) = m
ReDim Preserve brr(1 To 3, 1 To m)
brr(1, m) = x.Sum(.Cells(i + 2, 8).Resize(1, 17)) '不良h列从到x列
brr(2, m) = arr(i, 6)
Else
brr(1, d(arr(i, 1))) = brr(1, d(arr(i, 1))) + x.Sum(.Cells(i + 2, 8).Resize(1, 17)) '不良h列从到x列
brr(2, d(arr(i, 1))) = brr(2, d(arr(i, 1))) + arr(i, 6)
End If
Next
For i = 1 To m
If brr(2, i) > 0 Then brr(3, i) = brr(1, i) / brr(2, i)
Next
Cells(5, 2).Resize(4, 255).ClearContents
Cells(5, 2).Resize(1, m) = d.keys
Cells(6, 2).Resize(3, m) = brr
End If
End With
End Sub
1查询数据---记录日期:根据查询条件中的产品名称,不良项目以及开始日期和结束日期查找《数据表》中的符合条件的记录日期。超出查找日期范围的不记录或空白显示。
2查询数据---不良数量:搜索《数据表》中同时满足查询条件的合计不良数量.
如果查询条件中只选产品名称未选不良项目时,统计这个产品的所有不良项目的合计不良数;如果查询条件中只选不良项目未选产品名称时,统计所有产品的查询的不良项目的合计不良数;
3查询数据---投入数量,同不良数量对应关系
如果查询条件中只选产品名称未选不良项目时,统计这个产品的所有不良项目的合计投入数;如果查询条件中只选不良项目未选产品名称时,统计所有产品的查询的不良项目的合计投入数;
Sub Macro2()
Dim c As Range, Mydate1 As Date, Mydate2 As Date, arr, brr(), x As WorksheetFunction
Dim i As Long, r1 As Long, r2 As Long, m As Integer
Set x = WorksheetFunction
Mydate1 = [d2]
Mydate2 = [j2]
Set d = CreateObject("Scripting.Dictionary")
With Sheets("数据")
arr = .Range("B3:g" & .Range("B65536").End(xlUp).Row)
For i = 1 To UBound(arr)
If arr(i, 1) >= Mydate1 Then
r1 = i
Exit For
End If
Next
For i = 1 To UBound(arr)
If arr(i, 1) > Mydate2 Then
r2 = i - 1
Exit For
End If
Next
If r1 >= 0 And r2 >= r1 Then
For i = r1 To r2
If Not d.exists(arr(i, 1)) Then
m = m + 1
d(arr(i, 1)) = m
ReDim Preserve brr(1 To 3, 1 To m)
brr(1, m) = x.Sum(.Cells(i + 2, 8).Resize(1, 17)) '不良h列从到x列
brr(2, m) = arr(i, 6)
Else
brr(1, d(arr(i, 1))) = brr(1, d(arr(i, 1))) + x.Sum(.Cells(i + 2, 8).Resize(1, 17)) '不良h列从到x列
brr(2, d(arr(i, 1))) = brr(2, d(arr(i, 1))) + arr(i, 6)
End If
Next
For i = 1 To m
If brr(2, i) > 0 Then brr(3, i) = brr(1, i) / brr(2, i)
Next
Cells(5, 2).Resize(4, 255).ClearContents
Cells(5, 2).Resize(1, m) = d.keys
Cells(6, 2).Resize(3, m) = brr
End If
End With
End Sub
TOP
如何对EXCEL进行多条件的数据有效性设置?
SQL 数据查询语句请教
Excel的web数据查询问题
请教Excel中的数据更新问题
请教excel的条件语句怎么使用?
ASP菜鸟请教数据查询问题!
怎么在 Excel 中删除符合条件的数据?
EXCEL如何快速提取符合条件的数据!急!
如何在EXCEL用条件格式筛选序列数据值
急:EXCEL如何在下拉列框中实现数据查询!
在EXCEL里如何跨表格查询数据?
如何联合查询两个excel表的数据?
寻web网页原码,查询Excel中的数据
excel文件里怎么设置选择性按钮
如何在excel中进行选择性赋值?
VB数据库多条件查询
高手请教excel数据查重,删除工具?
请教excel如何根据条件对行排序?紧急求助~!
数据查询
[请教]如何选择性的看上市公司报表
诚心请教excel高手,怎样合并两张电子表格excel中的数据?
Excel里的函数CountIf可以限定多个条件吗?如果我要对数据取几位小数,应该用什么函数?
EXCEL 的数据清单中,进行“高级筛选”的条件区域设置
有谁可以把EXCEL的公式讲一下?主要是在数据统计和数据查询方面的。谢谢!!