PDA

View Full Version : Tách chuỗi



feelingyes
18-02-08, 02:34 PM
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

salam
18-02-08, 02:51 PM
Tách tên bạn xem bài này nhé.

http://www.giaiphapexcel.com/forum/newreply.php?do=newreply&noquote=1&p=55821

anhtuan1066
18-02-08, 02:53 PM
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

=SUMPRODUCT((DAY($C2:$C6)=DAY($F$1))*(MONTH($C2:$C 6)=MONTH($F$1)))
2> Conditional Formating: Quét chọn từ C2 đến cuối, gõ công thức vào CF:

=AND(DAY($C2)=DAY($F$1),MONTH($C2)=MONTH($F$1))
ANH TUẤN

feelingyes
18-02-08, 04:18 PM
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 ạ?

TranThanhPhong
18-02-08, 04:42 PM
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

anhtuan1066
18-02-08, 05:30 PM
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:

DAI =ROW(INDIRECT("1:"&LEN(TRIM($A2))))

VT =MAX((MID(TRIM($A2),DAI,1)=" ")*DAI)
Bước 2: Tách tên:

=TRIM(RIGHT(TRIM($A2),LEN(TRIM($A2))-VT))
ANH TUẤN

anhtuan1066
20-02-08, 10:57 AM
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

TU=TRIM($A1)
2>Quét ngược từ cuối lên đầu:

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

VT =MATCH(TRUE,KT=" ",0)
Cuối cùng là công thức:

=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

VT =MATCH(TRUE,MID(TRIM($A1),LEN(TRIM($A1))-ROW($1:$100),1)=" ",0)
Và công thức:

=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

hoangdanh282vn
27-02-08, 01:27 PM
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))

hoangdanh282vn
28-02-08, 10:44 AM
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," ",""))))))

viendo
28-02-08, 11:04 AM
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é.

salam
28-02-08, 11:32 AM
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ý.

nhcuong.kttktc
27-05-09, 12:13 PM
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!

hoangdanh282vn
27-05-09, 12:22 PM
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))

nhcuong.kttktc
27-05-09, 12:39 PM
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!

solomon2211
27-05-09, 12:44 PM
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))

vuminh1601
16-08-09, 02:37 AM
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 ...........

ndu96081631
16-08-09, 06:14 AM
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)

thanhst251
11-06-10, 04:17 PM
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...! :)

dat_butmuc
11-06-10, 04:29 PM
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)))

thanhst251
11-06-10, 05:30 PM
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!

gaunuicr
11-06-10, 06:05 PM
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))

Công thức của bạn rất chính xác. Tuy nhiên trong thực tế thì vầy cho nó gọn:
=MID(TRIM(A1),FIND(" ",TRIM(A1),1)+1,1000)

BNTT
11-06-10, 10:52 PM
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.

thanhst251
12-06-10, 06:36 AM
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...

Ba Tê
12-06-10, 07:51 AM
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.

gaunuicr
12-06-10, 10:38 AM
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)))

gaunuicr
12-06-10, 10:49 AM
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!

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))

thingal
06-08-10, 09:48 PM
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

dat_butmuc
07-08-10, 08:58 AM
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" )

thingal
07-08-10, 01:37 PM
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" )
50163
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

thingal
07-08-10, 01:47 PM
mình đã up file lên host mediafire,bạn nào rảnh rang,có thể giúp mình hộ cái,bí chỗ này mấy bữa rồi mà ko sửa được....
http://www.mediafire.com/file/p7314q6719t8hmw/Book1.xls
thanks nhiều nhiều

nam2806
08-08-10, 10:59 AM
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?
Xin cám ơn
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.

concogia
08-08-10, 11:15 AM
mình đã up file lên host mediafire,bạn nào rảnh rang,có thể giúp mình hộ cái,bí chỗ này mấy bữa rồi mà ko sửa được....
http://www.mediafire.com/file/p7314q6719t8hmw/Book1.xls
thanks nhiều nhiều
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ế

ndu96081631
08-08-10, 11:16 AM
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à:


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 FunctionCode 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:


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 FunctionCòn công thức thì kiểu vầy:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1)))

nam2806
08-08-10, 02:54 PM
Cái này có thể dùng công thức được mà bạn!
Còn công thức thì kiểu vầy:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1)))

Món công thức mà bạn chiêu đãi quá tuyệt, khỏi phải code kiếc chi mệt.

thingal
10-08-10, 10:46 AM
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?

hoangminhtien
10-08-10, 12:23 PM
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))

xuanlochn
28-10-10, 09:45 AM
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

dat_butmuc
28-10-10, 10:04 AM
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

Tách chuỗi/tách họ tên thì rất nhiều trên diễn đàn - sao bạn không tìm kiếm?
Chèn thêm Anh/Chị thì vầy (giả sử tên có tại A1): "Anh/Chị "&A1

vuminh1601
28-10-10, 10:06 AM
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

Vấn đề này bạn xem tại đây. có file mẫu đính kèm
http://www.giaiphapexcel.com/forum/showthread.php?31478-T%C3%A1ch-h%E1%BB%8D-t%C3%AAn-d%C3%A0i-th%C3%A0nh-t%E1%BB%ABng-c%E1%BB%99t-ri%C3%AAng-bi%E1%BB%87t

vantoan19812002
06-01-11, 01:01 PM
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"),"")))

MinhCong
06-01-11, 03:38 PM
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.

hvphong
06-01-11, 10:04 PM
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

tuantel
22-07-12, 05:59 PM
Hi các bạn
Nhờ các bạn chỉ giúp mình cách tách tên domain trong webpage. For example:
Webpage: http://www.futech.com.vn/20-7-95/lien-he.html
Domain: http://www.futech.com.vn/
Thanks!

mhung12005
22-07-12, 06:23 PM
Hi các bạn
Nhờ các bạn chỉ giúp mình cách tách tên domain trong webpage. For example:
Webpage: http://www.futech.com.vn/20-7-95/lien-he.html
Domain: http://www.futech.com.vn/
Thanks!

Bạn dùng công thức này cho ô B1 xem sao.


=LEFT(A1,FIND("/",A1,FIND("/",A1)+2))

với A1 là ô chứa dữ liệu.

iken
29-11-12, 05:01 PM
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.

bebo021999
29-11-12, 09:18 PM
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:

=TRIM(RIGHT(SUBSTITUTE(A1,"]",REPT(" ",255)),255))
Tại B2:

=MID(A1,2,FIND("]",A1)-2)

iken
30-11-12, 10:12 AM
Cảm ơn bạn http://www.giaiphapexcel.com/forum/image.php?u=438298&dateline=1338765130 (http://www.giaiphapexcel.com/forum/member.php?438298-bebo021999) bebo021999 (http://www.giaiphapexcel.com/forum/member.php?438298-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

Blue storm
12-12-12, 04:55 PM
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.

nhokum10051
24-01-13, 01:49 PM
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/-*+/