cho hỏi cách tách tên và nội dung của một chuỗi ký tự

  • Thread starter Thread starter danght
  • Ngày gửi Ngày gửi
Liên hệ QC

danght

Thành viên mới
Tham gia
3/11/08
Bài viết
15
Được thích
0
mong các anh chị em giúp đỡ:
mình có mòt trường : tên*nội dung
giờ mình muốn tách ra phần :tên và nội dung
cám ơn!(có file đính kèm )
 

File đính kèm

mong các anh chị em giúp đỡ:
mình có mòt trường : tên*nội dung
giờ mình muốn tách ra phần :tên và nội dung
cám ơn!(có file đính kèm )
Bạn dùng chức năng Text to columns nhé, theo ví dụ của bạn thì làm các bước sau :

  1. Chọn range cần tách A2:A4.
  2. Menu Data/text to columns mở bảng wizard 3 bước.
  3. Chọn Delimited, nhấn Next sang bước 2.
  4. Chọn Other và đánh dấu * vào ô kế bên, nhấn Next sang bước 3.
  5. Tại Destination nhập $B$2, nhấn Finish.
  6. Thưởng thức thành quả và thanks.
 

File đính kèm

Thêm 1 cách lấy tên ra nữa nè

B2=IF($A2="","",LEFT($A2,FIND("*",$A2,1)-1))
 
Các công thức này:

Của echo07:
PHP:
B2 = IF($A2="","",LEFT($A2,FIND("*",$A2,1)-1))

Của anh ndu:
PHP:
C2 =IF($A2="","",MID($A2,FIND("*",$A2,1)+1,255))

Sẽ ra kết quả như thế nào nếu A2 không phải là rỗng và không có ký tự "*" ?

Thêm giả định một điều kiện nữa mới đủ để làm, em thêm một điều kiện như sau:
-Nếu không có ký tự * trong chuỗi thì bỏ qua chuỗi đó (trả về giá trị rỗng "")

Hãy thử công thức sau xem:
PHP:
Tên = LEFT(A1,IF(ISERROR(FIND("*",A1,1)),0,FIND("*",A1,1)-1))
PHP:
Nội dung = RIGHT(A1,IF(ISERROR(FIND("*",A1,1)),0,LEN(A1)-FIND("*",A1,1)))

Còn nếu giả định:
-Nếu không có ký tự * trong chuỗi thì Coi như đó là tên không có nội dung:
PHP:
Tên = LEFT(A1,IF(ISERROR(FIND("*",A1,1)),Len(A1),FIND("*",A1,1)-1))
PHP:
Nội dung = RIGHT(A1,IF(ISERROR(FIND("*",A1,1)),0,LEN(A1)-FIND("*",A1,1)))
 
Lần chỉnh sửa cuối:
Các công thức này:

Của echo07:
PHP:
B2 = IF($A2="","",LEFT($A2,FIND("*",$A2,1)-1))
Của anh ndu:
PHP:
C2 =IF($A2="","",MID($A2,FIND("*",$A2,1)+1,255))
Sẽ ra kết quả như thế nào nếu A2 không phải là rỗng và không có ký tự "*" ?

Thêm giả định một điều kiện nữa mới đủ để làm, em thêm một điều kiện như sau:
-Nếu không có ký tự * trong chuỗi thì bỏ qua chuỗi đó (trả về giá trị rỗng "")

Hãy thử công thức sau xem:
PHP:
Tên = LEFT(A1,IF(ISERROR(FIND("*",A1,1)),0,FIND("*",A1,1)-1))
PHP:
Nội dung = RIGHT(A1,IF(ISERROR(FIND("*",A1,1)),0,LEN(A1)-FIND("*",A1,1)))
Còn nếu giả định:
-Nếu không có ký tự * trong chuỗi thì Coi như đó là tên không có nội dung:
PHP:
Tên = LEFT(A1,IF(ISERROR(FIND("*",A1,1)),Len(A1),FIND("*",A1,1)-1))
PHP:
Nội dung = RIGHT(A1,IF(ISERROR(FIND("*",A1,1)),0,LEN(A1)-FIND("*",A1,1)))
Tôi lại khoái dùng COUNTIF($A1,"***") hơn là ISERROR(FIND(....))
 
Tôi lại khoái dùng COUNTIF($A1,"***") hơn là ISERROR(FIND(....))
Hehe! Hình như phải như thế này mới đúng anh ui!
PHP:
=COUNTIF(A1,"*~**")
Phải có dấu "~" nữa! Nếu không CountIF nó đếm tất tần tật đấy! Ẹc Ẹc....
Anh ndu nói đúng, ta có thể thay ISERROR(...) bằng countif(...) cho tiện. Cảm ơn anh.
 
Hehe! Hình như phải như thế này mới đúng anh ui!
PHP:
=COUNTIF(A1,"*~**")
Phải có dấu "~" nữa! Nếu không CountIF nó đếm tất tần tật đấy! Ẹc Ẹc....
Anh ndu nói đúng, ta có thể thay ISERROR(...) bằng countif(...) cho tiện. Cảm ơn anh.
Đúng thế!
Vậy thì.. thay món khác:
PHP:
Nội dung =TRIM(MID(SUBSTITUTE($A2,"*",REPT(" ",255)),LEN($A2)+1,510))
PHP:
Tên =IF($C2="","",SUBSTITUTE($A2,"*"&$C2,""))
 
cám ơn sự giúp đỡ nhiệt tình của các bạn!
cách của bạn VienDo dễ sử dụng hơn.
cám ơn rât nhiều!
 
mong các anh chị em giúp đỡ:
Mình có mòt trường : Tên*nội dung
giờ mình muốn tách ra phần :tên và nội dung
cám ơn!(có file đính kèm )

b2:
PHP:
=trim(left(substitute(a2,"*",rept(" ",50)),50))

c2:
PHP:
=substitute(a2,b2&"*","")
 

File đính kèm

Web KT

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

Back
Top Bottom