VBA 如何多条件查询汇总
如何根据医院名称、报表时间和报表类别查询,按定点医院名称、分类进行分组,计算各项费用之和。相关的数据与统计表如下:
表数据:
希望点击 "查询" 按钮后就能自动计算,将相应的数据按上面形式填充到 A4:L18 之间的表格。
可以使用集算器, 按所给条件查询汇总后再被 VBA 调用。
集算器安装包可去润乾网站下载职场版,运行时需要一个授权,免费版本就够用。
我们将上述事例实现步骤:
1. 在集算器新建脚本,命名为 hospital.dfx,设置脚本参数:
设置参数分别是 Excel 文件名,医院名称、报表日期、报表类别。
2. 编写脚本:
A | B | |
1 | >name=(if(name!="" && name, name, null)) | /条件医院名称 |
2 | >pdate=(if(pdate!="" && pdate, date(pdate,"yyyy/MM/dd"), null)) | /条件报表时间 |
3 | >type=(if(type!="" && type, type, null)) | /条件报表类别 |
4 | =file(arg1).xlsimport@t(;2).select((name==null || 定点医疗机构名称 ==name) && (pdate==null || 报表时间 ==pdate) && (type==null || 报表类别 == type) && (报表类别) ) | /根据条件查询, 无条件时用报表类别去掉空记录 |
5 | =A4.groups(定点医疗机构名称, 分类;sum( 发生人次): 发生人次,sum(总费用): 总费用,sum(统筹支付): 统筹支付,sum(IC 卡支付):IC 卡支付,sum(公务员补助): 公务员补助,sum(大额补助): 大额补助,sum(扣减费用): 扣减费用,sum(实际应付): 实际应付 ) | /按定点医疗机构名称、分类进行分组汇总 |
6 | =A5.group(定点医疗机构名称) | /按定点医疗机构名称 |
7 | =A6.news(~;A6.#: 序号, 定点医疗机构名称, 分类, 发生人次, 总费用, 统筹支付,IC 卡支付, 公务员补助, 大额补助, 扣减费用, 实际应付,A6.~.sum( 实际应付): 合计支付 ) | /按每组生成序号及合计支付处理 |
8 | >A7.run(if( 序号 == 序号 [-1], 序号 = 定点医疗机构名称 = 合计支付 =null)) | /将每组非首行记录的序号、合计支付改为空 |
9 | return A7 | /返回值 |
3. 设置参数后,调试运行一下,可看到 A4 格值:
A4 | 报表时间 | 费用所属经办机构 | 定点医疗机构名称 | 报表类别 | 。。。 |
2014-08-01 | 思上县社会保险事业局 | 江南市妇幼保健院 | 城镇职工 | … | |
2014-08-01 | 湖山港市社会保险事业局 | 江南市妇幼保健院 | 城镇职工 | … | |
2014-08-01 | 港口区社会保险事业局 | 江南市妇幼保健院 | 城镇职工 | … | |
… | … | … | … | …. |
也能看到其它格值,在此就不再一一列出。 4. 执行脚本返回结果 :
A7 | 序号 | 定点医疗机构名称 | 分类 | 发生人次 | 总费用 | 。。。 | 合计支付 |
1 | 江南市妇幼保健院 | 住院 | 29 | 29511.37 | … | 49500.73 | |
(null) | (null) | 普通门诊 | 249 | 29760.57 | … | (null) |
按所提供的三个条件组合查询,对查询结果汇总统计,其中 A7 增加了序号、合计支付。
4 、加载插件 xll
在 Excel 下,需要加载集算器插件 ExcelRaq.xll,插件存放在集算器安装目录 raqsoft\esProc\bin 下。若已加载则可跳过此步。
在 Excel 中通过菜单的文件 --> 选项 --> 加载项 --> 转到 --> 浏览 --> 选择 ExcelRaq.xll 文件, 加载项中勾选 EsprocXll, 此时就启用了 ExcelRaq 插件了。
5 、编写 VBA 脚本调用集算器代码
vba 脚本函数为 CommandButton1_Click (),程序根据 hospital.dfx 脚本传递对应的 4 个参数。调用 dfx 脚本后,程序将汇总数据自动填充表格。Application.Run() 中的参数分别是 SPL 接口函数 esproc, 要调用的 d:/app/hospital.dfx 脚本、当前的 Excel 文件、医院名称、报表日期和报表类别。
由于 vba 脚本函数命名已与按钮关联,只需点击 "查询" 按钮执行脚本,生成效果如下:
除了最后一行求总支付金额外,其它数据均由 dfx 脚本提供,省去了由于分类数不一致,合计支付计算时,行之间还需要相应处理。
VBA 如何多条件查询汇总相关推荐
- MySQL条件查询简单汇总
条件查询语法: select 查询列表 from 表名 where 筛选条件; 分类: 一.按条件表 ...
- VBA用字典实现分类汇总(二)
在VBA中,字典是一个很重要的概念,有点你我们生活中用到的字典,(你可以通过pinyin或部首,查找到某个字),VBA中的字典,可以根据一个关键字(key)查询一个值(item),且关键字(key)是 ...
- 达梦两个表模糊查询_Excel财务记账管理套表,弹窗快捷录入,多维查询汇总,告别加班...
Hello大家好,我是帮帮.今天跟大家分享一张Excel财务记账管理套表,弹窗快捷录入,多维查询汇总,单手操作不加班. 为了让大家能更稳定的下载模板,我们又开通了全新下载方式(见文章末尾),以便大家可 ...
- mysql 查询 汇总_Mysql-Sql查询汇总
软件测试 Mysql-Sql查询汇总 简单查询 创建students表 create table students( id int not null unique primary key auto_i ...
- mysql多条件查询_excel用字典处理多条件查询问题
我们今天分享的内容是使用VBA代码实现多条件查询的功能. 如下图所示,表名为"明细表"的数据是明细数据. 再如下图所示,表名为"查询表"的数据是需要查询的数据. ...
- 黄河科技学院计算机等级考试成绩查询,全国计算机等级考试成绩查询汇总
原标题:全国计算机等级考试成绩查询汇总 加小编QQ:1321735333,获取成绩查询及证书领取最新资讯 温馨提示:别因为等个成绩,把平时都给打乱了,该期末考试了,好好复习. 该考研的同学,更没时间天 ...
- VBA用字典实现分类汇总(一)
VBA中字典的每一个key对应一个唯一的item,只要指定key的值,就可以马上返回其对应的item,利用字典这一特性可以实现快速的分类汇总.分类汇总可以分以下四种情况: 1.单条件单列汇总,如求商品 ...
- 十、MYSQL数据库的条件查询
10.1 聚合函数 1. 聚合函数的介绍 聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据. 注意:聚合函数不对空值(null)统计 ...
- Mysql数据库的条件查询(聚合函数、分组查询)
Mysql数据库的条件查询 一.聚合函数 1.聚合函数的介绍 聚合函数又叫组函数,通常是对表中的数据进行统计和计算,一般结合分组(group by)来使用,用于统计和计算分组数据. 常用的聚合函数: ...
- HBase高性能复杂条件查询引擎
推荐:博主历时三年倾注大量心血创作的<大数据平台架构与原型实现:数据中台建设实战>一书已由知名IT图书品牌电子工业出版社博文视点出版发行,真诚推荐给每一位读者!点击<重磅推荐:建大数 ...
最新文章
- charles都踩过哪些坑_那些年我学Java踩过的坑
- 掌握Node.js中的Async和Await
- mysql-二进制日志
- hdu 5569(二维dp,水题)
- Java和C/C++程序实时通讯数据移植问题的研究
- Java用SAX解析XML
- python,时间加减,时间计算,时间格式化,时间提取汇总
- 前台一键备份数据库+PHP实现方式
- angularjs--resource
- java 解析xml文件
- 超简单友盟分享(微信、QQ)+ 原生微信分享
- 自动编号转化为文本_将您的自动回复器转化为潜在客户
- app的性能测试小工具Emmagee使用教程
- 喜欢听音乐应该买什么蓝牙耳机?音质好听的蓝牙耳机推荐
- tplink面试题整理
- JUC- 常用的辅助类
- cacti graphs new.php,Cacti /graphs_new.php SQL Injection Vulnerability
- pythonstdin_详解Python 中sys.stdin.readline()的用法
- s鼠标在计算机哪部分里,罗技g602和g700s哪个好_罗技g602鼠标怎么样【详细介绍】-太平洋IT百科...
- excel的vlookup如果是空白就不显示0,而是显示空白