班級學生成績表的EXCEL電子表格
一對多查詢,一直是 Excel 迷們用來比拼水平高下的一個永恆習題。前不久,我也剛以此為案例講解過萬金油公式的用法。
今天要教大家的是一對多查詢的另一種解決辦法。
案例:
下表 1 是原始表格,要求只要列出班級名稱,就能將全班所有人的資訊提取到另一張表中。效果如下圖 2。
解決方案:
先在 E1 單元格製作班級下拉選單:
1. 選中 E1 單元格 --> 選擇選單欄的“資料”-->“資料驗證”
2. 在彈出的對話方塊中進行以下設定 --> 點選“確定”:
- 允許:選擇“序列”
- 來源:輸入“一班,二班,三班”
* 請注意:班級之間的逗號必須為英文半形符號
現在,班級下拉選單就做好了。
3. 將 D 列用作輔助列,在 D2 單元格輸入以下公式,下拉複製公式:
=COUNTIF($A$2:A2,$E$1)
這個公式的作用是統計下拉選單中的班級在 A 列中第幾次出現。
關於 countif 函式用法詳解,請參加【“數數”誰不會?看完COUNT家族案例我服氣了!連加不加$都有學問】
4. 在 E2 單元格輸入以下公式,右拉下拉複製公式:
=IFERROR(INDEX(A$2:A$10,MATCH(ROW(A1),$D$2:$D$10,0)),"")
關於 index match 組合函式的詳解,請參見【除了 vlookup,這幾個經典組合公式基本可以解決所有查詢問題】
公式釋義:
- INDEX(查詢的區域,區域中的第幾行)
- A$2:A$10:查詢的區域,區域的行值是固定的,需要絕對引用;列值要相對引用,這樣向右拖動公式的時候,列數會自動遞增,即依次取 B 列、C 列的值
- MATCH(搜尋的項,搜尋區域,絕對匹配):返回搜尋項在區域中的相對位置
- ROW(A1):A1 的行號,即“1”;向右拖動時,行號不變;向下拖動時,行號會以步長 1 遞增
- $D$2:$D$10:輔助列區域,即班級名是第幾次出現;比如“一班”一共出現了 3 次,那麼 row 函式最多匹配到 row(A3),再下拉到 row(A4) 的時候,就查詢不到“4”了,用此方式可以查詢出所有“一班”依次出現在搜尋區域的第幾行
- 最後在外面套上 iferror 函式,不顯示錯誤值
現在,篩選下拉選單,就能查詢出班級中所有人的完整資訊了。為了美觀起見,把輔助列 D 的字型顏色設定為白色。
很多同學會覺得 Excel 單個案例講解有些碎片化,初學者未必能完全理解和掌握。不少同學都希望有一套完整的圖文教學,從最基礎的概念開始,一步步由簡入繁、從入門到精通,系統化地講解 Excel 的各個知識點。
現在終於有了,以下專欄,從最基礎的操作和概念講起,用生動、有趣的案例帶大家逐一掌握 Excel 的操作技巧、快捷鍵大全、函式公式、資料透視表、圖表、列印技巧等……學完全本,你也能成為 Excel 高手。