Tách chuỗi (1 người xem)

Liên hệ QC

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

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
459
Được thích
395
Nghề nghiệp
Economic
Ví dụ trong một cell em có tên " Vũ Văn Sang". Có cách nào để em lấy được tên Sang ở trong đó Sang cell bên cạnh không?
Các anh chị cao thủ xem file và chỉ dạy
Xin cám ơn
 

File đính kèm

Vụ tách tên đã có nói nhiều.. bạn search tìm sẽ thấy... Tôi chỉ trã lời bạn 2 câu còn lại:
1> Công thức tại Cell F2
Mã:
=SUMPRODUCT((DAY($C2:$C6)=DAY($F$1))*(MONTH($C2:$C6)=MONTH($F$1)))
2> Conditional Formating: Quét chọn từ C2 đến cuối, gõ công thức vào CF:
Mã:
=AND(DAY($C2)=DAY($F$1),MONTH($C2)=MONTH($F$1))
ANH TUẤN
 
Trong công thức này có một số em không hiểu, rất mong được những đàn anh đi trước chỉ dạy
=IF(ISERROR(FIND(" ",TRIM(A2),1)),"",RIGHT(TRIM(A2),LEN(TRIM(A2)) -FIND("#",SUBSTITUTE(TRIM(A2)," ","#",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))))
---> đặc biệt là ký tự "#" có ý nghĩa đại diện như thế nào ạ?
 
feelingyes đã viết:
Trong công thức này có một số em không hiểu, rất mong được những đàn anh đi trước chỉ dạy
=IF(ISERROR(FIND(" ",TRIM(A2),1)),"",RIGHT(TRIM(A2),LEN(TRIM(A2)) -FIND("#",SUBSTITUTE(TRIM(A2)," ","#",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))))
---> đặc biệt là ký tự "#" có ý nghĩa đại diện như thế nào ạ?

1. Trước tiên CT này kiểm tra xem chuỗi A2 có chứa khoảng trắng " " không nếu không có thì trả về rỗng ""
2. Nếu có chứa khoảng trắng thì dùng hàm Right cắt chuỗi A2 từ bên phải với độ dài được tính ra từ cụm:
LEN(TRIM(A2))-FIND("#",SUBSTITUTE(TRIM(A2)," ","#",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))

3. Phần đầu của cụm trên tính độ dài của chuỗi A2 (đã loại bớt các khoảng trắng dư thừa)
4. Phần sau quan trọng đây:
FIND("#",SUBSTITUTE(TRIM(A2)," ","#",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))

5. Tìm vị trí ký tự # trong chuỗi là kết quả trả về của cụm
SUBSTITUTE(TRIM(A2)," ","#",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ","")))

6. Cụm CT trên sẽ tìm các khoảng trắng trong chuỗi A2 và thay vào bằng ký tự "#" và bắt đầu thay tại instance thứ LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ","")) là kết quả trả về của cụm CT này

7. Cụm CT này LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ","")) lấy chiều dài của chuỗi A2 trừ cho chiều dài đã loại bỏ tất cả khoảng trắng --> số instance cần thay "#" vào.

8. Từ đó CT sẽ xác định được vị trí cần tìm tại bước 4 (hàm Find), và từ đó dùng hàm Right tại bước 2 cắt ra chuỗi cần thiết


Hy vọng bạn hiểu, có thắc mắc gì thì hỏi lại
TP
 
Có 1 cách khác đễ cắt tên!
Bước 1: Lấy vị trị khoảng trắng cuối cùng:
Mã:
DAI =ROW(INDIRECT("1:"&LEN(TRIM($A2))))
Mã:
VT =MAX((MID(TRIM($A2),DAI,1)=" ")*DAI)
Bước 2: Tách tên:
Mã:
 =TRIM(RIGHT(TRIM($A2),LEN(TRIM($A2))-VT))
ANH TUẤN
 
Lần chỉnh sửa cuối:
Tôi nghĩ thuật toán nhanh nhất đễ tách tên (cho cã VBA và công thức) là quét ký tự ngược từ cuối lên đầu.. đến khi gặp khoảng trắng thì dùng lại, xác định vị trí rồi dùng hàm xử lý chuổi đễ tách:
Quy trình như sau:
1> Cắt các ký tự trắng bị thừa
Mã:
TU=TRIM($A1)
2>Quét ngược từ cuối lên đầu:
Mã:
KT =MID(TU,LEN(TU)+1-ROW($1:$100),1)
3> Đặt điều kiện đễ lấy vị trị thứ i nếu quá trình quét gặp phải khoảng trắng
Mã:
VT =MATCH(TRUE,KT=" ",0)
Cuối cùng là công thức:
Mã:
=RIGHT(TU,VT-1)
Đây là tôi chia ra từng công đoạn cho các bạn tiện theo dỏi.. còn như làm thực sự thì ta có thể rút gọn hơn với 1 name duy nhất
Mã:
VT =MATCH(TRUE,MID(TRIM($A1),LEN(TRIM($A1))-ROW($1:$100),1)=" ",0)
Và công thức:
Mã:
=RIGHT(TRIM($A1),VT)
Công thức này còn 1 lổi nữa, đó là nếu họ và tên nhập vào chỉ có 1 từ duy nhất thì sẽ bị #NA... Các bạn tự tìm hiểu nhé... Tất nhiên bùn lắm thì ta sẽ ISNA, nhưng như thế thì.. chẳng hay ho gì... (Suy nghĩ kỷ sẽ thấy việc xử lý lổi #NA trong trường hợp này cực kỳ dể)
ANH TUẤN
 
thường thì tên một người có khoảng từ 1 đến 6 chữ cái, còn một cách khác để tách tên là dùng hàm if , right, left. CT như sau :
tại ô D2 (ô lấy tên) :
=IF(LEFT(RIGHT(C2,2),1)=" ",RIGHT(C2,1),IF(LEFT(RIGHT(C2,3),1)=" ",RIGHT(C2,2),IF(LEFT(RIGHT(C2,4),1)=" ",RIGHT(C2,3),IF(LEFT(RIGHT(C2,5),1)=" ",RIGHT(C2,4),IF(LEFT(RIGHT(C2,6),1)=" ",RIGHT(C2,5),IF(LEFT(RIGHT(C2,7),1)=" ",RIGHT(C2,6),"#")))))).
để lấy họ và tên lót :
=LEFT(C2,LEN(C2)-LEN(D2))
 
mình mới tạo một CT mới ngắn hơn nè, các bạn xem thử
=RIGHT(A2,(LEN(A2)-SEARCH("-",SUBSTITUTE(A2," ","-",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))))
 
hoangdanh282vn đã viết:
mình mới tạo một CT mới ngắn hơn nè, các bạn xem thử
=RIGHT(A2,(LEN(A2)-SEARCH("-",SUBSTITUTE(A2," ","-",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))))))

Tôi thử thì thấy còn 1 trường hợp không ra là khi sau Tên bị dư khoảng trắng, tôi không biết bỏ TRIM() vào đâu để loại trường hợp này, bạn làm tiếp nhé.
 
viendo đã viết:
Tôi thử thì thấy còn 1 trường hợp không ra là khi sau Tên bị dư khoảng trắng, tôi không biết bỏ TRIM() vào đâu để loại trường hợp này, bạn làm tiếp nhé.
Cứ thấy A2 thì bạn thêm trim vào. vì A2 chính là chuỗi ta cần xử lý.
 
Tách chuỗi qua phải từ khoảng trắng đầu tiên

Tôi đang xử lý số liệu tên và địa chỉ trên excel có dạng:
123/5 Nguyễn Trãi
Xin hỏi:
Để tách lấy chuỗi là tên đường (tức là tách lấy chuỗi qua phải từ khoảng trắng thứ n ) thì phải làm như thế nào?
Kính mong sự trợ giúp của diễn đàn!
 
Tôi đang xử lý số liệu tên và địa chỉ trên excel có dạng:
123/5 Nguyễn Trãi
Xin hỏi:
Để tách lấy chuỗi là tên đường (tức là tách lấy chuỗi qua phải từ khoảng trắng thứ n ) thì phải làm như thế nào?
Kính mong sự trợ giúp của diễn đàn!

Trim(mid(123/5 Nguyễn Trãi,n+1,1000))
 
Re hoangdanh282vn

Cảm ơn bạn đã trợ giúp!
Nhưng tôi thử vẫn không được, Hàm bạn gửi nó chỉ cắt từ vị trí thứ n+1 trở đi thôi, ý tôi nói là cắt từ khoảng trắng thứ nhất ( hoặc thứ n) qua phải.
Như ở VD :123/5 Nguyễn Trãi thì yêu cầu kết quả phải là Nguyễn Trãi nếu yêu cầu là khoảng trắng thứ nhất hoặc là Trãi nếu yêu cầu là khoảng trắng thứ hai
Tôi đang xử lý sắp sếp khách hàng theo tên đường, mà dữ liệu hiện đều có dạng 123/5 Nguyễn Trãi , số nhà trước , tên đường sau trên một ô excel
Xin bạn trợ giúp, cảm ơn!
 
Cảm ơn bạn đã trợ giúp!
Nhưng tôi thử vẫn không được, Hàm bạn gửi nó chỉ cắt từ vị trí thứ n+1 trở đi thôi, ý tôi nói là cắt từ khoảng trắng thứ nhất ( hoặc thứ n) qua phải.
Như ở VD :123/5 Nguyễn Trãi thì yêu cầu kết quả phải là Nguyễn Trãi nếu yêu cầu là khoảng trắng thứ nhất hoặc là Trãi nếu yêu cầu là khoảng trắng thứ hai
Tôi đang xử lý sắp sếp khách hàng theo tên đường, mà dữ liệu hiện đều có dạng 123/5 Nguyễn Trãi , số nhà trước , tên đường sau trên một ô excel
Xin bạn trợ giúp, cảm ơn!

Giả sử ô A1=123/5 Nguyễn Trãi
Công thức sẽ là:
=MID(TRIM(A1),FIND(" ",TRIM(A1),1)+1,LEN(TRIM(A1))-FIND(" ",TRIM(A1),1))
 
Mình gặp trường hợp muốn tách tháng từ định dang dd/mm/yyyy nhờ mọi người giúp đỡ
file kèm

File đính kèm theo ...........
 
Chỉnh sửa lần cuối bởi điều hành viên:
Mình gặp trường hợp muốn tách tháng từ định dang dd/mm/yyyy nhờ mọi người giúp đỡ
file kèm
Với dử liệu DATE đúng chuẩn, bạn không thể dùng các hàm xử lý chuổi (như Left, Right, Mid...) để tách các phần ngày tháng năm ra được
- Để lấy phần NGÀY: dùng hàm DAY
- Để lấy phần THÁNG: dùng hàm MONTH
- Để lấy phần NĂM: dùng hàm YEAR
--------
Cụ thể, công thức tại cell D2 là: =MONTH(B2)
 
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...! :)
 
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...! :)

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á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
 
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:
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"),"")))
 
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"),"")))
Công thức trên dùng bằng công thức mảng phải kết hợp tổ hợp phím Ctrl+Shift+Enter mới ra được.
 
tách tên

vấn đề này thi mình biết đây. sử dụng hàm "name" bạn xem thử nhé.ah quên kèm code
Private Function name (ten As String, lg As Integer)
Dim j As Integer
tent = Trim(ten)
For j = Len(tent) To 1 Step -1
If Mid(tent, j, 1) = " " Then
If lg = "1" Then
name = Right(tent, Len(tent) - j)
Else
name = Left(tent, j)
End If
Exit For
End If
Next

End Function
 

File đính kèm

Hi các bạn,

Mình xin nhờ các bạn chỉ giúp mình công thức tính chuỗi sau đây. Mình có chuỗi A1 các dạng sau đây:

[aba] [bbb b.c.e] [28/11/2012_5h11pm] chuoi can cat
or
[abac][bbb b.c.e][28/11/2012_5h11pm] chuoi can cat
or
[abacef] [bbb b.c.e] chuoi can cat

Ở B1 mình cần chuỗi này: "chuoi can cat"
và B2: "aba" or "abad" or "abacef"

Các bạn chỉ giúp mình với, mình nghĩ B1 có thể count đếm nguợc từ phải qua trái và đến "]" thì dừng.

Thanks.
 
Lần chỉnh sửa cuối:
Hi các bạn,

Mình xin nhờ các bạn chỉ giúp mình công thức tính chuỗi sau đây. Mình có chuỗi A1 các dạng sau đây:

[aba] [bbb b.c.e] [28/11/2012_5h11pm] chuoi can cat
or
[abac][bbb b.c.e][28/11/2012_5h11pm] chuoi can cat
or
[abacef] [bbb b.c.e] chuoi can cat

Ở B1 mình cần chuỗi này: "chuoi can cat"
và B2: "aba" or "abad" or "abacef"

Các bạn chỉ giúp mình với, mình nghĩ B1 có thể count đếm nguợc từ phải qua trái và đến "]" thì dừng.

Thanks.
Tại B1:
Mã:
=TRIM(RIGHT(SUBSTITUTE(A1,"]",REPT(" ",255)),255))
Tại B2:
Mã:
=MID(A1,2,FIND("]",A1)-2)
 
Cảm ơn bạn bebo021999 rất nhiều.

2 cái trên đều work trên excel.

Nhưng trên Google Doc thì B1: [aba] [bbb b.c.e] [28/11/2012_5h11pm] chuoi can cat
lại ra như vầy: [28/11/2012_5h11pm chuoi can cat.

Có vẻ như google thiếu hàm nào đó ko đuợc hổ trợ :(.

Mình export data từ web ra excel sau đó lại xử lý chuỗi này từ execl thì hơi mệt rồi lại import nguợc lại vào Google Doc (ý tưởng là import data từ 1 file. xls vào 1 tab, và 1 tab khác trên Google Doc xử lý chuỗi này). Có giải pháp nào ko nhỉ các bạn T_T
 
Lần chỉnh sửa cuối:
Mình ké một chút. Mình có các chuỗi trên excel dạng Jon F. Merz - Vicarious.epub Jon F. Merz - Vicarious.mobi Jon F. Merz - Vicarious.pdf mình muốn loại bỏ đuôi định dạng của chúng hàng loạt mà không biết làm sao.
 
mình thấy rất hay. Việc tách chuỗi sẽ giúp rất nhiều hữu ích cho công việc của mình/-*+/
 
Bài 1:cả nhà ơi giúp mình với. mình có một chuỗi các số như sau: 1, 2, 3, 4, 5, 6, 11, 12, 13, 111, 2222 mà giời nhiệm vụ của mình là cần là chuyển thành một cột số như sau:
1
2
3
4
5
6
11
...
2222
Bài 2: có một cột số như sau
1
2
3
4
9
10
giờ mình muốn chuyển thành một ô mang tính chất thống kê có dạng như sau: 1-4, 9, 10 (có nghĩa là các số liền nhau sẽ được thay bằng dấu "-", còn nếu không liền nhau thì liệt kê các số đó ra.)
Cả nhà giúp mình với mình rất cảm ơn và hậu tại nếu có đk gặp gỡ
 
Mình có địa chỉ định dạng như vầy "Phòng 403, Tầng 4, Nhà 5B Quang Minh, P. Hoàng Văn Thụ, Tp. Bắc Giang,Bắc Giang", mình muốn tách tỉnh ra ô khác. Dùng hàm FIND thì chỉ tìm được dấu phẩy từ bên trái, có cách nào tìm dấu phẩy từ bên phải không ạ? Cái khó nữa là có nhiều địa chỉ, có địa chỉ có 2, 3, 4 dấu phẩy khác nhau. Cảm ơn cả nhà!
 
Mình có địa chỉ định dạng như vầy "Phòng 403, Tầng 4, Nhà 5B Quang Minh, P. Hoàng Văn Thụ, Tp. Bắc Giang,Bắc Giang", mình muốn tách tỉnh ra ô khác. Dùng hàm FIND thì chỉ tìm được dấu phẩy từ bên trái, có cách nào tìm dấu phẩy từ bên phải không ạ? Cái khó nữa là có nhiều địa chỉ, có địa chỉ có 2, 3, 4 dấu phẩy khác nhau. Cảm ơn cả nhà!
Thử công thức này
Mã:
=TRIM(RIGHT(SUBSTITUTE("Phòng 403, Tầng 4, Nhà 5B Quang Minh, P. Hoàng Văn Thụ, Tp. Bắc Giang,Bắc Giang",",",REPT(" ",100)),100))
 
mình có 1 cột dữ liệu như thế này
HĐ 12.345.678 Đ 20 THÙNG
HĐ 1.234.567 Đ 2 KIỆN
HĐ 123.456 Đ 3 THÙNG
mình muốn chuyển thành
12.345.678
1.234.567
123.456
dãy số giữ là không cố định, và vế sau chữ "Đ" cũng không cố định
với cột dữ liệu như vậy có công thức không add, nếu có mong mọi người giúp mình với
Chân thành cảm ơn!
 
mình có 1 cột dữ liệu như thế này
HĐ 12.345.678 Đ 20 THÙNG
HĐ 1.234.567 Đ 2 KIỆN
HĐ 123.456 Đ 3 THÙNG
mình muốn chuyển thành
12.345.678
1.234.567
123.456
dãy số giữ là không cố định, và vế sau chữ "Đ" cũng không cố định
với cột dữ liệu như vậy có công thức không add, nếu có mong mọi người giúp mình với
Chân thành cảm ơn!
Nếu dữ liệu nhập đúng và có dạng như trên thì thử công thức
Thí dụ dữ liệu ở [A1], ở cell cần kết quả nhập:
TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",LEN(A1))),LEN(A1),LEN(A1)))
 
Right(a2,len(mid(a2,find(" ",a2)+1,len(a2)))-find(" ",(mid(a2,find(" ",a2)+1,len(a2)))))
 
Ngại quá khi em hỏi lại đề tài cũ, nhưng do cần gấp nên nhờ Anh/Chị nào biết hướng dẫn giùm em. Em có một mã hàng:
L1DUONGA1
L1SUAA2
L1DUONGA2
L2GAOA2
L1GAOA1
...
em buộc phải tách ra (mặt hàng: đường, sữa, gao ...).
DUONG
SUA
GAO
Em dùng hàm MID thì thấy thiếu (vì đường đến 5 số, còn sữa và gạo chỉ có 3 số), vay em phai thêm hàm LEN hay ham FIND???
Anh/Chi nao da lam vui long chi giup em. Em chan thanh cam on.
 
Ngại quá khi em hỏi lại đề tài cũ, nhưng do cần gấp nên nhờ Anh/Chị nào biết hướng dẫn giùm em. Em có một mã hàng:
L1DUONGA1
L1SUAA2
L1DUONGA2
L2GAOA2
L1GAOA1
...
em buộc phải tách ra (mặt hàng: đường, sữa, gao ...).
DUONG
SUA
GAO
Em dùng hàm MID thì thấy thiếu (vì đường đến 5 số, còn sữa và gạo chỉ có 3 số), vay em phai thêm hàm LEN hay ham FIND???
Anh/Chi nao da lam vui long chi giup em. Em chan thanh cam on.
Giả sử dữ liệu bạn tại cột A, bạn dùng CT này ở A1:
Mã:
A1=LOOKUP(2,1/SEARCH({"","duong","sua","gao"},A1),{"","DUONG","SUA","GAO"})
Rồi fill xuống!!!
 

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

Back
Top Bottom