在一個表格中,A列為病人姓名,B列為就診時間。同一病人有多次就診記錄,如何快速實現同一病人多次就診時間在姓名後自動排列,以計算就診時間間隔?(A:B是原表,E:H是想實現的效果)
回覆列表
-
1 # EXCEL學習微課堂
-
2 # 玩Office
這個問題依然可以用資料透視表來解決。
很多人以為資料透視表僅僅是用來做統計分析報表,其實不然。調整資料表結構,拆分工作表等等都是資料透視表可以做的。
回到問題中,希望從源資料表提取每個人的就診記錄,並以新的結構呈現。
第一步 新增輔助列源資料表中只有“姓名”和“就診時間”兩個欄位,那我們還需要新增一個輔助欄位”第幾次就診“。
乍一看,可能你覺得新增這個輔助列不符合邏輯。但是這個僅僅是輔助列,為了後面的資料表做準備的。接著往下看你就明白了。
第二步 插入資料透視表,改變資料結構1. 插入資料透視表。
2.“姓名”放行欄位區域,“就診時間”放值欄位區域,“第幾次就診”欄位放列欄位區域。
3. 禁止行列彙總,值顯示方式從“計數”改為“求和”。
這時候,日期預設是數值格式。不要緊,先不用管它。
第三步 複製透視表資料並整理格式。1. 複製透視表,並透過選擇性貼上,僅貼上數值。
3. 將數值格式改為日期格式。(單元格格式快捷方式Ctrl+1)
5.表格美化。
整體做下來的步驟有點多,但是思路和邏輯都比較簡單。
只要理解了,做起來並不困難。
不過這個方法有個缺點:
當源資料表資料增加/變化的時候,資料透視表可以一鍵重新整理,但是第三步卻不能同步自動更新。所以需要重複第三步的步驟。
這又是另外一個問題,這個回答下不拓展這點了。
如何從電子表格中提取同一病人多次就診的時間記錄?即在一個表格中,A列為病人姓名,B列為就診時間。同一病人有多次就診記錄,如何快速實現同一病人多次就診時間在姓名後自動排列,以計算就診時間間隔?(A:B是原表,E:H是想實現的效果)
《比Vlookup好用10倍的自定義函式VLOOKUPS,解決VLOOKUP的難題!》
溫馨提示:
1、記得一定要先匯入模組再使用這個函式,這個函式是自定義函式,不包含在Excel預設的函數里。
2、記得儲存EXCEL檔案為啟用宏的工作簿.xlsm,要不你用vlookups函式查找出結果後要立即複製原址貼上為值,下次開啟檔案時就不會出錯。
二、具體步驟
1、匯入自定義函式模組。ALT+F11 調出VBA 編輯器 →在工程視窗右擊選擇【匯入檔案】→選擇VBA 模組檔案(自定義函式VLOOKUPS.bas)→關閉VBA 編輯器。
2、在E2單元格輸入以下公式後,往往下往右拉即可。=vlookups($D2,$A:$A,2,COLUMN(A1))
公式解析:Vlookups與VLOOKUP類似,有4個引數:vlookups(找誰,在哪找,返回第幾列,找第幾個)
第①引數是要查詢的內容【姓名】$D2,考慮到公式要往右拉,所以鎖定D列
第②引數是包含查詢值【姓名】的資料列即A列,公式要往右拉,所以鎖定A列
第④引數用COLUMN(A1)提取A1的列號,結果為1,往右拉公式後,會依次得到B1,C1的列號,即得到1個從1-6的數,即提取第1次到第6次的就診時間。
動圖演示: