返回列表 上一主題 發帖

[發問] 地址資料分割成多欄

[發問] 地址資料分割成多欄

請問地址資料要分割成多欄 B2、C2公式?謝謝!



地址.zip (9.04 KB)

謝謝論壇,謝謝各位前輩
後學藉此帖練習VBA陣列,請各位前輩指教

執行結果:



Option Explicit
Sub TEST()
Dim Brr, Pq, Pa, Q, i&, j%, N%, c%, Y&, T$
Range([B2], Cells(Rows.Count, 1).End(xlUp)(1, 4)).ClearContents
Brr = Range([D1], Cells(Rows.Count, 1).End(xlUp))
Q = [{"鄉","鎮","市","區"}]
For i = 2 To UBound(Brr)
   T = Brr(i, 1): Brr(i - 1, 1) = Left(T, 3): T = Mid(T, 4)
   For j = 1 To 4
      Pq = Split(T, Q(j))
      If UBound(Pq) > 0 Then c = j: N = N + 1: Pa = Pq
   Next
   If N = 1 Then
      Brr(i - 1, 2) = Pa(0) & Q(c)
      Brr(i - 1, 3) = Mid(T, Len(Pa(0)) + 2)
      Else: Y = Y + 1
   End If
   N = 0
Next
[B2].Resize(UBound(Brr) - 1, 3) = Brr
If Y > 0 Then MsgBox "有 " & Y & " 個無法辨別!"
End Sub
用行動裝置瀏覽論壇學習很方便,謝謝論壇經營團隊
請大家一起上論壇來交流

TOP

本帖最後由 ML089 於 2021-11-19 13:12 編輯

地址公式很難100%完全是對的
建議公式處理完還是要逐筆看看,才不會誤事。
尤其離島、山區的地址要格外小心。

上網查看110年行政區名與路名
縣市 3個字
鄉鎮市區 最多4個字
路名 最多9個字
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 6# 准提部林

測試沒問題,感謝您!

TOP

B2:
=LEFT(A2,3)

C2:
=MID(LEFT(A2,-LOOKUP(,-FIND({"鄉","鎮","市","區"},A2,4))),4,9)

D2:
=MID(A2,LEN(B2&C2)+1,99)

若地址規則不確定, 要另想辦法~~

TOP

回復 3# samwang

測試沒問題,感謝您!

TOP

回復 2# hcm19522

公式測試沒問題,感謝您!

TOP

回復 1# aer

請測試看看,謝謝
Sub test()
Dim Arr, a, i&
Arr = Range([d1], [a65536].End(3))
For i = 2 To UBound(Arr)
    Arr(i, 2) = Left(Arr(i, 1), 3)
    a = Mid(Arr(i, 1), 4)
    If InStr(a, "鄉") Then
        Arr(i, 3) = Split(a, "鄉")(0) & "鄉"
        Arr(i, 4) = Split(a, "鄉")(1)
    ElseIf InStr(a, "鎮") Then
        Arr(i, 3) = Split(a, "鎮")(0) & "鎮"
        Arr(i, 4) = Split(a, "鎮")(1)
    ElseIf InStr(a, "市") Then
        Arr(i, 3) = Split(a, "市")(0) & "市"
        Arr(i, 4) = Split(a, "市")(1)
    ElseIf InStr(a, "區") Then
        Arr(i, 3) = Split(a, "區")(0) & "區"
        Arr(i, 4) = Split(a, "區")(1)
    End If
Next
Range("a1").Resize(UBound(Arr), 4) = Arr
End Sub

TOP

google"EXCEL迷"  blog  或google網址:https://hcm19522.blogspot.com/

TOP

        靜思自在 : 閒人無樂趣,忙人無是非。
返回列表 上一主題