Hàm trích xuất xâu ký tự từ xâu đã có (1 người xem)

Người dùng đang xem chủ đề này

netvietcomputer

Thành viên mới
Tham gia
5/7/09
Bài viết
42
Được thích
1
Em có dữ liệu như sau
Tại cột A có dữ liệu trộn lẫn địa chỉ là Thôn + Xã
[TABLE="width: 197"]
[TR]
[TD="align: left"]A1: TDP4 + NAM LÝ[/TD]
[/TR]
[TR]
[TD="align: left"]A2: TÂN HÓA ; MINH HÓA[/TD]
[/TR]
[TR]
[TD="align: left"]A3: NGUYỆT ÁNG - TÂN NINH[/TD]
[/TR]
[TR]
[TD="align: left"]A4: THÔN 7 + LỘC NINH
Có hàm nào giúp em đưa:
1. Thôn vào cột B, từ B1 cho đến B4:
2. Xã vào cột C, từ C1 đến C4[/TD]
[/TR]
[/TABLE]
Trong đó thôn và xã được cách nhau bởi dấu +, - hoặc ;
Có nghĩa Cột B cứ trích xâu từ bên trái cho đến các dấu trên thì dừng lại
Cột C trích từ bên phải xâu, nếu gặp các ký tự trên thì dừng lại
Cảm ơn anh chị
 
Em có dữ liệu như sau
Tại cột A có dữ liệu trộn lẫn địa chỉ là Thôn + Xã
[TABLE="width: 197"]
[TR]
[TD="align: left"]A1: TDP4 + NAM LÝ[/TD]
[/TR]
[TR]
[TD="align: left"]A2: TÂN HÓA ; MINH HÓA[/TD]
[/TR]
[TR]
[TD="align: left"]A3: NGUYỆT ÁNG - TÂN NINH[/TD]
[/TR]
[TR]
[TD="align: left"]A4: THÔN 7 + LỘC NINH
Có hàm nào giúp em đưa:
1. Thôn vào cột B, từ B1 cho đến B4:
2. Xã vào cột C, từ C1 đến C4[/TD]
[/TR]
[/TABLE]
Trong đó thôn và xã được cách nhau bởi dấu +, - hoặc ;
Có nghĩa Cột B cứ trích xâu từ bên trái cho đến các dấu trên thì dừng lại
Cột C trích từ bên phải xâu, nếu gặp các ký tự trên thì dừng lại
Cảm ơn anh chị
Tại B1 nhập công thức:
Mã:
=IFERROR(IFERROR(LEFT(A1,LEN(TRIM(A1))-FIND("+",A1)-2),LEFT(A1,LEN(TRIM(A1))-FIND(";",A1)-1)),LEFT(A1,LEN(TRIM(A1))-FIND("-",A1)))
Tại C1 nhập công thức:
Mã:
=IFERROR(IFERROR(RIGHT(A1,LEN(TRIM(A1))-FIND("+",A1)),RIGHT(A1,LEN(TRIM(A1))-FIND(";",A1)-1)),RIGHT(A1,LEN(TRIM(A1))-FIND("-",A1)))
 
Em có dữ liệu như sau
Tại cột A có dữ liệu trộn lẫn địa chỉ là Thôn + Xã
[TABLE="width: 197"]
[TR]
[TD="align: left"]A1: TDP4 + NAM LÝ[/TD]
[/TR]
[TR]
[TD="align: left"]A2: TÂN HÓA ; MINH HÓA[/TD]
[/TR]
[TR]
[TD="align: left"]A3: NGUYỆT ÁNG - TÂN NINH[/TD]
[/TR]
[TR]
[TD="align: left"]A4: THÔN 7 + LỘC NINH
Có hàm nào giúp em đưa:
1. Thôn vào cột B, từ B1 cho đến B4:
2. Xã vào cột C, từ C1 đến C4[/TD]
[/TR]
[/TABLE]
Trong đó thôn và xã được cách nhau bởi dấu +, - hoặc ;
Có nghĩa Cột B cứ trích xâu từ bên trái cho đến các dấu trên thì dừng lại
Cột C trích từ bên phải xâu, nếu gặp các ký tự trên thì dừng lại
Cảm ơn anh chị
Xin chia sẻ 1 cách không dùng hàm:
PHP:
Sub abc()
    Application.ScreenUpdating = False
With Sheets(1).Range("A1:A100")
    .Replace "+", "."
    .Replace ";", "."
    .Replace "-", "."
End With

   Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=".", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
  Application.ScreenUpdating = True
End Sub
 
Tại B1 nhập công thức:
Mã:
=IFERROR(IFERROR(LEFT(A1,LEN(TRIM(A1))-FIND("+",A1)-2),LEFT(A1,LEN(TRIM(A1))-FIND(";",A1)-1)),LEFT(A1,LEN(TRIM(A1))-FIND("-",A1)))
Tại C1 nhập công thức:
Mã:
=IFERROR(IFERROR(RIGHT(A1,LEN(TRIM(A1))-FIND("+",A1)),RIGHT(A1,LEN(TRIM(A1))-FIND(";",A1)-1)),RIGHT(A1,LEN(TRIM(A1))-FIND("-",A1)))
Xin góp vui một tí:
Mã:
[B1]=TRIM(LEFT(A1,FIND(";",SUBSTITUTE(SUBSTITUTE(A1,"-",";"),"+",";"))-1))
Mã:
[C1]=TRIM(MID(A1,FIND(";",SUBSTITUTE(SUBSTITUTE(A1,"-",";"),"+",";"))+1,LEN(A1)))
 

Bài viết mới nhất

Back
Top Bottom