Tách chữ trong hàm (1 người xem)

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

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

Đúng với nghĩa Giải pháp excel, Bạn dùng chức năng Text to column sau đó lại dùng Concatenate(hoặc dùng toán tử &) khi cần kết nối lại
 
Cái này có 2 cách:
1> là dùng VBA, vòng lập FOR chắc là ra
2> Dùng công thức mãng tương tự như cái vụ tách lấy tên viết tắt
Đễ nghĩ xem... hướng đi thì đã có rồi đấy.. và tôi nghĩ rằng hoàn toàn có thể làm dc.. nhưng mà...cuối năm sao lười quá... hi.. hi...
ANH TUẤN
 
TigerTiger đã viết:
Thế là sao nhỉ, tách lại gộp ah??? lạ wa
Siêng thì làm được chứ bạn, tách 1 cột ra 40 cột, sau đó viết công thức gộp 30 cột, có 29 dấu & chứ mấy. Nhưng mình giống anhtuan rồi, không siêng được. Tìm cách khác thôi.
 
lamho27 đã viết:
các anh chị cho em hỏi 1 vấn đề : trong ô A1 co khoảng 40 chử ( không phải là 40 ký tự abc ) có cách nào để vô ô B1 , mà ô B1 chỉ chứa được 30 chử , số còn lại sẻ tự động nhảy qua ô khác , thí dụ nó nhảy qua ô B3 chẳng hạn , cám ơn nhiều
anhtuan1066 đã viết:
Cái này có 2 cách:
1> là dùng VBA, vòng lập FOR chắc là ra
2> Dùng công thức mãng tương tự như cái vụ tách lấy tên viết tắt
Đễ nghĩ xem... hướng đi thì đã có rồi đấy.. và tôi nghĩ rằng hoàn toàn có thể làm dc.. nhưng mà...cuối năm sao lười quá... hi.. hi...
ANH TUẤN
Oh, hồi này a thích dùng đao to quá (hic) - chắc ko cần đến vậy đâu a


Có cách nhanh đây,

giả sử text nhập tại A1 và tách ra ô B1 chứa 30 chữ đầu, và B3 chứa các chữ còn lại từ 31 đến hết
thì ô B1, và ô B3 lần lượt có công thức như sau:
PHP:
B1:              =LEFT(A1,FIND("#",SUBSTITUTE(A1," ","#",30))-1)
B3:              =RIGHT(A1,LEN(A1)-FIND("#",SUBSTITUTE(A1," ","#",30)))
Ví dụ ô A1= "Siêng thì làm được chứ bạn, tách 1 cột ra 40 cột, sau đó viết công thức gộp 30 cột, có 29 dấu & chứ mấy. Nhưng mình giống anhtuan rồi, không siêng được. Tìm cách khác thôi."

thì KQ là:
B1="Siêng thì làm được chứ bạn, tách 1 cột ra 40 cột, sau đó viết công thức gộp 30 cột, có 29 dấu & chứ mấy. Nhưng mình giống anhtuan"
B3="rồi, không siêng được. Tìm cách khác thôi."
Như vậy công thức trên ta có thể tổng quát là có thể là k chữ thì thay k vào vị trí 30
 
Lần chỉnh sửa cuối:
Cái vụ đánh dấu vào vị trí thứ 30 bằng hàm SUBSTITUTE rất thông mình... vậy mà ko nghĩ ra... Cảm ơn Tigertiger nhé
ANH TUẤN
 
To TigerTiger
Mình vừa viết xong For theo gợi ý của anhtuan, (cũng không đến nỗi làm biếng quá), nhưng thấy bạn giải quyết xong rồi nên thôi. Có điều viết code thì bẫy được lỗi A1 ít hơn 30 từ.
 
http://www.giaiphapexcel.com/forum/member.php?u=4598TigerTiger ơi , code của bạn rất đúng ý em muốn hỏi , nhưng mà em không thể làm được vì hàm Tiger viết bằng tiếng Anh ,em đả chuyển qua tiếng Pháp rồi mà củng không được
=GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)
Tiger có thể giải thích làm so viết được hàm như vậy
 
Vậy thì bạn phải coi chử SUBSTITUTE bên tiếng Pháp nó là chử gì rồi... Tiếng Anh nó có nghĩa là: NGƯỜI THAY THẾ, VẬT THAY THẾ...
ANH TUẤN
 
Tiếng pháp hay thật!!!

lamho27 đã viết:
TigerTiger ơi , code của bạn rất đúng ý em muốn hỏi , nhưng mà em không thể làm được vì hàm Tiger viết bằng tiếng Anh ,em đả chuyển qua tiếng Pháp rồi mà củng không được
=GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)
Tiger có thể giải thích làm so viết được hàm như vậy

Oh, tiếng PHÁP, hic tigertiger đâu biết gì ngoài Le, La,... hic iiiiiii
Thôi cố vậy
Tra từ điển thì thấy từ "thay thế" trong tiếng pháp là: substituer / remplace
Search trên mạng thì đúng là cú pháp như sau
PHP:
SUBSTITUE(texte,ancien_texte,nouveau_texte,no_position)  - Tiếng pháp
SUBSTITUTE(text,old_text,new_text,instance_num)  - Tiếng Anh
và xem lại bài của BNTT -> thử tiếng pháp xem sao:
túm lại bạn thử công thức sau xem sao:

PHP:
Ô B1:
B1:    =GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)                    (Tiếng Pháp)
B1:    =LEFT(A1,FIND("#",SUBSTITUTE(A1," ","#",30))-1)                    (Tiếng Anh)

và
Ô B3:
B3:    =DROITE(A1,NBCAR(A1)-CHERCHE("#",SUBSTITUE(A1," ","#",30)))                    (Tiếng Pháp)
 B3:    =RIGHT(A1,LEN(A1)-FIND("#",SUBSTITUTE(A1," ","#",30)))                     (Tiếng Anh)

Bạn chú ý ô A1 phải có chuỗi ký tự chứa số chữ >30, còn nếu cần thì bạn thêm hàm IF để xét...

chúc thành công


ptm0412 đã viết:
To TigerTiger
Mình vừa viết xong For theo gợi ý của anhtuan, (cũng không đến nỗi làm biếng quá), nhưng thấy bạn giải quyết xong rồi nên thôi. Có điều viết code thì bẫy được lỗi A1 ít hơn 30 từ.
Oh, muốn bẫy lỗi A1 ít hơn 30 từ thì ta có thể dùng hàm If để xét mà vì ta dễ dàng tính được số "chữ" trong 1 chuỗi mà,
 
Lần chỉnh sửa cuối:
lamho27 đã viết:
TigerTiger ơi , code của bạn rất đúng ý em muốn hỏi , nhưng mà em không thể làm được vì hàm Tiger viết bằng tiếng Anh ,em đả chuyển qua tiếng Pháp rồi mà củng không được
=GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)
Tiger có thể giải thích làm so viết được hàm như vậy
Bạn Lamho27 thân
Công thức của bạn, theo tôi nghĩ là đúng rồi đó (SUBSTITUE / chứ không phải là SUBSTITUTE)

Bạn chịu khó dò lại từng công thức thử xem.

Ví dụ:
A1 là ô chứa đoạn text

A2 = SUBSTITUE(A1, " ", "#", 30)

A3 = CHERCHE("#", A2) ---> cái này sẽ cho kết quả là một con số

A4 = GAUCHE(A1, A3 -1)

Nếu tất cả các công thức trên đều chạy tốt, không báo lỗi, thì bi giờ bạn mới thay thế công thức ở A4 bằng công thức:

GAUCHE(A1, CHERCHE("#", SUBSTITUE(A1, " ", "#", 30))-1)

(tôi dùng màu cho bạn dễ thấy thôi)
Thêm một điều nữa, là bạn chịu khó gõ từng chữ vào công thức
Vì đôi khi copy công thức có sẵn ở diễn đàn này dán vào bảng tính, nó không chạy đâu (!)

Thân.
 
Tiger ơi, làm không ra, em copie hàm này =GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)
và dán vào fx thì nó ghi là có lỗi, còn em mở fx để tìm hàm GAUCHE để ghi thì có 2 hàng, hàng thứ 1 là texte , hàng thứ 2 là N°_car, em không biết ghi chữ gì cho đúng theo hàm mà Tiger đã ghi ở trên, em ngu quá phải không Tiger, Tiger làm ơn hướng dẫn giùm, cám ơn nhiều lắm
 
Chỉnh sửa lần cuối bởi điều hành viên:
lamho27 đã viết:
...còn em mở fx để tìm hàm GAUCHE để ghi thì có 2 hàng, hàng thứ 1 là texte , hàng thứ 2 là N°_car, em không biết ghi chữ gì cho đúng theo hàm...
Khi bạn mở fx đển tìm hàm, những ô trong đó sẽ là những thông số mà bạn phải sử dụng trong cú pháp của hàm.

Ví dụ
: Cú pháp hàm GAUCHE: GAUCHE(texte, no_car)
thì texte là đoạn text mà bạn muốn trích ra phần bên trái của nó
no_car là số ký tự muốn trích ra từ texte (tính từ bên trái)
Trong trường hợp hàm của TigerTiger, thì:
texte = A1 (ô chứa đoạn văn gốc của bạn)
no_car = CHERCHE("#", SUBSTITUE(A1, " ", "#", 30)) -1
 
lamho27 đã viết:
Tiger ơi, làm không ra , em copie hàm này =GAUCHE(A1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1)
và dán vào fx thì nó ghi là có lổi ,còn em mở fx để tìm hàm GAUCHÇ9e63 ghi thì có 2 hàng , hàng thứ 1 là texte , hàng thứ 2 là N°_car , em không biết ghi chử gì cho đúng theo hàm mà Tiger đả ghi ở trên , em ngu quá phải không Tiger , Tiger làm ơn hướng dẩn giùm , cám ơn nhiều lắm
Hay bạn thử thay ký tự "#" bằng ký tự bất kỳ khác (nhưng là ký tự đặc biệt ko có trong chuỗi ký tự của chúng ta), chẳng hạn như VD như ký tự "%" hay "*" hay là "~" ...vv

ah, mà bạn thử copy chuỗi ký tự mà bạn thử ở A1 lên đây, xem sao

P/S báo lỗi thế nào - bạn upload lên và dịch ra lun nhé
 
Lần chỉnh sửa cuối:
Cám ơn BNTT nhiều lắm , cách hướng dẩn của BNTT rất rỏ ràng và rất dể hiểu, em đả làm được rồi , em củng cám ơn Tigertiger và các bạn khác trong site đả nhiệt tình hướng dẩn em
 
TigerTiger thân, theo tôi nghĩ không có lỗi gì đâu. mà lỗi là do bạn ấy copy công thức trong diễn đàn dán vào bảng tính:

lanho27 đã viết:
...Tiger ơi, làm không ra, em copie hàm này... và dán vào fx thì nó ghi là có lỗi,

Nhân đây tôi cũng nói lại, cùng với tất cả các bạn, là:
Đôi khi công thức copy trên diễn đàn này rồi dán thẳng vào bảng tính, Excel sẽ báo lỗi, do... hình như nó không hiểu. Tôi đã gặp trường hợp này nhiều lần rồi.

Cách tốt nhất, để tránh lỗi, và cũng là để nâng cao khả năng nhập công thức của mình, là các bạn nên tự mình nhập công thức vào bảng tính, đừng copy rồi dán.

Và, trước khi post lên diễn đàn đại loại như: "Anh ơi... công thức của anh có lỗi rồi..." hay gì gì đó, các bạn thử tự mình nhập lại công thức xem.

Chừng nào tự tay nhập lại mà vẫn gặp lỗi, thì khi đó hãy quay lại diễn đàn để hỏi.
Thân.
BNTT

 
trong bài viết của Tigertiger có đoạn viết dùng hàm if là như thế nào ,TT có thể hướng dẩn cách làm như thế nào , vi em đang gặp 1 vấn đề là : 1 câu văn ngắn thí dụ như câu văn có 7 chử , mà em muốn tách ra ở ô 1 là 4 và ô 2 là 3 , thì ô 1 nó cho ra là #VALEUR!
Các Anh Chị giúp giùm em
 
VD về kết hợp IF:
PHP:
B1:     =IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1<=30,A1,LEFT(A1,FIND("#",SUBSTITUTE(A1," ","#",30))-1))
B3:    =IF(LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1<=30,"",RIGHT(A1,LEN(A1)-FIND("#",SUBSTITUTE(A1," ","#",30))))

Tiếng anh nhé, Tiếng pháp bạn thử đổi xem sao
P/S: nếu là 4 chữ thì thay 4 vào chỗ 30 đó


BNTT đã viết:
TigerTiger thân, theo tôi nghĩ không có lỗi gì đâu. mà lỗi là do bạn ấy copy công thức trong diễn đàn dán vào bảng tính:
Cám ơn BNTT
Thê thì có cách hay là trước khi copy vào fx, hãy copy vào Notepat (chương trình soạn thảo text có sẵn trong window) -> sau đó mới copy vào fx (nhớ bỏ dấu trắng (nếu có) trước dấu =)
.
 
Lần chỉnh sửa cuối:
Em đả copie vào notepad sau đó copie vào fx , vẩn không được
B2 =SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1," ",""))+1<=4,A1,GAUCHEA1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1))
B3: =SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1," ",""))+1<=30,"",DROITE(A1,NBCAR(A1)-CHERCHE("#",SUBSTITUE(A1," ","#",30))))
Em làm từng bước giống như BNTT
A1 là ô chứa đoạn text

A2 = SUBSTITUE(A1, " ", "#", 30)

A3 = CHERCHE("#", A2) ---> cái này sẽ cho kết quả là một con số

A4 = GAUCHE(A1,A3 -1)
đến đây thì bí luôn , các anh chị có thể chỉ các bước kế tiếp giống như BNTT làm giùm em nha , cám ơn
 
lamho27 đã viết:
B2 =SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1," ",""))+1<=4,A1,GAUCHEA1,CHERCHE("#",SUBSTITUE(A1," ","#",30))-1))
B3: =SI(NBCAR(A1)-NBCAR(SUBSTITUE(A1," ",""))+1<=30,"",DROITE(A1,NBCAR(A1)-CHERCHE("#",SUBSTITUE(A1," ","#",30))))
Sai ở chỗ tôi bôi đỏ lên đó.
Nếu bạn đã thay 30 = 4 thì phải thay cho hết, chứ chỉ thay có một chỗ thôi thì sao được ?

Đây là công thức tách 7 chữ (trong A1) thành hai ô, ô A2 có 4 chữ và ô A3 có 3 chữ, có lồng hàm SI() để đề phòng nội dung trong A1 ít hơn hoặc bằng 4 chữ:
A1 = Đây chính là câu hỏi của bạn (7 chữ)

A2 = SI(NBCAR(A1) - NBCAR(SUBSTITUE(A1, " ", "")) + 1 <= 4, A1, GAUCHE(A1, CHERCHE("#", SUBSTITUE(A1, " ", "#", 4)) - 1)) (= Đây chính là câu)

A3 = SI(NBCAR(A1) - NBCAR(SUBSTITUE(A1, " ", "")) + 1 <= 4, "", DROITE(A1, NBCAR(A1) - CHERCHE("#", SUBSTITUE(A1, " ", "#", 4)))) (= hỏi của bạn)
Hoặc có thể dùng công thức ngắn hơn (vì bạn đã có 4 chữ ở A2 rồi):

A3 = DROITE(A1, NBCAR(A1) - NBCAR(A2) - 1) (= hỏi của bạn)
(trừ thêm 1 ở cuối cùng, vì nếu không thì trước chữ hỏi sẽ có 1 khoảng trắng)
Trong trường hợp bạn đã biết chắc rằng nội dung trong A1 lớn hơn 4 chữ, thì bạn chỉ cần dùng cái công thức màu nâu thôi, không cần cái SI() màu xanh.


----------------
@ TigerTiger và các bạn:

Cách copy vào Notepad không ăn thua đâu, vì tôi đã khám phá thêm vụ này:
Hình như nó chỉ vướng ở chỗ mấy cái dấu " (ngoặc kép) thôi, các bạn cứ copy công thức trên diễn đàn rồi dán vào Excel cũng được, không cần phải gõ lại nguyên công thức
nếu có gặp lỗi (thường là #VALUE!) thì các bạn gõ lại mấy cái dấu ngoặc kép thôi
(không biết có còn vướng ký tự nào khác không, chứ riêng tôi thì chỉ vướng mỗi cái anh ngoặc kép này)
 
Web KT

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

Back
Top Bottom