Option Explicit

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

sheet1


sheet2

部门    人名    内容    时长
一部 张三 ABC 4.5
一部 张三 专业培训 3.5
一部 张三 部门英语培训
一部 李四 ABC 3.5
一部 李四 BCC 4.5
一部 李四 部门英语培训
一部 王五 ABC
一部 王五 专业培训 1.5
二部 王五 BCC 4.5
二部 王五 部门英语培训
二部 王五 专业培训
二部 王五 ABC
二部 赵六 一号工程
二部 赵六 ABC
二部 赵六 BCC
二部 赵六 专业培训
二部 赵六 外包工程 1.5
一部 孙七 ABC
三部 钱八 BCC
三部 钱八 CDD
三部 钱八 管理课程

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. e3 cpu

    英特尔® 至强® E3 处理器 https://www.intel.cn/content/www/cn/zh/products/processors/xeon/e3-processors.html?p ...

  2. ubuntu12.04安装tftp,配置,修改目录,错误类型

    [前言]学习嵌入式,需要配置tftp服务,在网上搜了搜,很多,但是配置了,我的老是出现Error code 1: File not found错误,经过探索和一个大哥的博客http://blog.cs ...

  3. Ubuntu系统下实现Android工程调用独立编译的C++程序和GMP、PBC库

    目的: 实现使用C++编写代码供Android工程调用.C++代码中可以使用STL库,也可以使用常用的由源码编译生成的库,如PBC.因为PBC是基于GMP库的,所以这里只记录了GMP和PBC库的编译安 ...

  4. leetcode 783. Minimum Distance Between BST Nodes 以及同样的题目 530. Minimum Absolute Difference in BST

    Given a Binary Search Tree (BST) with the root node root, return the minimum difference between the ...

  5. Atom vim mode

    /******************************************************************** * Atom vim mode * 说明: * 想找一个具有 ...

  6. [Codeforces 839C] Journey

    [题目链接] http://codeforces.com/contest/839/problem/C [算法] 概率DP 时间复杂度 : O(N) [代码] #include<bits/stdc ...

  7. MySql LOAD DATA 使用

    load的语法 LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO ...

  8. 学习Python到写poc其实没那么难

    现在,开始! 0x00 前言 今天刚刚把http://drops.wooyun.org/tips/12751放到收藏夹准备看的,然后又看到题主的这个问题.顺便观摩了1楼大神的博客,我这种炒鸡新手表示很 ...

  9. shiro之jdbcRealm

    Shiro认证过程 创建SecurityManager--->主体提交认证--->SecurityManager认证--->Authenticsto认证--->Realm验证 ...

  10. 2018年全国多校算法寒假训练营练习比赛(第五场):A题:逆序数(树状数组or归并排序)

    题目描述 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序.一个排列中逆序的总数就称为这个排列的逆序数.比如一个序列为4 5 1 3 2, 那么这个序列 ...