時值歲末,一年一度的報表季又將來臨。這些天,經常收到留言詢問如何提高報表效率,減輕醫院統計工作的勞動強度。我覺得有必要把這些問題統一答覆一下,幫助各位同仁從各種紛繁的數據中解脫出來。
以上為公眾號慣用語言套路,其實根本沒人問我。
下面我們分三個階段來學習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