Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何刪除空白儲存格並將資料向左移動?

Author Sun Last modified

在 Excel 中處理數據集時,經常會出現不需要的空白儲存格散佈在數據中。這些空白會中斷計算、排序或分析,特別是當你希望數據條目整齊排列且不留空隙時。手動刪除每個空白儲存格並將剩餘內容向左移動對於大量信息來說非常耗時且容易出錯。本教程介紹了幾種快速有效的方法來刪除數據區域中的空白儲存格並將剩餘的儲存格向左移動,確保工作表保持整潔,更適合進一步處理或分析。以下解決方案滿足不同需求,無論你偏好手動、公式驅動或可編程方法。了解每種方法的優勢和權衡可以幫助你選擇最適合實際情況的方案。

original data  arrow right delete blank cells and move data left

定位功能 - 刪除空白儲存格並向左移動
Excel 公式 - 移除空白並將數據向左移動
VBA 代碼 - 自動刪除空白儲存格並將數據向左移動


定位功能 - 刪除空白儲存格並向左移動

當你想刪除空白儲存格並將剩餘數據向左移動時,Excel 提供了一種內置方法,對於相對較小且一致的範圍非常快速。如果你不想使用公式或編程,這種方法尤其實用。然而,它最適合基本的一次性清理,而不是自動化解決方案或非常大的數據集。以下是逐步完成此任務的方法:

1. 選擇包含要刪除的空白儲存格的數據範圍。這可以是單行、多行或整個區域。然後按 Ctrl + G 以顯示 定位 對話框。在此窗口中,點擊 特殊 以進一步精煉你的選擇。見截圖:
enable Go To dialog, and click Special

2. 在 定位條件 對話框中,勾選 空白 選項,並點擊 確定。此步驟突出顯示所選範圍內的所有空白儲存格。見截圖:
check Blanks option in the dialog box

3. 所有空白儲存格現在都已選中,在任何一個選中的空白上右鍵點擊並選擇 刪除 從上下文菜單中。見截圖:
 select Delete from the context menu

4. 在 刪除 對話框中,選擇 將儲存格向左移動 選項,並點擊 確定。此操作會使所有數據向左移動,整齊地填補由空白儲存格造成的空隙。見截圖:
check Shift cells left option in the dialog box

完成這些步驟後,空白儲存格將被刪除,剩下的數據將向左移動,如下圖所示:

original data arrow right delete blank cells and move data left
這種手動選擇和刪除方法非常適合快速編輯中等大小的數據集,並且結果立即可見。但是要注意以下事項:如果範圍內包含合併的儲存格,此方法可能會產生錯誤,並且如果儲存格中有公式,刪除儲存格可能影響計算引用。在提交更改之前,請始終檢查數據結構。

Excel 公式 - 移除空白並將數據向左移動

對於需要動態、公式驅動解決方案的情況——例如從行或列中消除空白,並在源數據變化時自動更新結果——Excel 的 FILTER 函數(適用於 Excel 365 和 Excel 2021)非常有效。這種方法特別適用於生成沒有空白儲存格的新範圍,意味著你可以保留原始數據不變,同時在工作表其他地方獲得沒有空白、向左移動的版本。

注意:具體可用的公式將取決於你的 Excel 版本。FILTER 函數僅在較新版本(Excel 365、Excel 2021 或更高版本)中可用。

1. 假設你的數據在 A1:E10(水平)。要在不包含空白的新行中輸出,選擇一個空白儲存格,例如 F1,並輸入以下公式:

=FILTER(A1:E1, A1:E1 <> "")

此公式僅收集 A1:E1 中的非空白儲存格,並從 F1 開始向左對齊列出它們。

2. 按 Enter 鍵,非空白數據將自動填滿新範圍。然後,拖動或複製公式向下。

適用場景:當你想保留源數據不變並在其他地方自動生成整理後的範圍時,推薦使用此方法。然而,一個限制是它不會覆蓋原始數據——而是提供數據的「虛擬」移動版本。

實用提示:如果你希望在新範圍中僅保留值,應用公式後,複製結果並使用選擇性粘貼 > 值來覆蓋原始範圍(如果需要)。始終確保在將公式複製到其他區域時調整儲存格引用。


VBA 代碼 - 自動刪除空白儲存格並將數據向左移動

如果你經常需要刪除空白儲存格並將剩餘條目向左移動——特別是在大型或不規則大小的數據集中——VBA 宏可以自動化這個重複性任務。這種方法就地處理儲存格,物理刪除空白,使數據在每一行內「壓縮」到左邊。宏節省時間並有助於避免手動處理複雜工作表時的錯誤。

1. 點擊開發工具 > Visual Basic 打開 VBA 編輯器。在出現的 Microsoft Visual Basic for Applications 窗口中,點擊插入 > 模塊,並將下面的代碼粘貼到模塊區域:

Sub DeleteBlanksShiftLeft()
    Dim WorkRng As Range
    Dim RowRng As Range
    Dim xTitleId As String
    Dim i As Long, c As Long
    Dim TempList As Collection
    Dim Cell As Range
    xTitleId = "KutoolsforExcel"
    On Error Resume Next
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select range to process (rows will be processed individually):", xTitleId, WorkRng.Address, Type:=8)
    On Error GoTo 0
    If WorkRng Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    ' Process each row individually
    For Each RowRng In WorkRng.Rows
        Set TempList = New Collection
        ' Collect non-empty values in the row
        For Each Cell In RowRng.Cells
            If Trim(Cell.Value) <> "" Then
                TempList.Add Cell.Value
            End If
        Next Cell
        ' Clear entire row first
        RowRng.ClearContents
        ' Refill row with collected values from left to right
        For i = 1 To TempList.Count
            RowRng.Cells(1, i).Value = TempList(i)
        Next i
    Next RowRng
    Application.ScreenUpdating = True
    MsgBox "All blank cells in rows have been removed and values shifted left.", vbInformation
End Sub 

2。插入代碼後,點擊 Run button 按鈕,或按 F5 運行宏。系統提示時,選擇目標範圍。宏將處理每一行,將值向左移動以填充空白,並沿路刪除空白儲存格。

適用場景:宏最適合熟悉啟用和使用 VBA 的用戶,特別是在大批量數據範圍或模板中常需例行刪除空白時。該方法實際修改原始數據,因此建議事先備份工作表。如果你的數據結構不規則或包含公式,請謹慎,因為宏處理的是值,可能會破壞底層依賴關係。

故障排除提示:如果出現意外結果,可能是由於合併的儲存格、公式輸出或受保護的儲存格。根據需要取消合併、解鎖或清除公式,然後再運行宏。

總結建議:只要可能,選擇公式進行動態、非破壞性的數據轉換,並選擇宏進行批量就地編輯。運行自動化之前始終保存數據副本,並檢查結果以確保工作表布局保持預期。


在Excel的特定範圍內以固定間隔批量插入空白行或列

如果您想在每隔一行插入空白行,可能需要逐一手動插入,但Kutools for Excel 的「插入空白行和列 」功能可以在幾秒內完成此操作。點擊此處獲取 30 天免費試用!
Kutools for Excel:擁有超過 300 個實用的Excel增益功能,可免費試用 30 天且無任何限制。

相關文章

最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用