ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: 戎马书生222

[求助] 如何统计缺考人数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-7-17 21:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub limonet()
    Dim Cn As Object, StrSQL$, S$, IIF2$, Arr As Variant, i%
    Set Cn = CreateObject("Adodb.Connection")
    S$ = "IIF(语文 Is Null,'语文',Null) As 语文,IIF(数学 Is Null,'数学',Null) As 数学,IIF(英语 Is Null,'英语',Null) As 英语," _
        & "IIF(政治 Is Null,'政治',Null) As 政治,IIF(历史 Is Null,'历史',Null) As 历史,IIF(地理 Is Null,'地理',Null) As 地理," _
        & "IIF(物理 Is Null,'物理',Null) As 物理,IIF(化学 Is Null,'化学',Null) As 化学,IIF(生物 Is Null,'生物',Null) As 生物"
    IIF1 = "IIF(组合='物化生',物理 Is Null Or 化学 Is Null Or 生物 Is Null,IIF(组合='物化地',地理 Is Null Or 物理 Is Null Or 化学 Is Null," _
        & "IIF(组合='政史地',政治 Is Null Or 历史 Is Null Or 地理 Is Null,政治 Is Null Or 历史 Is Null Or 生物 Is Null))))"
    IIF2 = "IIF(组合='物化生',物理&' '&化学&' '&生物,IIF(组合='物化地',地理&' '&物理&' '&化学," _
        & "IIF(组合='政史地',政治&' '&历史&' '&地理,政治&' '&历史&' '&生物)))"
    Cn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ThisWorkbook.FullName
    StrSQL = "Select 班级,考号,姓名," & S & ",组合 From [Sheet1$A:M] Where 语文 Is Null Or 数学 Is Null Or 英语 Is Null Or(" & IIF1
    StrSQL = "Select 班级,考号,姓名,语文&' '&数学&' '&英语&' '&" & IIF2 & " From (" & StrSQL & ") "
    Arr = Cn.Execute(StrSQL).GetRows
    For i = 0 To UBound(Arr, 2)
        Arr(3, i) = Replace(Application.Trim(Arr(3, i)), " ", ",")
    Next i
    Range("O17").Resize(i, 4) = Application.Transpose(Arr)
End Sub

TA的精华主题

TA的得分主题

发表于 2024-7-18 08:20 | 显示全部楼层
可4线程并行执行
2024-07-18_081557.jpg

TA的精华主题

TA的得分主题

发表于 2024-7-18 09:19 | 显示全部楼层
本帖最后由 ykcbf1100 于 2024-7-18 09:20 编辑

参与一下,字典

缺考统计.zip

21.36 KB, 下载次数: 8

TA的精华主题

TA的得分主题

发表于 2024-7-18 09:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
缺考统计,字典
  1. Sub ykcbf()   '//2024.7.18   缺考统计
  2.     Application.ScreenUpdating = False
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     Set d1 = CreateObject("Scripting.Dictionary")
  5.     r = Cells(Rows.Count, 1).End(3).Row
  6.     arr = [a1].Resize(r, 13)
  7.     ReDim brr(1 To r, 1 To 4)
  8.     For j = 4 To 12
  9.         s = Left(arr(1, j), 1)
  10.         d1(s) = j
  11.     Next
  12.     For i = 2 To UBound(arr)
  13.         st = Replace(arr(i, 13), "史", "历")
  14.         st = "语数英" & st
  15.         s = arr(i, 2)
  16.         For x = 1 To Len(st)
  17.             j = d1(Mid(st, x, 1))
  18.             If Val(arr(i, j)) = 0 Then
  19.                 If Not d.exists(s) Then
  20.                     m = m + 1
  21.                     d(s) = m
  22.                     brr(m, 1) = arr(i, 1)
  23.                     brr(m, 2) = arr(i, 2)
  24.                     brr(m, 3) = arr(i, 3)
  25.                     brr(m, 4) = arr(1, j)
  26.                 Else
  27.                     r = d(s)
  28.                     brr(r, 4) = brr(r, 4) & "," & arr(1, j)
  29.                 End If
  30.             End If
  31.         Next
  32.     Next
  33.     [o2:r1000] = ""
  34.     [o2].Resize(m, 4) = brr
  35.     Application.ScreenUpdating = True
  36.     MsgBox "OK!"
  37. End Sub
复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-18 09:30 | 显示全部楼层
感谢论坛好友的思路。正在努力学习。谢谢

TA的精华主题

TA的得分主题

发表于 2024-7-18 21:55 | 显示全部楼层
1句4行,只用到1个字符拼接函数 String_Agg, 没有变量,没有循环。更没有循环套循环,完美解决。
结构的魅力.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-7-19 08:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
一招秒杀 发表于 2024-7-18 21:55
1句4行,只用到1个字符拼接函数 String_Agg, 没有变量,没有循环。更没有循环套循环,完美解决。

强。这是什么东东?不知道怎么学
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 03:46 , Processed in 0.031906 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表