(網友提問)在 Excel 中如果要使用公式以起始字串來篩選清單中的項目,該如何處理?

參考下圖,要以起始字串(本例:A135790)在一個號碼的清單中篩選。

Excel-使用公式以起始字串來篩選(OFFSET,ROW,LEN)

 

【手動篩選】

如果你使用篩選工具,就可以使用「文字篩選」下的「開始於」功能來篩選。

Excel-使用公式以起始字串來篩選(OFFSET,ROW,LEN)

輸入開始的字串:(本例為A135790)

Excel-使用公式以起始字串來篩選(OFFSET,ROW,LEN)

隨之得到篩選結果:

Excel-使用公式以起始字串來篩選(OFFSET,ROW,LEN)

 

【公式設計與解析】

如何以公式來完成 ?

先選取A1:A35,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:號碼。

儲存格D2:{=IFERROR(OFFSET($A$1,SMALL(IF(LEFT(號碼,LEN($C$2))=$C$2,
ROW(號碼),""),ROW(1:1))-1,0),"")}

複製儲存格D2,貼至儲存格D2:D14。

這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。

Excel-使用公式以起始字串來篩選(OFFSET,ROW,LEN)

(1) IF(LEFT(號碼,LEN($C$2))=$C$2,ROW(號碼),"")

先以LEN 函數計算儲存格C2的文字長度,然後在陣列公式中利用 LEFT 函數判斷所有號碼清單由左邊取和儲存格C2相同的的文字長度,如果和儲存格C2相同者傳回其列號(利用 ROW 函數),否則傳回空字串。

(2) SMALL(第(1)式,ROW(1:1))

利用 SMALL 函數於第(1)式的傳回值由小至大取出列號。公式向下複製時,ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→…。

(3) OFFSET($A$1,第(2)式-1,0)

將第(2)式傳回的列號代入 OFFSET 函數取得對應的儲存格內容。

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

公式可能傳回錯誤訊息,藉由 IFERROR 函數將錯誤訊息置換為空字串。

 

學不完.教不停.用不盡文章列表

arrow
arrow
    文章標籤
    Excel OFFSET ROW LEN
    全站熱搜

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