Hiển thị kết quả từ 1 đến 10 / 10
  1. #1
    Tham gia
    09-11-2003
    Bài viết
    26
    Like
    0
    Thanked 2 Times in 1 Post

    Tự Viết Hàm Tách Họ Và Tên Trong Excel

    Giả sử mẹ bạn là một giáo viên trường Văn Hiến. Mẹ bạn vừa nhận chủ nhiệm 4 lớp 10 mới vào, sáng nay mẹ bạn đánh giùm danh sách hs của 4 lớp đó. Bạn đánh một mạch xong hết, nhưng khổ nỗi đó mới chỉ là danh sách lấy theo điểm chưa được sắp xếp theo tên mà họ tên lại chung một cột nữa chứ, làm sao đây ? Đánh lại danh sách đó có chia hai cột họ và tên ư, không đủ can đảm (vì một lớp gần 70 người), hay là cắt tên dán ra một cột riêng thì lâu quá. Bạn sực nhớ lại :" A ! mình đang làm bằng Excel mà. Tại sao mình không viết một hàm để tách họ và tên ra riêng nhỉ ?". Ý tưởng hình thành và thế là bạn bắt tay vào làm ngay.
    Trước tiên bạn vào Menu Tools-Macro-Visual Basic Editor- Vào Insert - Module, đánh vào đoạn code dưới đây

    Function Tach(ht As String, a As Integer) As String
    Dim s1, s2 As String
    Dim C, L As Integer
    ht = Trim(ht) 'Hàm Trim dùng để cắt những khoảng trắng thừa vô nghĩa đi
    L = Len(ht)
    s1 = Left(ht, L)
    s2 = Right(s1, 1)
    Do While s2 <> " "
    L = L - 1
    s1 = Left(ht, L)
    s2 = Right(s1, 1)
    Loop

    If a = 0 Then
    Tach = Left(ht, L)
    Else
    If a = 1 Then
    Tach = Right(ht, Len(ht) - L)
    End If
    End If
    End Function

    Xong bạn lưu lại, nhớ chọn ở mục Save as type là Microsoft Excel Add-In(*.xla) rồi ở mục File name bạn đánh tên vào - Save. Đóng khung soạn thảo này lại, vào Tools-Add-Ins... - chọn Browse - nhấp vào tên mà lúc nãy bạn lưu vào - OK. vậy là xong, bây giờ nếu muốn tách họ bạn chỉ việc gõ
    =tach(A2,0)
    tương tự nếu muốn tách tên thì gõ
    =tach(A2,1)
    (ở đây 0 và 1 chỉ là đối số để phân biệt là mình đang tách tên hay tách họ giống như 0 và 1 trong hàm VLOOKUP vậy)
    Quote Quote

  2. 2 thành viên Like bài viết này:


  3. #2
    Tham gia
    17-05-2004
    Bài viết
    11
    Like
    0
    Thanked 2 Times in 1 Post

    Cần chú ý !

    Có thể dùng hàm built-in functions để tách họ+chữ lót và tên riêng mà không cần dùng Visual Basic. Cách dùng tại http://www.diendantinhoc.com/showthread.htm?t=44539

    T.

  4. 2 thành viên Like bài viết này:


  5. #3
    Tham gia
    05-05-2008
    Bài viết
    10
    Like
    0
    Thanked 2 Times in 1 Post
    Mình có cách này hay lắm, mà ko phải viết hàm trong VB đâu nhé: đây nè:
    Giả sử cột họ tên đầy đủ trong exel là B5 thì ta có cột :
    HỌ: =LEFT(B5,FIND(" ",B5,1)-1)
    Đệm: =TRIM(REPLACE(LEFT(B5,FIND("*",SUBSTITUTE(B5," ","*",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1),1,FIND(" ",B5,1)-1,""))
    Tên: =RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5," ","*",LEN(B5)-LEN(SUBSTITUTE(B5," ","")))))

    Ngọc Anh

  6. 2 thành viên Like bài viết này:


  7. #4
    Tham gia
    20-09-2007
    Bài viết
    389
    Like
    0
    Thanked 7 Times in 4 Posts
    Ôi... mấy cái này nói hoài... nói chung nhiều cách lắm... Làm chơi cho vui thôi chứ nếu là tôi thì tôi sẽ dùng công cụ Text to Column... Bấm cái rẹt nó tách ra hết.. khỏi hàm, code gì ráo trọi

  8. 2 thành viên Like bài viết này:


  9. #5
    Tham gia
    21-03-2008
    Bài viết
    516
    Like
    0
    Thanked 4 Times in 3 Posts
    Quote Được gửi bởi anhtuan1066 View Post
    Ôi... mấy cái này nói hoài... nói chung nhiều cách lắm... Làm chơi cho vui thôi chứ nếu là tôi thì tôi sẽ dùng công cụ Text to Column... Bấm cái rẹt nó tách ra hết.. khỏi hàm, code gì ráo trọi
    cái này hay nhĩ, tui dùng excel ko biết bao lâu roài mà sao ko biết chức năng này thx thx

  10. 2 thành viên Like bài viết này:


  11. #6
    Tham gia
    20-09-2007
    Bài viết
    389
    Like
    0
    Thanked 7 Times in 4 Posts
    Quote Được gửi bởi CounterStrike View Post
    cái này hay nhĩ, tui dùng excel ko biết bao lâu roài mà sao ko biết chức năng này thx thx
    He... he... có ai mà biết hết mọi thứ đâu nhỉ? Nếu mà biết tuốt chắc khỏi cần lên diển đàn này quá... Về nhà mở trường đại học dạy luôn
    Ha.. ha..

  12. 2 thành viên Like bài viết này:


  13. #7
    Tham gia
    27-07-2008
    Bài viết
    2
    Like
    0
    Thanked 2 Times in 1 Post

    Tẽt column

    Quote Được gửi bởi anhtuan1066 View Post
    Ôi... mấy cái này nói hoài... nói chung nhiều cách lắm... Làm chơi cho vui thôi chứ nếu là tôi thì tôi sẽ dùng công cụ Text to Column... Bấm cái rẹt nó tách ra hết.. khỏi hàm, code gì ráo trọi
    Tẽt column thi minh lay o dau va su dung nhu the nao vay ban??Thanks!!

  14. 2 thành viên Like bài viết này:


  15. #8
    Tham gia
    07-03-2008
    Location
    Đất thép
    Bài viết
    553
    Like
    0
    Thanked 3 Times in 2 Posts
    Menu Data->Text to Columns->Step 1 : chọn Delimited -> Step 2: chọn Space ( hiểu là mỗi text phân biệt bằng khoảng trắng )-> Step 3 : Mục Destination chọn vùng cần tách -> Chọn Finish.

    PS: Nhưng cách này hơi dở ở chổ người ta muốn tách họ và tên ra thôi (VD: Nguyen Van A -> Họ(cột 1): Nguyen, tên(cột2): Van A) nhưng cách này tách luôn cả phần tên: Van A thành 2 cột riêng biệt (VD: Nguyen Van A -> Họ(cột 1): Nguyen, tên (cột 2): Van,tên (cột 3):A

  16. 2 thành viên Like bài viết này:


  17. #9
    Tham gia
    25-07-2008
    Bài viết
    12
    Like
    0
    Thanked 4 Times in 3 Posts
    Cách này dở quá bạn ạ, ví dụ bạn muốn tách Nguyễn Văn A thành cột 1: Nguyễn Văn, cột 2: A thì không làm được bạn nhỉ????

  18. 2 thành viên Like bài viết này:


  19. #10
    Tham gia
    17-03-2012
    Bài viết
    2
    Like
    0
    Thanked 2 Times in 1 Post
    Quote Được gửi bởi hulabro View Post
    Mình có cách này hay lắm, mà ko phải viết hàm trong VB đâu nhé: đây nè:
    Giả sử cột họ tên đầy đủ trong exel là B5 thì ta có cột :
    HỌ: =LEFT(B5,FIND(" ",B5,1)-1)
    Đệm: =TRIM(REPLACE(LEFT(B5,FIND("*",SUBSTITUTE(B5," ","*",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1),1,FIND(" ",B5,1)-1,""))
    Tên: =RIGHT(B5,LEN(B5)-FIND("*",SUBSTITUTE(B5," ","*",LEN(B5)-LEN(SUBSTITUTE(B5," ","")))))

    Ngọc Anh
    Cho mình hỏi. Mình có 1 cột Tên Chồng và vợ như thế này: nguyễn Văn chí - Nguyễn Thị Nở. Nếu như có ký tự "-" thì tách dễ dàng. Nhưng khi chỉ có mỗi tên vợ hoặc chồng thì báo #VALUE. Các bạn có cách nào giúp với. Thanhk

  20. 2 thành viên Like bài viết này:


Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •