[算表] 量血壓 用 index 雙 match
軟體: excel 2003 - 2007 (<-測試環境)
版本: 2003 xls , 2007 xlsx (應該無差)
血壓資料假設為 130-85 或 130/85
A B
1 130/85
2
一.
不管是 "-" 還是 "/" ,得作儲存格字串取出的動作。
如果同時有好幾個 xls 都是這種資料,(每個都做資料剖析?耶~可能嗎?)
單就上述資料格式來看,只有一個符號分隔,還可以處理。
於是:
(用 left , mid , find ; value)
=(LEFT(A1,FIND("/",A1)-1))
從 A1 左邊開始,讀取字元數是:找 A1 裡面 "/" 從左邊算起的位置,再 -1
1234
於是 130/85 , 得到讀取字元數 4 再 -1
,這樣就可以一定讀取到 "/" 左邊的字串。
這樣,從左邊看起到 "/" 為止的 收縮壓 130 "字串" 取得。
=MID(A2,FIND("/",A2)+1,3)) (輸出: "字串")
MID 設定起始位置,與要抓取的字元數 12345
所以起始位置用 find 找 130/85 故起始位置是 5 (所以要 +1)
抓取字元數設定 3 ,這樣 舒張壓 不論兩位、三位,都抓得到。
然而這樣看來,如此資料來源就必須有限制:
1. 一個儲存格內只能有一個 "/"
2.
3. "/" 之後的資料不可大於三位 (...舒張壓大於三位數...??? )
最後,left , mid 輸出的都是 "字串"
再用 =value( ) 包住,把字串轉成數字結果輸出。
二、
資料分離出 收縮壓 舒張壓 (數字)之後
可分別視為 y , x
再找得 114 的資料如下:
http://140.114.42.17/www/explain/DATA/retain-04.htm
分類 收縮壓mmHg 舒張壓mmHg 追蹤檢測時間
正常 <130 <85 二年內再度檢測
正常偏高血壓 130-139 85-89 一年內再度檢測
輕度高血壓 140-159 90-99 60日再度檢測
中度高血壓 160-179 100-109 30日再度檢測
重度高血壓 180-209 110-119 7日內轉介就醫
嚴重高血壓 >= 210 >= 120 立刻轉介就醫
當然還有一些細節,這裡就不詳列了,總之,
又要判別 x , 又要判別 y
就可以轉換成如下的 x, y 圖解:
y收縮,x舒張 5 61 84 85 89 90 99 100 109 110 119 120
10 偏低 x x
111 正常 正常
129 正常 正常
130 正常偏高 正常偏高
139 正常偏高 正常偏高
140 輕度高 輕度高
159 輕度高 輕度高
160 中度高 中度高
179 中度高 中度高
180 重度高 重度高
209 重度高 重度高
210 嚴重高
(右邊爆了請用 ,. < > 觀看 ,最左邊 就看不到了 囧> )
可以看到 y 條件在左列, x 條件在上方行
(條件可以再調整,以上是我個人自己認定的範圍 :P 應該還可以再更精確才是 )
處理這種 x, y 表,則可列公式如下:
=index(xy交集內的結果 , Match( 收縮壓y , 收縮壓y條件範圍 , 1 )
, Match( 舒張壓x , 舒張壓x條件範圍 , 1 ) )
其中 match 最後的 match_type 1 表示找 等於 或 小於 的值
最後輸出結果則是 x,y 交集內的結果:偏低、正常、偏高...
由於"表" 是固定的,所以要加 $ 號。
=INDEX($H$2:$S$13,MATCH(B2,$G$2:$G$13,1),MATCH(C2,$H$1:$S$1,1))
^ ^ ^ ^ ↑ ^ ^ ^ ^ ↑ ^ ^ ^ ^
xy交集 │ x條件範圍 │ y條件範圍
│ │
沒固定的就是要拿去查的儲存格。
三、
收縮 也 match , 舒張 也 match ,得到了"正常"、偏低、偏高 之後呢?
一定又有一個表:
A B
1 偏低 無
2 正常 二年內再度檢測
3 正常偏高 一年內再度檢測
4 輕度高 60日再度檢測
5 中度高 30日再度檢測
6 重度高 7日內轉介就醫
7 嚴重高 立刻轉介就醫
8 x 不可能 (<- 因為 舒張 比 收縮 還大 !?)
9 0 不知道
這個用 VLOOKUP (垂直條件對應)
丟入
=VLOOKUP( 偏高?正常?偏低?,$A$1:$B$9,2,FALSE)
總範圍 A1 ~ B9,查找第 1 欄 (A)
在 A 欄有符合的,輸出第 2 欄 (B) 的資料
False :一定要完全符合
這樣就可以把常見的一些列表條件來作處理了。 o.o;
(工科的應該會很常用到... 嗯? )
本文結束。
文過長冗感謝撥空觀看。
語意若有誤解請見諒。
寫這篇的用意是:
其實是常常遇到這種雙條件的情形,if 一定不夠用的
這又很像程式的 sub case select,但在 excel 卻苦無方法?
於是找了些資料終於能夠處理這樣的情形
不知道是不是唯一,但希望能有更簡潔的方法求教 <(_ _)>
//
像是本文中的 Match ,在條件數線的判別,
就全部都是 大於等於、等於、小於等於 三種情形。
可是寫程式了話,就會認為:大於等於 210 的屬於 嚴重高 (用 >= 就解決)
然而在這裡的判別則是:小於等於 210 屬於 嚴重高 //有 210 就先等於掉了
小於 210 的被 209 以下的搶走了,所以沒問題。
大於 210 的還是回到 210 認定,所以也沒問題。
// 這段似乎是邏輯錯誤的思考. XDD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.70.167.14
※ 編輯: nehex 來自: 219.70.167.14 (01/16 17:58)
※ 編輯: nehex 來自: 219.70.167.14 (01/16 18:01)
※ 編輯: nehex 來自: 219.70.167.14 (01/16 18:04)
※ 編輯: nehex 來自: 219.70.167.14 (01/16 18:05)
推
01/16 19:43, , 1F
01/16 19:43, 1F
→
01/16 21:02, , 2F
01/16 21:02, 2F
※ 編輯: nehex 來自: 219.70.167.14 (01/16 21:09)
※ 編輯: nehex 來自: 219.70.167.14 (01/16 21:13)
※ 編輯: nehex 來自: 219.70.167.14 (01/16 21:36)
Office 近期熱門文章
PTT數位生活區 即時熱門文章