1. Option Explicit
  2.  
  3. Sub yy()
  4. Dim d, arr, s$, i&, m&, w$
  5. Set d = CreateObject("Scripting.Dictionary")
  6. arr = Sheet1.[a1].CurrentRegion.Value 'a1 数据 返回 a1 单元格周围的区域 ---直到 空行 空列
  7. ReDim brr( To UBound(arr), To ) '定义数组 brr 4 所有数据的最大行号
  8. w = InputBox("请输入要汇总的部门:" & vbLf & "(不填部门 = 全部)", , "")
  9. w = IIf(w = "", "*", w)
  10. For i = To UBound(arr)
  11. If arr(i, ) Like w Or arr(i, ) = "部门" Then '为条件帅选 部门
  12. s = arr(i, ) & arr(i, ) & arr(i, ) '为组合条件帅选 人名 内容 部门
  13. If Not d.exists(s) Then '字典 有 就 s(人名 内容 部门) 带有这三个的时长数值相加 没有就 写入s 与值
  14. m = m +
  15. d(s) = m
  16. brr(m, ) = arr(i, )
  17. brr(m, ) = arr(i, )
  18. brr(m, ) = arr(i, )
  19. brr(m, ) = arr(i, )
  20. Else
  21. brr(d(s), ) = brr(d(s), ) + arr(i, )
  22.  
  23. End If
  24. End If
  25. Next
  26. Sheet2.[a1].CurrentRegion.Clear '清空第二张工作表a1 单元格周围的区域 ---直到 空行 空列
  27. Sheet2.[a1].Resize(m, ) = brr ' 第二张工作表a1 单元格周围的区域 ---直到 空行 空列
  28. 'Resize调整指定区域的大小。返回 Range 对象,该对象代表调整后的区域。
  29. '语法
  30. '表达式.Resize(行数, 列数)
  31. '表达式 一个返回 Range 对象的表达式。
  32. Set d = Nothing '清空字典
  33. End Sub

sheet1

  1.  

sheet2

  1. 部门 人名 内容 时长
  2. 一部 张三 ABC 4.5
  3. 一部 张三 专业培训 3.5
  4. 一部 张三 部门英语培训
  5. 一部 李四 ABC 3.5
  6. 一部 李四 BCC 4.5
  7. 一部 李四 部门英语培训
  8. 一部 王五 ABC
  9. 一部 王五 专业培训 1.5
  10. 二部 王五 BCC 4.5
  11. 二部 王五 部门英语培训
  12. 二部 王五 专业培训
  13. 二部 王五 ABC
  14. 二部 赵六 一号工程
  15. 二部 赵六 ABC
  16. 二部 赵六 BCC
  17. 二部 赵六 专业培训
  18. 二部 赵六 外包工程 1.5
  19. 一部 孙七 ABC
  20. 三部 钱八 BCC
  21. 三部 钱八 CDD
  22. 三部 钱八 管理课程

vba根据部门分别汇总不同部门下的人员不同培训内容的时长总计,多条件求和的更多相关文章

  1. SQL-26 (二次分组)汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no、dept_name、其当前员工所有的title以及该类型title对应的数目count

    题目描述 汇总各个部门当前员工的title类型的分配数目,结果给出部门编号dept_no.dept_name.其当前员工所有的title以及该类型title对应的数目countCREATE TABLE ...

  2. SQL-22 统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no、部门名称dept_name以及次数sum

    题目描述 统计各个部门对应员工涨幅的次数总和,给出部门编码dept_no.部门名称dept_name以及次数sumCREATE TABLE `departments` (`dept_no` char( ...

  3. Linux Shell脚本简单语法汇总(Deepin下运行)

    整理自: https://www.runoob.com/?s=shell Shell 脚本(shell script),是一种为 shell 编写的脚本程序. 业界所说的 shell 通常都是指 sh ...

  4. Excel各种条件求和的公式汇总

    经常和Execl打交道的人肯定觉得求和公式是大家时常用到的.Excel里有哪几路求和公式呢?他们的使用方式又是怎样?我为大家汇总一下. 使用SUMIF()公式的单条件求和: 如要统计C列中的数据,要求 ...

  5. js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总

    在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要.   什么是Cookie 所谓Cookie,只是一条极为短小的信息, ...

  6. 在Linux下安装PHP过程中,编译时出现错误的解决办法

    在Linux下安装PHP过程中,编译时出现configure: error: libjpeg.(a|so) not found 错误的解决办法 configure: error: libjpeg.(a ...

  7. 页面滚动动态加载数据,页面下拉自动加载内容 jquery

    <!DOCTYPE=html> <html> <head> < script src="js/jquery.js" type=" ...

  8. JavaScript下拉框去除重复内容

    下拉框去除重复内容 <script type="text/javascript" src="http://www.joleye.com/libraries/java ...

  9. php遍历目录下文件,并读取内容

    <?php echo "<h2>遍历目录下文件,并读取内容</h2><br>\n"; function listDir($dir) { i ...

随机推荐

  1. ABAP ALV F4帮助

    ALV F4帮助, 选值保存到ALV. TYPE-POOLS:slis. CLASS lcl_event_receiver DEFINITION DEFERRED. DATA: gt_fcat TYP ...

  2. Eclipse添加Qt插件

    此文件仅为步骤操作作一个记录,以便以后方便查阅. 1.操作大体参考这个网站:http://blog.csdn.net/defonds/article/details/5013412 2.我的运行环境: ...

  3. 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导【转】

    本文转载自:https://my.oschina.net/freeblues/blog/596448 嵌入式Linux内核+根文件系统构建工具-Buildroot 快速入手指导 buildroot 是 ...

  4. 工作笔记——sqlserver引号的运用

    一. sqlserver引号问题:因为要使用远程连接,所以sql语句要用单引号括起来 SELECT * FROM OPENQUERY ([192.168.***.***] ,'select * fro ...

  5. 源代码管理工具SVN

    1.源代码管理工具概述 2_SVN常用指令.hm Checkout把整个项目所有的源代码从服务器下载到本地 Update:将服务器上的代码更新到本地(只会更新被修改的文件) Commit:将本地的修改 ...

  6. Code Project精彩系列(转)

    Code Project精彩系列(转)   Code Project精彩系列(转)   Applications Crafting a C# forms Editor From scratch htt ...

  7. light oj 1032(数位DP)

    求一段区间中,每个十进制数所对应的二进制数中连续的1的个数之和. 设dp[i][0]代表长度为i的二进制数,首位为0,所含有的连续的1的个数之和. dp[i][1]代表长度为i的二进制数,首位为1,所 ...

  8. bzoj3251

    3251: 树上三角形 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 637  Solved: 262[Submit][Status][Discuss ...

  9. EF include 预先加载

    在asp.net mvc 中,常在控制器中预先加载导航属性,以便在视图中能够显示起关联的数据. 如果不预先加载,View中就会无法呈现外键的 关联数据. 会提示EF 错误发生. 一. 模型: publ ...

  10. 洛谷P4344 [SHOI2015]脑洞治疗仪(珂朵莉树)

    传送门 看到区间推倒……推平就想到珂朵莉树 挖脑洞直接assign,填坑先数一遍再assign再暴力填,数数的话暴力数 //minamoto #include<iostream> #inc ...