痛點:《成績表》橫向一行一生,《成績通知單》豎向多行多列。如何不改動源表、自動轉換格式、下拉選學生即時生成通知單?WPS 表格 VLOOKUP + 數據有效性 + 動態命名 三板斧完美解決。
在「成績表」選中 A1 →「插入」→「名稱」→「定義」:
名稱:姓名
引用位置:=OFFSET($A$1,1,0,COUNTA(A:A)-1,)
含義:A 列非空單元格數-1(去標題)= 學生數,OFFSET 動態引用所有姓名。

圖3 定義名稱對話框
在「通知單」I4 →「數據」→「有效性」→ 允許「序列」→ 來源 =姓名 → 勾「提供下拉箭頭」。

圖4 設置數據有效性

圖5 下拉菜單效果

圖6 通知單格式佈局
| 目標單元格 | 公式 | 說明 |
|---|---|---|
| C2(標題) | =VLOOKUP(I4,成績表!A2:D1000,4,0)&" "&I4&" 同學成績通知單" | 拉取班級+姓名組合標題 |
| D4(姓名) | =I4 | 直接引用 |
| F4(班級) | =VLOOKUP(I4,成績表!A2:C1000,3,0) | 拉取班級(第 3 列) |
| H4(考號) | =VLOOKUP(I4,成績表!A2:B1000,2,0) | 拉取考號(第 2 列) |
| F5-F11(各科分數) | F5:=VLOOKUP(I$4,成績表!A$2:K$1000,ROW(A5),0) → 下拉填充至 F11 | ROW(A5)=5 對應第 5 列語文...動態獲取列號 |
I4 下拉選姓名 → 通知單數據瞬時刷新 → 直接打印 → 選下一個 → 打印... 循環完成全班通知單,源表格式完好無損。
查找函數家族(VLOOKUP/HLOOKUP/LOOKUP/MATCH/INDEX/OFFSET/INDIRECT)是表格自動化核心,靈活掌握,人工查詢全自動化。