Tách chuỗi

Liên hệ QC
Nhờ các mem giúp mình cách tách 1 chuỗi trong excel như sau: abc-defg hoặc abc (defg).
Mình muốn tách chuỗi defg ra ( tức là sau dấu "-" hoặc dấu "(" ), vì mình có 1 database rất nhìu dòng như vậy mà nếu ngồi mà cứ delete nó từng dòng thì chắc đeo kính lun quá. mình ko rành function trog excel lắm, nhờ mem cao thủ nào chỉ giáo giúp. tks nhìu...! :)
Nếu như bạn chỉ cần delete cái ở trong ngoặc đơn (cả 2 dấu ngoặc đơn nữa), hoặc những chữ sau dấu - (kể cả dấu -), thì sao bạn không dùng Ctrl+H ?

Chọn khối ô cần sửa, nhấn Ctrl+H, gõ (*) vào trong cái ô Find What, rồi nhấn Replace All, a-lê-hấp những cái gì trong dấu ngoặc đơn và cả hai cái dấu ngoặc đơn sẽ biến khỏi bảng tính.

Trường hợp cần delete những chữ sau dấu - (và cả dấu - nữa) thì gõ -* vào trong cái khung Find What, rồi cũng nhấn Replace All.
 
Cám ơn các bạn đã giúp mình, mình đã tiết kiệm được tgian rất nhìu, sẵn đây mình có vấn đề này xin chỉ giúp lun. tức là mình có 1 đoạn chuỗi chừng 10 đến 20 từ trên 1 dòng (trên từng dòng, chuỗi nằm trong 1cell chưa Merge với các cell khác,nên có chuỗi dài qua cell thứ 2 hoặc thứ 3), mình muốn cắt khoảng 5 từ hay phân nữa xuống thành 1 dòng nữa trong cùng 1cell thì dùng hàm gì vậy bạn, database mình cũng dài cả ngàn dòng lận. tks các bạn nhìu lắm...
 
Cám ơn các bạn đã giúp mình, mình đã tiết kiệm được tgian rất nhìu, sẵn đây mình có vấn đề này xin chỉ giúp lun. tức là mình có 1 đoạn chuỗi chừng 10 đến 20 từ trên 1 dòng (trên từng dòng, chuỗi nằm trong 1cell chưa Merge với các cell khác,nên có chuỗi dài qua cell thứ 2 hoặc thứ 3), mình muốn cắt khoảng 5 từ hay phân nữa xuống thành 1 dòng nữa trong cùng 1cell thì dùng hàm gì vậy bạn, database mình cũng dài cả ngàn dòng lận. tks các bạn nhìu lắm...
Bạn chọn cell hoặc cả cột, vào Format - Cells... - Alignment - đánh dấu chọn vào ô Wrap text thử xem thế nào, từ đó tùy biến.
 
Bắt đầu từ A1 cho chuỗi kiểu trên, dùng tạm tại B1 công thức này:
=IF(ISERR(FIND("-",A1)),RIGHT(A1,LEN(A1)-FIND("(",A1)),RIGHT(A1,LEN(A1)-FIND("-",A1)))

Công thức của bạn chưa chính xác nha! Nó cho kết quả là defg).
Sửa lại chút vầy mới được:
=IF(ISERR(FIND("-";A1));MID(A1;FIND("(";A1)+1;FIND(")";A1)-FIND("(";A1)-1);RIGHT(A1;LEN(A1)-FIND("-";A1)))
 
Lần chỉnh sửa cuối:
Cám ơn bạn dat_butmuc nhìu nha!, công thức rất chính xác! :)
Còn nếu trường hợp lấy chuỗi ngược lại (tức là lấy ra abc, trước dấu "-" hoặc "(" ) là mình chỉ cần đổi hàm Right thành Left fải không ah, mình đã thử cách này nhưng kquả không chính xác khi chuỗi dài hơn. Nhờ bạn dat_butmuc chỉ giúp, Tks bạn nhìu!
http://www.giaiphapexcel.com/forum/member.php?57544-dat_butmuc
Thì bạn dùng công thức này nè:
=IF(ISERR(FIND("-";A1));LEFT(A1;FIND("(";A1)-1);LEFT(A1;FIND("-";A1)-1))
 
Các bạn cho mình hỏi chút.bài toán của mình là muốn thống kê số người theo giới tính và theo khung tuổi nhất định. Ví dụ: thống kê số nguời trong danh sách là nữ và ở độ tuổi 18-24,thống kê số nguời là nam và ở độ tuổi 25-34. với hệ thống dữ liệu gồm 1 bảng có chứa các cột(tên(cột F) - địa chỉ(G) - giới tính(H) - tuổi(K) - điện thoại....). trước khi hỏi mình đã thử với hàm COUNTIFS(H3:H50,"Female",K3:K50">=18",K3:K50"<=25") nhưng báo lỗi#NAME?.Mong các bạn gỡ rối dùm mình
 
Các bạn cho mình hỏi chút.bài toán của mình là muốn thống kê số người theo giới tính và theo khung tuổi nhất định. Ví dụ: thống kê số nguời trong danh sách là nữ và ở độ tuổi 18-24,thống kê số nguời là nam và ở độ tuổi 25-34. với hệ thống dữ liệu gồm 1 bảng có chứa các cột(tên(cột F) - địa chỉ(G) - giới tính(H) - tuổi(K) - điện thoại....). trước khi hỏi mình đã thử với hàm COUNTIFS(H3:H50,"Female",K3:K50">=18",K3:K50"<=25") nhưng báo lỗi#NAME?.Mong các bạn gỡ rối dùm mình

Nếu dùng COUNTIFS thì phải là vầy (sửa lại chút): =COUNTIFS(H3:H50,"Female",K3:K50,">=18",K3:K50,"<=25" )
 
Nếu dùng COUNTIFS thì phải là vầy (sửa lại chút): =COUNTIFS(H3:H50,"Female",K3:K50,">=18",K3:K50,"<=25" )
thong_ke.jpg
tình hình là mình thử theo CT của bạn cho mà vẫn lỗi...và thêm nữa là chả biết up file lên thế nào,up ảnh thì ảnh bé tẹo,chả thấy j luôn
 

File đính kèm

  • thong_ke.jpg
    thong_ke.jpg
    20.8 KB · Đọc: 14
  • thong_ke.jpg
    thong_ke.jpg
    20.1 KB · Đọc: 6
Lần chỉnh sửa cuối:

File đính kèm

  • Ten.xls
    22.5 KB · Đọc: 75
Tôi sưu tầm trên net cái này, gửi bạn tham khảo, không có lỗi tiêng Việt.
Cái này có thể dùng công thức được mà bạn!
Cho dù có dùng code thì cũng đâu đến nỗi phải vòng lập
Code của bạn là:
PHP:
Private Function Ten(s As String) As String
Dim temp As String, i As Integer, l As Integer
temp = s
temp = RTrim(temp)
i = Len(temp)
l = i
While i > 1 And Mid(temp, i, 1) <> Chr(32)
    i = i - 1
Wend
If i > 0 Then
    temp = Right(temp, l - i)
End If
Ten = temp
End Function
Code này chạy không chính xác trong các trường hợp:
- Cell rổng
- Cell chỉ có 1 từ
Tôi sửa thành vầy:
PHP:
Function Ten(s As String) As String
  On Error Resume Next
  s = Trim(s)
  Ten = s
  Ten = Trim(Mid(s, InStrRev(s, " "), Len(s)))
End Function
Còn công thức thì kiểu vầy:
PHP:
=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1)))
 
Công thức tính số nữ từ 18 ==> 24
=SUMPRODUCT((LEFT(H3:H17)="f")*(VALUE(RIGHT(H3:H17,2))>=18)*(VALUE(RIGHT(H3:H17,2))<=24))
Tính nam cũng tương tự như thế
ok,thank bạn rất nhiều, nhưng khi mình cho chạy công thức thì thấy 1 nhược điểm là chỉ có thể tính toán với các record đã có dữ liệu,nếu mình cho thêm cả những record trống bên dưới(để sau này nhập thêm) thì sẽ báo lỗi.bạn có cách nào chỉnh giúp mình được không?
 
ok,thank bạn rất nhiều, nhưng khi mình cho chạy công thức thì thấy 1 nhược điểm là chỉ có thể tính toán với các record đã có dữ liệu,nếu mình cho thêm cả những record trống bên dưới(để sau này nhập thêm) thì sẽ báo lỗi.bạn có cách nào chỉnh giúp mình được không?
Vậy bạn nên đặt 1 name động chứa dữ liệu Gender&Age: nhấn Ctr+F3, nhập trong mục Names in workbook: Vung, trong mục Refers to nhập công thức
=OFFSET('Gạn lọc'!$H$3,,,COUNTA('Gạn lọc'!$H:$H)-1,1)
rồi nhấn OK
sau đó bạn dùng công thức sau để tính
=SUMPRODUCT((LEFT(Vung)="f")*(--(RIGHT(Vung,2))>=18)*(--(RIGHT(Vung,2))<=24))
 
Tách và chèn chuỗi

em xin hỏi, muốn tách chuỗi VD: họ và tên ra hai cột khác nhau đồng thời chèn thêm Anh/chị vào trước tên thì làm thế nào? mong các bác chỉ giùm...THanks

http://www.vatgia.com/viscovn
 
Bạn nào có thể giải thích được chuổi công thức này giúp không, nghiên cứu hoài không hiểu sao lệnh left và right này lại thực hiện được tham chiếu $B5:B12... được, tách độc lập ra thì rõ ràng excel báo lỗi.
=IF(AND(B13<>"",C13=C12,G13=G12),A12,IF($E13=156,"PN"&TEXT(MAX(IF(LEFT($A$5:A12,2)="PN",RIGHT($A$5:A12,3),0)+1),"000"),IF($F13=156,"PX"&TEXT(MAX(IF(LEFT($A$5:A12,2)="PX",RIGHT($A$5:A12,3),0)+1),"000"),"")))
 
Web KT
Back
Top Bottom