很多時候,您可能會遇到一個 Excel 數據集,其中只有一個單元格填充了數據,並且它下面的單元格是空白的,直到下一個值。
如下圖所示:

雖然這種格式適用於某些人,但這種數據的問題在於您不能使用它來創建數據透視表或在計算中使用它。
這很容易解決!
在本教程中,我將向您展示如何在 Excel 中快速填充單元格,直到下一個填充值。
您可以使用簡單的 Go-To 特殊對話框技術、VBA 或 Power Query 輕鬆完成此操作。
所以讓我們開始吧!
Contents
方法 1 – 使用 Go To Special + 公式填寫
假設您有一個如下所示的數據集,並且您要填寫 A 列和 B 列中的數據。

在 B 列中,目標是填充“打印機”直到其下方的最後一個空單元格,然後當“掃描儀”啟動時,然後在下面的單元格中填寫“掃描儀”直到單元格為空。
下面的步驟使用 go to special 選擇所有空白單元格並使用簡單的公式填寫:
- 選擇要填寫的數據(在我們的示例中為 A1:D21)
- 轉到“主頁”選項卡

- 在編輯組中,單擊“查找和選擇”圖標(這將在下拉菜單中顯示更多選項)
- 單擊“轉到”選項

- 在打開的“轉到”對話框中,單擊“特殊”按鈕。這將打開“轉到特殊”對話框

- 在轉到特殊對話框中,單擊空白

- 點擊確定
上述步驟將選擇數據集中的所有空白單元格(如下所示)。

在選定的空白單元格中,您會注意到一個單元格比選擇的其餘部分更亮。這個單元格是我們要輸入公式的活動單元格。
不要擔心單元格在選擇中的位置,因為我們的方法在任何情況下都可以工作。
現在,以下是填寫所選空白單元格中數據的步驟:
- 點擊鍵盤上的等號 (=) 鍵。這將在活動單元格中插入等號
- 按向上箭頭鍵。這將在活動單元格上方插入單元格的單元格引用。例如,在我們的例子中,B3 是活動單元格,當我們執行這兩個步驟時,它會在單元格中輸入 =B2
- 按住 Control 鍵,然後按 Enter 鍵
上述步驟將自動插入所有具有上面值的空白單元格。

雖然這看起來步驟太多,但一旦掌握了這種方法,您將能夠在幾秒鐘內快速填寫 Excel 中的數據。
現在,在使用此方法時,您還需要注意兩件事。
將公式轉換為值
第一個是確保您將公式轉換為值(這樣您就擁有靜態值,並且在您將來更改數據時不會搞砸)。
更改日期格式
如果您在數據中使用日期(就像我在示例數據中一樣),您會注意到日期列中的填充值是數字而不是日期。
如果日期列中的輸出採用所需的日期格式,那麼您很好,不需要做任何其他事情。
但如果這些日期格式不正確,則需要進行微調。雖然您有正確的值,但您只需要更改格式,使其在單元格中顯示為日期。
以下是執行此操作的步驟:
- 選擇包含日期的列
- 單擊主頁選項卡
- 在數字組中,單擊格式下拉菜單,然後選擇日期格式。

如果您需要不時進行此填充,我建議您使用此 Go-To 特殊和公式技術。
雖然它有幾個步驟,但它很簡單,並且可以在數據集中為您提供結果。
但如果您必須經常這樣做,那麼我建議您查看 VBA 和接下來介紹的 Power Query 方法
方法 2 – 使用簡單的 VBA 代碼填寫
您可以使用一個非常簡單的 VBA 宏代碼來快速填充 Excel 中的單元格,直到最後一個空值。
您只需將 VBA 代碼添加到文件一次,然後您就可以輕鬆地在同一工作簿甚至系統上的多個工作簿中多次重複使用該代碼。
下面是 VBA 代碼,它將遍歷選擇中的每個單元格並填寫所有空白單元格:
Sub FillDown() For Each cell In Selection If cell = "" Then cell.FillDown End If Next End Sub
上面的代碼使用 For 循環遍歷選擇中的每個單元格。
在 For 循環中,我使用了一個 If-Then 條件來檢查單元格是否為空。
如果單元格為空,則使用上面單元格中的值填充,如果不為空,則 for 循環將忽略該單元格並移動到下一個單元格。
現在您已經有了 VBA 代碼,讓我告訴您在 Excel 中的何處放置此代碼:
- 選擇要填寫的數據
- 單擊開發人員選項卡

- 單擊 Visual Basic 圖標(或者您可以使用鍵盤快捷鍵 ALT + F11)。這將在 Excel 中打開 Visual Basic 編輯器

- 在左側的 Visual Basic 編輯器中,您將擁有 Project Explorer。如果您沒有看到它,請單擊菜單中的“查看”選項,然後單擊項目資源管理器

- 如果您打開了多個 Excel 工作簿,Project Explorer 會顯示所有工作簿名稱。找到您擁有數據的工作簿名稱。
- 右鍵單擊工作簿中的任何對象,轉到“插入”,然後單擊“模塊”。這將為該工作簿插入一個新模塊

- 雙擊剛剛在上述步驟中插入的“模塊”。它將打開該模塊的代碼窗口

- 將 VBA 代碼複製粘貼到代碼窗口中
- 將光標放在代碼中的任意位置,然後通過單擊工具欄中的綠色按鈕或使用鍵盤快捷鍵 F5 來運行宏代碼

上述步驟將運行 VBA 代碼,您的數據將被填寫。
如果您以後想再次使用此 VBA 代碼,您需要將此文件保存為啟用宏的 Excel 工作簿(擴展名為 .XLSM)
您可以做的另一件事是將此宏添加到您的快速訪問工具欄,該工具欄始終可見,您只需單擊一下即可訪問此宏(在後端有代碼的工作簿中)。
因此,下次當您有需要填寫的數據時,您只需進行選擇,然後單擊快速訪問工具欄中的宏按鈕即可。
您還可以將此宏添加到個人宏工作簿中,然後在系統上的任何工作簿中使用它。
單擊此處閱讀有關個人宏工作簿以及如何向其中添加代碼的更多信息。
方法 3 – 使用 Power Query 填寫
Power Query具有內置功能,可讓您單擊即可填寫。
當您仍然使用 Power Query 來轉換數據或合併來自多個工作表或多個工作簿的數據時,建議您使用它。
作為現有工作流的一部分,你可以使用 Power Query 中的填充選項快速填充空白單元格。
若要使用 Power Query,建議您的數據採用 Excel 表格格式。如果無法將數據轉換為 Excel 表,則必須為數據創建命名範圍,然後在 Power Query 中使用該命名範圍。
下面我有已經轉換為 Excel 表格的數據集。您可以通過選擇數據集,轉到“插入”選項卡,然後單擊“表格”圖標來執行此操作。

下面是使用 Power Query 填寫數據直到下一個值的步驟:
- 選擇數據集中的任何單元格
- 單擊數據選項卡

- 在“獲取和轉換數據”組中,單擊“從工作表”。這將打開 Power Query 編輯器。請注意,空白單元格將在 Power Query 中顯示值“null”

- 在 Power Query 編輯器中,選擇要填寫的列。為此,請按住 Control 鍵,然後單擊要選擇的列的標題。在我們的示例中,它將是日期和產品列。
- 右鍵單擊任何選定的標題

- 轉到“填充”選項,然後單擊“向下”。這將填寫所有空白單元格中的數據

- 單擊“文件”選項卡,然後單擊“關閉並加載”。這將在工作簿中插入一個帶有結果表的新工作表

雖然這種方法可能聽起來有點矯枉過正,但使用 Power Query 的一大好處是它允許您在原始數據發生更改時快速更新結果數據。
例如,如果您在原始數據中添加更多記錄,則無需再次執行上述所有操作。您只需右鍵單擊生成的表,然後單擊刷新。
雖然 Power Query 方法運行良好,但最好在您已經在工作流中使用 Power Query 時使用它。
如果您只有一個要填寫空白單元格的數據集,那麼使用 Go To 特殊方法或 VBA 方法(如上所述)會更方便。
因此,您可以使用這三種簡單的方法來填充空白單元格,直到 Excel 中的下一個值。
我希望您發現本教程很有用。