有網友想要根據衛生福利部國民健康署提供的兒童與青少年生長身體質量指數(BMI)建議值來判讀其體位。本篇即利用衛生福利部國民健康署所提供的資料來練習。

資料來源:http://obesity.hpa.gov.tw/PDA/BMIproposal.aspx

image

先將資料稍微轉換如下圖:(其中的三個值分別是正常、過重和肥胖的臨界值)

image

 

【公式設計與解析】

儲存格J5:=CHOOSE(IFERROR(SUMPRODUCT((J4>=OFFSET(M1,
MATCH(J3,A4:A39,0)+2,(J2="女")*3,1,3))*1),0)+1,"過輕","正常","過重","肥胖")

(1) MATCH(J3,A4:A39,0)

利用 MATCH 函數查詢儲存格J3(年齡)在儲存格範圍A4:A39中的位置,傳回一個數字。

(2) OFFSET(M1,第(1)式+2,(J2="女")*3,1,3)

(J2="女")*3:若是因,傳回0;若是女,傳回3。(因為男和女的資料儲存格差3欄)

利用第(1)式傳回的位置代入 OFFSET 函數,取得符合年齡、性別的儲存格範圍(例如本例為:儲存格P13:R13)

(3) SUMPRODUCT((J4>=第(2)式)*1)

SUMPRODUCT 函數利用條件:J4>=第(2)式,來判斷儲存格J4是否大於第 1,2,3 個儲存格。傳回 TRUE/FALSE 陣列,公式中的『*1』,用以將 TRUE/FALSE 陣列轉換為 1/0 陣列。最後 SUMPRODUCT 函數予以加總,傳回一個數字(可能為 1,2,3)。

(4) IFERROR(第(3)式,0)

利用 IFERROR 函數將第(3)式可能傳回的錯誤訊息(因為體重過輕者是小於正常者)轉換為 0。(目前可能傳回的數字:1、2、3、4)

(5) CHOOSE(IFERROR(第(4)式+1,"過輕","正常","過重","肥胖")

利用第(4)式可能傳回的數字:1、2、3、4,在 CHOOSE 函數對應傳回:過輕、正常、過重、肥胖。

 

如果你要使用的表格式的記錄呈現,也可以改為以下的樣式:

image

arrow
arrow

    vincent 發表在 痞客邦 留言(2) 人氣()