網友問到:依據下圖中 Excel 工作表中的運動會報名清單,如何列出男、女生百公尺、跳高、跳遠的報名清單。
選取所有資料儲存格(例如:儲存格A1:H1000),按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:序號、班級、座號、姓名、性別、百公尺、跳高、跳遠。
選取儲存格A1:H1000,定義名稱:資料。
【列出百公尺報名者女生清單】
1. 列出清單中的「序號」
儲存格J2:{=IFERROR(SMALL(IF(百公尺*(性別="女"),序號,""),ROW(1:1)),"")}
這是陣列公式,輸入完成要按 Ctrl+Shift+Enter 鍵,Excel 會自動加上「{}」。
(1) IF(百公尺*(性別="女"),序號,"")
公式中:「百公尺」在此相當於「百公尺=TRUE」
在陣列公式中判斷雙條件:「百公尺=TRUE」 AND 「性別="女"」,結果是否成立。
如果成立,則傳回對應的列號,否則傳回空字串。
(2) SMALL(IF(百公尺*(性別="女"),序號,""),ROW(1:1))
利用 SMALL 函數由小至大依序取出第(1)式傳回的列號。
ROW(1:1)=1,公式向下複製時,ROW(1:1)=1→ROW(2:2)=2→ROW(3:3)=3→…。
(3) IFERROR(SMALL(IF(百公尺*(性別="女"),序號,""),ROW(1:1)),"")
利用 IFERROR 函數將第(1)式如果傳回錯誤值時,改顯示為空子串。
2. 列出:班級、座號、姓名、性別的內容
儲存格K2:=IFERROR(INDEX(資料,$J2,COLUMN(B1)),"")
利用 INDEX 函數在「資料」範圍中,查詢儲存格J2(序號)在第2欄的內容。
COLUMN(B1)會傳回欄號,COLUMN(A1)=1→COLUMN(B1)=2→COLUMN(C1)=3→…。
在 INDEX 函數中,利用「序號」來查詢資料表中第2欄對應的內容。
3.複製儲存格J2:N2,貼至儲存格J2:N50。
【列出百公尺報名者男生清單】
請自行參考【列出百公尺報名者女生清單】的做法。
留言列表