TAKE 函數能從陣列或範圍的開頭或結尾,傳回指定數量的列或欄。搭配排序函數,就能快速抓取前幾名、後幾名或最新的資料,省去手動複製貼上的麻煩。
Excel TAKE 函數語法
=TAKE(陣列, 列數, [欄數])| 參數 | 必填 | 說明 |
|---|---|---|
| 陣列 | 是 | 要從中提取列或欄的範圍或陣列。 |
| 列數 | 是 | 要提取的列數。正數從上方開始取,負數從下方開始取。若要省略,則必須指定欄數。 |
| 欄數 | 選填 | 要提取的欄數。正數從左方開始取,負數從右方開始取。 |
回傳:傳回從原始範圍中提取出來的陣列資料。
適用版本:Microsoft 365、Excel 2021 以上版本支援。
TAKE 函數範例
範例 1:取前 3 名業績資料
業績
| 姓名 | 業績 |
|---|---|
| 陳怡君 | 50000 |
| 王小明 | 48000 |
| 林雅婷 | 45000 |
| 張建國 | 42000 |
| 李家豪 | 39000 |
在 D2 輸入公式:
=TAKE(A2:B6, 3)結果:陳怡君。提取 A2:B6 範圍的前 3 列資料。公式會溢出顯示前 3 名的姓名與業績,D2 儲存格顯示左上角第一筆資料的姓名。
範例 2:取最後 2 筆最新出勤紀錄
出勤
| 日期 | 姓名 | 狀態 |
|---|---|---|
| 2026/10/19 | 王小明 | 準時 |
| 2026/10/20 | 陳怡君 | 遲到 |
| 2026/10/21 | 林雅婷 | 準時 |
| 2026/10/22 | 張建國 | 請假 |
| 2026/10/23 | 李家豪 | 準時 |
在 E2 輸入公式:
=TAKE(A2:C6, -2)結果:2026/10/22。列數設定為 -2,表示從範圍底部往上提取最後 2 列資料。公式會溢出顯示最後兩天的完整紀錄,E2 顯示第一筆的日期。
範例 3:取前 3 筆資料的特定欄位
庫存
| 商品 | 庫存 | 狀態 |
|---|---|---|
| 蘋果 | 150 | 充足 |
| 香蕉 | 20 | 補貨 |
| 橘子 | 80 | 正常 |
| 芭樂 | 10 | 補貨 |
在 E2 輸入公式:
=TAKE(A2:C5, 3, 1)結果:蘋果。同時指定列數為 3 與欄數為 1,表示只提取前 3 列的第一欄資料。公式會溢出顯示前 3 個商品名稱,不會顯示庫存與狀態。
使用 TAKE 的技巧與注意事項
- 列數與欄數可以使用正數(從開頭取)或負數(從結尾取)。
- 如果只想提取欄而不提取列,可以將列數留空,例如 =TAKE(A1:E5, , 2) 提取前兩欄。
- 常與 SORT 函數搭配使用,先將資料排序後再用 TAKE 提取前幾名或後幾名。
TAKE 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #CALC! | 列數或欄數設定為 0。 | 確認列數與欄數引數不可為 0,必須是正數或負數。 |
| #SPILL! | 公式旁邊沒有足夠的空白儲存格來顯示提取出來的完整陣列。 | 清除擋住公式溢出範圍的其他資料。 |
Google 試算表可以用 TAKE 嗎?
Google 試算表完全支援 TAKE 函數,語法與用法與 Excel 相同。
下載 TAKE 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:TAKE 範例.xlsx(範例公式的結果經過兩個模型交叉核對)。
常見問題
TAKE 和 DROP 函數有什麼不同?
TAKE 是用來「保留」指定的列或欄,而 DROP 則是「刪除」指定的列或欄。如果想保留前 3 列用 TAKE,想刪除前 3 列則用 DROP。
可以只提取欄而不提取列嗎?
可以,只要在列數的參數位置留空即可。例如 =TAKE(A1:D10, , 2) 就會提取範圍內的所有列,但只保留前 2 欄。
為什麼使用 TAKE 函數會出現 #SPILL! 錯誤?
因為 TAKE 函數會將結果溢出到相鄰的儲存格中。如果目標範圍內已經有其他資料擋住,就會出現 #SPILL! 錯誤,清空擋路的儲存格即可解決。
相關函數
這篇收錄在「Excel 函數字典」。




