Mừng Sinh Nhật GPE 11: sáng 25/6 Hà Nội; 1/7 Huế/Đà Nẵng; Trưa 2/7 TPHCM

Cách lấy 1 phần trong chuỗi, xử lý trong excel làm thế nào?

Thảo luận trong 'Xử lý chuỗi ký tự' bắt đầu bởi liemnv1402, 15 Tháng năm 2010.

  1. liemnv1402

    liemnv1402 Thành viên mới

    Cách lấy 1 phần trong chuỗi, xử lý trong excel làm thế nào?
    Các anh chị giúp tôi nhé.

    VD: Có chuỗi là: Nguyễn Viết Liêm (a0904689958z@gmail.com)

    Tôi muốn lấy ra: a0904689958z@gmail.com từ chuỗi trên làm thế nào các anh chị ?

    gửi cho tôi qua y meo: a0904689958z@gmail.com nhé.
    Thaks!
     
    Lần chỉnh sửa cuối: 15 Tháng năm 2010
  2. MinhCong

    MinhCong Thành viên gắn bó

    VD tại ô A1=Nguyễn Viết Liêm (a0904689958z@gmail.com)
    Tại ô B1 Bạn nhập công thức sau:
    Mã:
    B1 =SUBSTITUTE(RIGHT(A1,LEN(A1)-FIND("(",A1)),")","")
    Tùy theo định dạng của máy Bạn thay dấu phẩy "," thành dấu chấm phẩy ";" nhé!
     
  3. dat_butmuc

    dat_butmuc weitə r ə'pɔn prɔvidəns


    Công thức của bạn MinhCong tốt rồi,
    Thêm một cách nữa:
    PHP:
    =MID(A1,FIND("(",A1)+1,FIND(")",A1)-FIND("(",A1)-1)
     
  4. concogia

    concogia Gội rồi mới Cạo

    Vui quá, cũng tham gia một cách
    =MID(A1,FIND("(",A1)+1,LEN(A1)-FIND("(",A1)-1)
     
  5. ktstqt

    ktstqt Thành viên mới

    Đúng vấn đề mình đang quan tâm, các bro giúp mình với nhé :)
    MÌnh đang cần lọc danh sách mail trong chuỗi mà bi' chưa giải quyết dc.
    VD dẫy email sau làm thế nào lọc ra danh sách tùng mail đc ??? Thanks các bro nhiều :)
    ,<> ";>, "Nguyen Xuan Son" <xuan-son.nguyen@polytechnique.org>;nhapx@vnu.edu.vn; taita@vnu.edu.vn; nnthanh@vnu.edu.vn; nhson@vnu.edu.vn; anhnv@vnu.edu.vn;;> binhnt@vnu.edu.vn; dongtvp@vnu.edu.vn; ducvm@vnu.edu.vn; hand@vnu.edu.vn; hoandd@vnu.edu.vn;;> huyennt@vnu.edu.vn; locnv@vnu.edu.vn; namlt@vnu.edu.vn; ngocpb@vnu.edu.vn; nont@vnu.edu.vn;;> ntmphuong@vnu.edu.vn; ntntrang@vnu.edu.vn; trongtv@vnu.edu.vn; thinhht@vnu.edu.vn;;> tuent@vnu.edu.vn; thientc@vnu.edu.vn; dungcc@vnu.edu.vn; haudb@vnu.edu.vn; huett_htqt@vnu.edu.vn;;> huytn@vnu.edu.vn; phuongbh@vnu.edu.vn; anhtk@vnu.edu.vn; nguyentuananh@vnu.edu.vn;;> bachp@vnu.edu.vn; chiltk@vnu.edu.vn; chauvtn@vnu.edu.vn;
     
  6. khoavu87

    khoavu87 Vũ Trần Khoa

    B1:
    Cái này bạn thử dùng chức năng Text to columns... sau đó chọn Delimited---->Chọn Next---> hộp thoại xuất hiện

    --->Tích chọn Other và điền (;) sau đó chọn Next --->0k.
    B2: bạn copy vùng vừa thực hiện bước 1 sau đó---->Paste Special.... tích vào TRANSPOSE để chuyển về cột xem sao.
    b3: vì khi dùng Text to... sau khi tách có một số mail có chứa >chiltk@.... bạn có thể dùng SUBSTITUTE (...,">"," ") để làm mất dấu ">"
    Pm : cách này thủ công thui, còn dùng hàm thì đợi tiếp mọi ng trả lời
     
  7. nonut

    nonut Thành viên chính thức

    nhân tiện cho mình hỏi luôn cách lấy ký tự thứ trong 1 chuỗi

    Ví dụ: text: "Giấy Ivory400 720x680 12000 tờ"
    Dùng công thức nào tách 3 dữ liệu: Ivory400, 720x680 và 12000 (không dùng Text to colum nhé)

    Cám ơn các bác đã quan tâm.
     
  8. dat_butmuc

    dat_butmuc weitə r ə'pɔn prɔvidəns

    Bạn gửi nhiều dữ liệu lên đi xem hết các kiểu như thế nào để làm cho tổng quát , một cái thì dùng công thức làm gì? Nhé !
     
  9. nonut

    nonut Thành viên chính thức

    Đây bác ạ, dữ liệu nhiều lắm nhưng đa số là thế này
    Cần phải tách từ chỗ kích thước ra làm 2 nữa để có thể tính ra trọng lượng của đống giấy.
     

    Các file đính kèm:

  10. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Giả sử dữ liệu của bạn nằm tại A1 trở xuống... Vậy ta làm như sau:
    1> Đặt name
    - Đặt con trỏ tại dòng 1 rồi vào menu Insert\Name\Define và đặt 1 name
    PHP:
    Arr =EVALUATE("{""" SUBSTITUTE(Sheet1!$A1," ",""";""") & """}")
    2> Công thức
    3 giá trị mà bạn cần được trả về từ 3 công thức sau:
    PHP:
    =INDEX(Arr,2)
    =
    INDEX(Arr,3)
    =
    INDEX(Arr,4)
     

    Các file đính kèm:

    • Test1.xls
      Kích thước:
      13.5 KB
      Đọc:
      297
  11. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Lúc đầu bạn hỏi khác... giờ đưa dữ liệu lên lại khác xa với những gì đã hỏi ---> Chết người ta còn gì
    Hic...
     

    Các file đính kèm:

  12. nonut

    nonut Thành viên chính thức

    hic, bác nhìn kỹ lại cột E rồi giúp nốt em cái phần kích thước để tính ra cân nặng!
    Em vẫn chưa xử lý được.
     
  13. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Cột E bạn có sẳn công thức rồi cơ mà... Bạn còn muốn thế nào nữa?
     
  14. nonut

    nonut Thành viên chính thức

    Có nhưng chưa đủ bác ạ, em vẫn phải ghi lại một cách thủ công kích thước khổ giấy vì giữa chiều dài và chiều rộng có chữ "x" ở giữa (ví dụ 60x80) thì em ko biết cách để nó tự lấy 60*80 được.
     
  15. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Ah... tôi hiểu rồi (nói 1 lần làm luôn có phải khỏe hơn không?)
    Xem file mới này (chú ý các name trong Define name nhé)
     

    Các file đính kèm:

  16. Xung_Doanh

    Xung_Doanh Thành viên mới

    Mình có một câu hỏi về tách chuỗi như thế này:
    chuỗi: abc2456xyz9874568ppkh4587985.....
    Tách riêng các phần 2456 ra. (nhiều phần số: 2456 ; 9874568 ...)
    tách riêng các phần abc ra. (nhiều phần chữ)
    Trong đó abc có thể gồm nhiều ký tự.
    2456 có thể gồm nhiều số.
     
  17. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Yêu cầu này quá dễ nếu dùng VBA
    PHP:
    Function ExtractStr(Text As StringSep As StringiChoose As Boolean) As String
      With CreateObject
    ("VBScript.RegExp")
        .Global = 
    True
        
    .Pattern IIf(iChoose"\D""\d")
        
    ExtractStr = .Replace(Text" ")
      
    End With
      ExtractStr 
    Replace(WorksheetFunction.Trim(ExtractStr), " "Sep)
    End Function
    - Giả sử dữ liệu của bạn nằm tại cell A1
    - Để tách lấy phần số, gõ vào B1 công thức : =ExtractStr($A1,"; ",TRUE)
    - Để tách lấy phần chữ, gõ vào C1 công thức : =ExtractStr($A1,"; ",FALSE)
     

    Các file đính kèm:

  18. Xung_Doanh

    Xung_Doanh Thành viên mới

    Cám ơn bác nhé! Em có chút ý kiến là thay true = số <>0 và False = 0 kết quả vẫn không đổi.
    Cho em hỏi thêm nữa là: với cái đơn giản hơn:
    abc12345
    Trong VBA, em muốn tách riêng phần 12345 thành 1 biến mới để sử dụng.
    Bác làm cái kết cấu dễ hiểu được không ạ! Em đang tập viết hàm :D
     
  19. ndu96081631

    ndu96081631 Ăn cùng GPE, Ở cùng GPE, Sống cùng GPE Staff Member Super Moderator

    Nếu chỉ tách số thôi thì sửa hàm trên lại thành:
    PHP:
    Function ExtractStr(Text As String) As Double
      On Error Resume Next
      With CreateObject
    ("VBScript.RegExp")
        .Global = 
    True
        
    .Pattern "\D"
        
    ExtractStr = .Replace(Text"")
      
    End With
    End 
    Function
    Càng đơn giản
     
  20. Xung_Doanh

    Xung_Doanh Thành viên mới

    Cám ơn bác nhé!
    Để em hỏi rõ hơn bằng chính hàm em đang làm bác nhé:
    Hàm đây:
    Kết quả trả về của hàm này là ghép nối 3 giá trị trong 3 ô a, b, c thành một ô duy nhất với dấu x ở giữa các giá trị trong ô a, b, c.
    VD:
    a: V
    b:60
    c: 12
    sẽ trả về kết quả là: Vx60x12
    Tuy nhiên, em gặp trường hợp nếu cho b và c cũng đều có chữ thì kết quả lại sai :(.
    Em khắc phục bằng cách dùng biến k tách riêng phần số của b ra.
    Biến k mình sẽ ghi như thế nào để nó tách riêng phần số của b ra vậy ạ!
    Em đang tập viết hàm, bác có thể dựa vào hàm em đang viết được không ạ?
    Cám ơn bác một lần nữa.
     
    Lần chỉnh sửa cuối: 26 Tháng sáu 2010

Chia sẻ trang này