在 Excel 中處理動態陣列或大型資料集時,DROP 函數可用來「丟棄」指定數量的列或欄,回傳剩餘的資料區塊。它是 Excel 365 中的動態陣列函數之一,適合用於資料裁切、報表輸出、欄位排除與動態範圍設計。
🔹快速摘要(語法、用途、常見場景)
- 用途:從陣列中移除指定數量的列或欄
- 語法:
=DROP(陣列, 移除列數, [移除欄數]) - 常見場景:資料裁切、欄位排除、動態報表、陣列重組、前 n 筆排除
一、DROP 函數語法與用途
語法:
=DROP(array, rows, [columns])
- array:要處理的資料陣列或範圍
- rows:要移除的列數(正值從上方移除,負值從下方移除)
- columns(選填):要移除的欄數(正值從左側移除,負值從右側移除)
- 回傳結果為剩餘的資料區塊(動態陣列)
=DROP(A1:C5,1,1) 表示移除第一列與第一欄,回傳 B2:C5。二、範例教學:五個基礎 + 五個進階範例
🔸基礎範例
範例一:移除第一列
=DROP(A1:C5,1)
回傳 A2:C5。
範例二:移除前兩列與前一欄
=DROP(A1:D6,2,1)
回傳 B3:D6。
範例三:移除最後一列
=DROP(A1:C5,-1)
回傳 A1:C4。
範例四:移除最後兩欄
=DROP(A1:D5,0,-2)
回傳 A1:B5。
範例五:完全不移除欄,只移除列
=DROP(A1:C5,2,0)
回傳 A3:C5。
🔸進階範例
範例六:搭配 TAKE 建立裁切區塊
=TAKE(DROP(A1:F10,1),5)
移除第一列後取前五列。
範例七:搭配 VSTACK 合併多個裁切區塊
=VSTACK(DROP(A1:C10,1),DROP(D1:F10,1))
範例八:搭配 IF 判斷是否需要裁切
=IF(A1="裁切",DROP(B2:E10,1,1),B2:E10)
範例九:搭配 LAMBDA 建立自訂裁切函數
=LAMBDA(rng, DROP(rng,1,1))(A1:D10)
範例十:搭配 WRAPCOLS 重組裁切後的資料
=WRAPCOLS(DROP(A1:F1,1),2)
移除第一欄後,每兩欄換行。
三、常見問題解答(FAQ)
Q1:DROP 可以移除負數列或欄嗎?
可以,負數表示從下方或右側開始移除。
Q2:DROP 可以處理動態陣列嗎?
可以,支援動態 Spill 陣列與函數組合。
Q3:DROP 會改變原始資料嗎?
不會,僅回傳新的動態陣列,不影響原資料。
Q4:DROP 可以處理整欄資料嗎?
可以,搭配 columns 參數即可。
Q5:DROP 可以搭配哪些函數使用?
常見搭配 TAKE、INDEX、VSTACK、HSTACK、LAMBDA、WRAPCOLS 等。
四、注意事項與錯誤排除
- 若移除的列數或欄數超過原始資料大小,會回傳
#CALC!錯誤 - 若輸入非陣列或範圍,會回傳
#VALUE! - DROP 不會修改原始資料,只回傳新的動態陣列
- 適用於報表裁切、欄位排除與資料重組
- 建議搭配錯誤防呆邏輯處理過度裁切情況
五、延伸技巧與相關函數
若你需要進一步處理資料裁切與重組,可搭配以下函數:
你可以使用 TAKE 函數 擷取前幾列或欄,與 DROP 相反,適合建立裁切區塊。
若你需要合併多個裁切結果,可搭配 VSTACK 或 HSTACK 函數,將多個陣列垂直或水平合併。
若你想建立可重複使用的裁切邏輯,可搭配 LAMBDA 函數 封裝 DROP,建立自訂裁切函數。
若你需要將裁切後的資料重組為固定欄數,可搭配 WRAPCOLS 或 WRAPROWS 函數。
這些函數能與 DROP 組合成一套完整的「資料裁切 → 區塊重組 → 報表輸出 → 批次處理」流程,適用於報表設計、資料清理與動態分析。
六、結語與延伸閱讀推薦
DROP 函數是 Excel 中專門處理資料裁切與欄列排除的動態工具,適合用在報表設計、欄位控制、資料重組與動態輸出等情境。學會 DROP 後,你可以進一步探索:
- [TAKE 函數教學]:擷取資料區塊的對應工具
- [VSTACK 函數教學]:合併多個陣列的彈性工具
- [LAMBDA 函數教學]:建立可重複使用的裁切邏輯












