Skip to main content

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

如何在 Excel 中按街道名稱/號碼排序地址?

Author Sun Last modified

當您在 Excel 中管理地址清單時,通常需要按街道名稱或街道號碼來組織或分析數據。例如,如果您需要將住在同一條街道上的客戶分組,或者您必須按照門牌號碼的順序處理送貨,那麼按這些部分進行排序是必不可少的。然而,由於典型的地址格式會在單一儲存格中混合街道名稱和號碼,簡單的排序無法得到預期的結果。在本文中,我們將討論在 Excel 中按街道名稱或街道號碼排序地址的實用方法,分析它們的優勢及應用場景,並針對各種用戶需求提供疑難解答和替代解決方案。

使用輔助列在 Excel 中按街道名稱排序地址

使用輔助列在 Excel 中按街道號碼排序地址

使用 VBA 提取並自動按街道名稱或號碼排序地址

使用 Power Query 按街道名稱或號碼排序地址(無輔助列)


使用輔助列在 Excel 中按街道名稱排序地址

要在 Excel 中按街道名稱排序地址,您首先需要將街道名稱提取到輔助列中。這種方法簡單直接,並且當地址格式一致時效果很好,例如“123 Apple St”。它適用於快速專案或簡單的地址列表。

1. 選擇地址列表旁邊的一個空白列。在輔助列的第一個儲存格中輸入以下公式以提取街道名稱:

=MID(A1,FIND(" ",A1)+1,255)

(這裡 A1 是指您的地址數據頂部的儲存格——如果您的數據從其他地方開始,請調整。)
輸入公式後,按下 Enter 然後拖動填滿控制柄向下應用該公式到地址範圍內的所有行。此公式通過查找每個地址中的第一個空格,然後返回該空格後的所有內容——街道名稱和任何後綴來運作。確保您的地址遵循相同的結構;否則,公式可能無法如預期分割。

a screenshot of sorting addresses by street name with formula

2. 高亮顯示整個輔助列(提取街道名稱的列),然後轉到「資料」標籤並點擊「A 到 Z 排序」。這將按升序(字母順序)排列街道名稱。

a screenshot of sorting addresses by street name with formula step2 sort

3. 在出現的排序警告對話框中,選擇「擴展選定區域」,以確保在排序時完整的地址信息保持在一起。

a screenshot of sorting addresses by street name with formula step3 expand selection

4. 點擊「排序」。您的地址列表現在將根據街道名稱重新排序,使相似的街道一起出現。

a screenshot of sorting addresses by street name with formula result

注意:此方法最適合標準化的地址格式。如果您的地址儲存格包含不規則模式或多個空格在街道名稱之前,則公式可能需要調整。始終檢查一些結果以確保準確性。

優點: 簡單,不需要額外工具。
缺點: 依賴於一致的格式;如果地址格式不同,則需要額外的工作。


使用輔助列在 Excel 中按街道號碼排序地址

如果您需要按數字街道號碼對地址列表進行排序——例如分配送貨順序,或識別鄰近地址——提取號碼並用於排序是很簡單的。即使地址在不同的街道上,這種方法也同樣有效。

1. 在地址列表旁邊的空白儲存格中,輸入以下公式以提取街道號碼:

=VALUE(LEFT(A1,FIND(" ",A1)-1))

(其中 A1 是列表中的第一個地址——如有必要,請調整。)輸入後按下 Enter。此公式通過定位第一個空格並返回其前的字符,將其轉換為數值來運作。如果您的地址有前置數字作為街道號碼,此公式將正確運作。然後,拖動填滿控制柄向下應用該公式到列表的其餘部分。

a screenshot of sorting addresses by street name with formula2

2. 選擇您剛才創建的輔助列,轉到「資料」標籤,並點擊「A 到 Z 排序」(或對於較新版本的 Excel 使用「最小到最大排序」)。

a screenshot of sorting addresses by street name with formula2 step2 sort

3. 在排序警告對話框中,選擇「擴展選定區域」以對完整行進行排序。

a screenshot of sorting addresses by street name with formula2 step3 expand selection

4. 點擊「排序」以應用。您的地址現在已按提取的街道號碼排序。

a screenshot of sorting addresses by street name with formula2 result

提示:如果您希望將街道號碼保留為文字,或者不需要進行數字排序,您也可以使用:

=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. 要運行程式碼,激活地址列表後,點擊 Run button 按鈕或按下 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,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過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 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用