如何按區間模糊匹配?除了以前教過的 lookup 函數,今天再分享兩個異曲同工的公式。
案例:
將下圖 1 中的完成率轉換成等級,規則如下:
>=100%:綠
>=80% 且 <100%:黃
<80%:紅
效果如下圖 2 所示。
解決方案 1:
1. 在右側建立等級對照表。
2. 在 E2 單元格中輸入以下公式 --> 下拉複制公式:
=VLOOKUP(D2,$G$2:$H$4,2)
公式釋義:
首先強調一點,對照表中的第一列必須是升序排序;
VLOOKUP 函數本身不用多講,但是與以往不同,這個公式中省略了第 4 個參數,表示返回近似匹配;
如果 VLOOKUP 在查找區域中找不到精確匹配值,會返回小于查詢內容的的最大值,從而實現了區間匹配。
* 請注意公式中的絕對和相對引用。
解決方案 2:
1. 在 E2 單元格中輸入以下公式 --> 下拉複制公式:
=MID("紅黃綠",MATCH(D2,{0,0.8,1}),1)
公式釋義:
MATCH(D2,{0,0.8,1}):
將 D2 單元格的值與序列 {0,0.8,1} 中的值比對,返回符合結果的值所在的位置數;
match 函數的第 3 參數省略,默認爲 1,即近似匹配;在找不到精確值的情況下,會返回小于或等于查詢內容的最大值;
這段公式表示在 {0,0.8,1} 查找小于或等于 D2 的最大值,返回該值在序列中的排名數;
MID("紅黃綠",...,1):在“紅黃綠”中從 match 返回的值(即代表查詢結果所在位置的一個數字)開始取數,只取 1 位數
* 公式中無論 match 的第二參數還是 mid 的第一參數都要升序排序,且一一對應。