在 Excel 的工作表中有一个资料表格(以下图左),此中着名称(甲、、乙、...、癸)和项目(A、B、C),对应的内容填有 1 ~ 9 的代号。若何才能挑选出每一个代号所列的名称(以下图右)。(注:此中每名称中的代号不会重覆)
【公式设计与解析】
贮存格G2:{=IFERROR(OFFSET($A$2,SMALL(IF($B$2:$D$11=$F2,ROW
($B$2:$D$11),FALSE),COLUMN(A:A))-2,0),"")}
这是阵列公式,输入完成要按 Ctrl+Shift+Enter 键,Excel 主动加上「{}」。
複製贮存格G2,贴至贮存格G2:K9。
(1) IF($B$2:$D$11=$F2,ROW($B$2:$D$11),FALSE)
于阵列公式中判定贮存格B2:D11中和贮存格F2内容是不是符合,若成立,则传回贮存格列号;若不成立,则传回 FALSE。
(2) SMALL(第(1)式,COLUMN(A:A))
当公式向右複製时,COLUMN(A:A)=1→COLUMN(B:BA)=2→ ... →COLUMN(E:E)=5。再透过 SMALL 函数将第(1)传回的阵列依序掏出最第1小的值、第2小的值、...。
(3) OFFSET($A$2,第(2)式-2,0)
将第(2)式的传回值代入 OFFSET 函数,求得相对的贮存格位置中的内容。此中『-2』是由于资料由第2列起头。
(4) IFERROR(第(3)式,"")
最后利用 IFFERROR 函数,对第(2)式若因 SMALL 函数传回毛病值时,可以将成果显示为空字串「""」。
创作者先容 vincent 北京拓展公司