时值岁末,一年一度的报表季又将来临。这些天,经常收到留言询问如何提高报表效率,减轻医院统计工作的劳动强度。我觉得有必要把这些问题统一答复一下,帮助各位同仁从各种纷繁的数据中解脱出来。
以上为公众号惯用语言套路,其实根本没人问我。
下面我们分三个阶段来学习Excel在医院统计工作中的应用。
一、入门阶段
本阶段主要掌握加减乘除、求和等基本运算公式。
日常统计工作中,我们可以把各科室每天的病人流动情况分成不同的sheet与月报表放在同一个Excel文件中,如图所示做好相应的公式。每个月的1号,当我们录入各科室最后一天的工作量后,月报表就已经基本自动完成了。
以2019年12月的报表为例,月报表自动生成后,将其粘贴至2019年1-11月报表相邻的sheet中。由于模板中已设置好公式,因此,Excel自动累加出2019年全年报表以及与去年同期的对照表。
由此,只要前期工作到位,全年所有报表可瞬间完成。
其实,通过了入门阶段,医院统计工作效率提升10倍已经没有问题。也就是说,本来需要你干一天的工作,现在半个小时就能干完。那么,节省下来的时间,领导就可以给你安排更多的工作了。
二、进阶阶段
本阶段主要掌握一些日常工作中的常用函数,比如countif、vlookup等。
1. 假如现在有大量夜班人员的排班表,需要统计每个医护人员的夜班次数,如果靠人工去数或者挨个搜索的话需要很长时间。这时如果使用countif函数可以瞬间完成。
第一步:把所有夜班人员名单放在A列;
第二步:复制所有夜班人员名单到C列,点击删除重复项;
第三步:在D列输入countif函数并下拉填充。
2. 疫情期间我们经常要填报各种表格,很多表格内容都差不多,但是表格结构不同,这时可使用vlookup函数引用其他表格的内容使其自动填写。
例如主管部门要从我院抽调100名医生支援核酸检测,需要这些医生的身份证号和手机号,而目前我们拥有全院所有人员的个人信息,此时,我们可以使用vlookup函数自动搜索所需的100名医生并调取身份证号和手机号填入相应位置。
全院所有人员个人信息
通过vlookup函数获取特定人员的信息
三、大神阶段
本阶段我们要熟练掌握VBA,把自己想做的事情通过程序语言告诉Excel,让其自动获得我们想要的结果。
1. 以很多医院都会经历的编码映射为例。由于绩效考核平台疾病编码采用国临2.0版,所以我们要将本院使用的编码转换成国临2.0版才可以上传,这也让各家医院头疼不已。其实,如果熟练掌握VBA,这个工作就变得非常简单了。
第一步:用sheet(本院编码)中的诊断编码和诊断名称到sheet(2.0编码)中逐条查找,如果编码和名称均相同,则将相应的编码和名称填写在sheet(编码和名称均相同)中。
第二步:同样方法分别列出编码相同名称不同、编码不同名称相同以及编码名称均不同的sheet。
第三步:编码和名称均相同,无需处理;编码相同名称不同以及编码不同名称相同,仅少量需要人工映射;编码名称均不同,逐条人工映射,但这种情况数量很少。
第四步:以上4个sheet合在一起即为最终的映射表。
2. 再说一个稍微复杂一点的。
如图是系统导出的查体报告,一个Excel里大概有5000份,全部查体报告大概有50个这样的Excel,也就是大约25万份。这样的数据是无法进行统计分析的。
如果我们想就其中的几项数值进行分析,必然要将其转化成如图所示的格式。
人工处理25万份数据几乎是不可能的,而使用VBA告诉Excel怎么做,我们只需要点几下鼠标就搞定了。
放出源代码,供大家参考。
Sub 体检表()
For i = 1 To 12000
xmmc =Sheet1.Cells(i, 4)
lie =Sheet1.Cells(i, 2)
If xmmc = '心电图' Then
Sheet2.Cells(j +2, 4) = Sheet1.Cells(i, 17)
ElseIf xmmc ='肝脏' Then
Sheet2.Cells(j +2, 5) = Sheet1.Cells(i, 17)
ElseIf xmmc ='胆囊' Then
Sheet2.Cells(j +2, 6) = Sheet1.Cells(i, 17)
ElseIf xmmc ='胰腺' Then
Sheet2.Cells(j +2, 7) = Sheet1.Cells(i, 17)
ElseIf xmmc ='脾脏' Then
Sheet2.Cells(j +2, 8) = Sheet1.Cells(i, 17)
ElseIf xmmc ='肾脏' Then
Sheet2.Cells(j +2, 9) = Sheet1.Cells(i, 17)
ElseIf xmmc ='甲状腺' Then
Sheet2.Cells(j +2, 13) = Sheet1.Cells(i, 17)
ElseIf xmmc ='冠状动脉CT造影' Then
Sheet2.Cells(j +2, 14) = Sheet1.Cells(i, 17)
ElseIf xmmc ='白细胞' Then
If Sheet1.Cells(i + 1, 4) = '红细胞平均血红蛋白含量' Then
Sheet2.Cells(j + 2, 15) = Sheet1.Cells(i, 13)
End If
ElseIf xmmc ='单核细胞百分比' Then
Sheet2.Cells(j +2, 16) = Sheet1.Cells(i, 13)
ElseIf xmmc ='淋巴细胞百分比' Then
Sheet2.Cells(j +2, 17) = Sheet1.Cells(i, 13)
ElseIf xmmc ='中性粒细胞百分比' Then
Sheet2.Cells(j +2, 18) = Sheet1.Cells(i, 13)
ElseIf xmmc ='血红蛋白浓度' Then
Sheet2.Cells(j +2, 19) = Sheet1.Cells(i, 13)
ElseIf xmmc ='血小板数目' Then
Sheet2.Cells(j +2, 20) = Sheet1.Cells(i, 13)
ElseIf xmmc ='C-反应蛋白' Then
Sheet2.Cells(j +2, 21) = Sheet1.Cells(i, 13)
ElseIf lie ='体检号:' Then
j = j + 1
Sheet2.Cells(j +2, 2) = Sheet1.Cells(i, 11)
Sheet2.Cells(j +2, 3) = Sheet1.Cells(i, 14)
End If
Next
End Sub
联系客服