如何在 Excel 中按街道名稱/號碼排序地址?
當您在 Excel 中管理地址清單時,通常需要按街道名稱或街道號碼來組織或分析數據。例如,如果您需要將住在同一條街道上的客戶分組,或者您必須按照門牌號碼的順序處理送貨,那麼按這些部分進行排序是必不可少的。然而,由於典型的地址格式會在單一儲存格中混合街道名稱和號碼,簡單的排序無法得到預期的結果。在本文中,我們將討論在 Excel 中按街道名稱或街道號碼排序地址的實用方法,分析它們的優勢及應用場景,並針對各種用戶需求提供疑難解答和替代解決方案。
使用 Power Query 按街道名稱或號碼排序地址(無輔助列)
使用輔助列在 Excel 中按街道名稱排序地址
要在 Excel 中按街道名稱排序地址,您首先需要將街道名稱提取到輔助列中。這種方法簡單直接,並且當地址格式一致時效果很好,例如“123 Apple St”。它適用於快速專案或簡單的地址列表。
1. 選擇地址列表旁邊的一個空白列。在輔助列的第一個儲存格中輸入以下公式以提取街道名稱:
=MID(A1,FIND(" ",A1)+1,255)
(這裡 A1 是指您的地址數據頂部的儲存格——如果您的數據從其他地方開始,請調整。)
輸入公式後,按下 Enter 然後拖動填滿控制柄向下應用該公式到地址範圍內的所有行。此公式通過查找每個地址中的第一個空格,然後返回該空格後的所有內容——街道名稱和任何後綴來運作。確保您的地址遵循相同的結構;否則,公式可能無法如預期分割。
2. 高亮顯示整個輔助列(提取街道名稱的列),然後轉到「資料」標籤並點擊「A 到 Z 排序」。這將按升序(字母順序)排列街道名稱。
3. 在出現的排序警告對話框中,選擇「擴展選定區域」,以確保在排序時完整的地址信息保持在一起。
4. 點擊「排序」。您的地址列表現在將根據街道名稱重新排序,使相似的街道一起出現。
注意:此方法最適合標準化的地址格式。如果您的地址儲存格包含不規則模式或多個空格在街道名稱之前,則公式可能需要調整。始終檢查一些結果以確保準確性。
優點: 簡單,不需要額外工具。
缺點: 依賴於一致的格式;如果地址格式不同,則需要額外的工作。
使用輔助列在 Excel 中按街道號碼排序地址
如果您需要按數字街道號碼對地址列表進行排序——例如分配送貨順序,或識別鄰近地址——提取號碼並用於排序是很簡單的。即使地址在不同的街道上,這種方法也同樣有效。
1. 在地址列表旁邊的空白儲存格中,輸入以下公式以提取街道號碼:
=VALUE(LEFT(A1,FIND(" ",A1)-1))
(其中 A1 是列表中的第一個地址——如有必要,請調整。)輸入後按下 Enter。此公式通過定位第一個空格並返回其前的字符,將其轉換為數值來運作。如果您的地址有前置數字作為街道號碼,此公式將正確運作。然後,拖動填滿控制柄向下應用該公式到列表的其餘部分。
2. 選擇您剛才創建的輔助列,轉到「資料」標籤,並點擊「A 到 Z 排序」(或對於較新版本的 Excel 使用「最小到最大排序」)。
3. 在排序警告對話框中,選擇「擴展選定區域」以對完整行進行排序。
4. 點擊「排序」以應用。您的地址現在已按提取的街道號碼排序。
提示:如果您希望將街道號碼保留為文字,或者不需要進行數字排序,您也可以使用:
=LEFT(A1,FIND(" ",A1)-1)
這個版本將提取的號碼作為文字字符串。
注意事項:如果地址以文字而非數字開頭(例如“Main Street5”),這些公式將無法按預期工作。在使用公式前,請仔細檢查您的地址數據。
優點: 如果地址格式簡單,快速且易於使用。
缺點: 無法處理地址中有名字/後綴在號碼之前的地址,也不能處理有多個號碼的地址。
VBA 代碼 - 自動化排序地址,通過提取街道名稱/號碼並使用宏進行列表排序
對於那些處理更大、更複雜地址列表的人,或數據包含可變地址結構的人來說,使用 VBA 自動化排序過程可以非常有效。VBA 允許您快速提取街道名稱或號碼,自動排序地址列表,並最大限度地減少手動步驟。此解決方案適合您定期需要進行排序,或希望將排序集成到工作流程中。
注意:此 VBA 宏從列 A 的每一個地址中提取街道名稱(第一個空格後的部分),並根據這些名稱對整個列表進行排序。稍作調整後,它還能用於提取並按街道號碼排序。
1. 點擊「開發者」標籤 > 「Visual Basic」。在出現的窗口中,點擊「插入」>「模塊」,並將以下 VBA 程式碼粘貼到模塊窗口中:
Sub SortAddressesByStreetName()
Dim ws As Worksheet
Dim lastRow As Long
Dim tempCol As Long
Dim i As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
tempCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column + 1
' Create helper column with street names
For i = 1 To lastRow
ws.Cells(i, tempCol).Value = Trim(Mid(ws.Cells(i, 1).Value, InStr(ws.Cells(i, 1).Value, " ") + 1))
Next i
' Sort the whole data range by the helper column
ws.Sort.SortFields.Clear
ws.Sort.SortFields.Add Key:=ws.Range(ws.Cells(1, tempCol), ws.Cells(lastRow, tempCol)), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ws.Sort
.SetRange ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, tempCol))
.Header = xlNo
.Apply
End With
' Delete helper column
ws.Columns(tempCol).Delete
End Sub
2. 要運行程式碼,激活地址列表後,點擊 按鈕或按下 F5. 您在列 A 中的地址列表現在將按街道名稱的字母順序排序。
這個版本僅提取第一個空格前的數字並按數字順序排序。
疑難排解:
- 確認地址在列 A 或更新程式碼以適應數據的位置。
- 如果您的數據包括標題,您可能需要調整 Header = xlYes
以免對標題行進行排序。
- 在運行大批量 VBA 程式碼之前,始終創建備份。
優點: 不需要輔助列;適用於大型數據集或重複排序。
缺點: 初始設置需要宏權限和基本的 VBA 理解。
其他內置 Excel 方法 - 使用 Power Query 分割地址欄並直接在 Power Query 中排序而無需輔助列
Power Query,可用於現代 Excel 版本(Excel 2016 及更高版本以及 Microsoft 365),提供了一種靈活、無公式的分割地址方式,將地址拆分為街道號碼和街道名稱等部分。如果您希望避免公式和輔助列,或者您的地址遵循基本公式無法有效處理的多樣格式,此解決方案是理想的。Power Query 還可以保存您的步驟,以便隨著數據增長而更新。
1. 選擇您的地址數據並轉到 資料 標籤,然後選擇 從表格/範圍 (如果提示,創建表格)。
2. 在 Power Query 窗口中,選擇您的地址列,然後點擊 分割列 > 按分隔符. 選擇 空格 作為分隔符, 並選擇 第一個最左側的分隔符 用於 分割於 類型。
3. 這將把地址分割成兩列:街道號碼和剩餘的街道名稱/地址。根據需要重命名新列。
4. 要排序,點擊街道名稱或街道號碼列標題中的箭頭,然後選擇 升序排序 或 降序排序.
5. 點擊 關閉並載入 將排序結果插回工作表。
額外提示:
- 如果您的地址模式不一致,您可以進一步在 Power Query 中使用自定義分割或轉換來操作列。
- Power Query 步驟會自動記錄;如果您的源數據發生變化,您可以輕鬆刷新數據。
- 此方法不會更改您的原始數據,增強了原始記錄的安全性。
優點: 不會永久改變您的工作表;適用于複雜地址模式;無需管理公式。
缺點: 需要 Excel 2016 或更高版本;界面對於新用戶來說可能不熟悉。
總結和疑難解答建議:
- 記得在應用公式或 VBA 前檢查地址格式的一致性。
- 始終預覽排序結果以確認準確性,特別是在使用輔助列或程式碼之後。
- 對於具有意外結構的數據(例如缺少號碼或街道名稱在末尾),請調整公式或考慮使用 Power Query 進行更穩健的分割。
- 在使用 VBA 或高級數據工具前定期備份,以避免意外數據丟失。
- 根據您的數據量、Excel 版本和您對該工具的熟悉程度選擇最佳解決方案(公式、VBA、Power Query)。
- 如果您不確定哪種方法最好,Power Query 通常提供最大的靈活性,並且對於非破壞性編輯來說是最安全的。
相關文章:
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 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及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用