Oh, hơi khó hỉu 1 chút, bạn giải thích kỹ racác bạn trong diển đàn thân mến
có công thức nào có thể tách 1 câu dài thành 2 đoạn ngắn để vô 2 ô khác nhau , tùy theo độ dài của ô được không ? cám ơn nhiều
Tùy theo độ dài của ô nghĩa là sao hở bạn? Lỡ độ dài của mỗi ô không thể chứa được 1/2 câu thì sao? Lúc đó lại chia 3 à? Phức tạp quá, mà cũng hơi...vô lý!lamho27 đã viết:các bạn trong diển đàn thân mến
có công thức nào có thể tách 1 câu dài thành 2 đoạn ngắn để vô 2 ô khác nhau , tùy theo độ dài của ô được không ? cám ơn nhiều
Lần đầu tiên nghe thấy.lamho27 đã viết:excell của em là tiếng pháp , không tìm thấy lệnh LEN và FIND , bạn có biết 1 lệnh trên tiếng Pháp kêu là cái gì không
Excel tiếng Pháp hay người pháp viết bảng tính tương tự như excel?Excell của em là tiếng pháp , không tìm thấy lệnh LEN và FIND , bạn có biết 1 lệnh trên tiếng Pháp kêu là cái gì không , bài giải thích của bạn rất đúng ý của em muốn hỏi , cám ơn bạn nhiều lắm
Không biết các bác trên diễn đàn có thêm ý kiến gì không...lamho27 đã viết:BNTT ơi , excell của em là tiếng pháp , không tìm thấy lệnh LEN và FIND , bạn có biết 1 lệnh trên tiếng Pháp kêu là cái gì không , bài giải thích của bạn rất đúng ý của em muốn hỏi , cám ơn bạn nhiều lắm
Bám vào điều kiện tim ông " et "có cách nào tách câu này làm 2 phần ở chử " et "
vingt-quatre mille sept cent quatre-vingt-neuf euros et quarante-cinq centimes
lamho27 đã viết:Cám ơn BNTT nhiều lắm , em đã tìm ra được rồi , đúng là như vậy LEN=NBCAR , FIND=CHERCHE. khi nào có về VN sẻ mời BNTT đi ăn chè, còn có 1 câu hỏi : có cách nào tách câu này làm 2 phần ở chử " et "
vingt-quatre mille sept cent quatre-vingt-neuf euros et quarante-cinq centimes
Bạn nói thế e rằng hơi chủ quan đó... Tôi làm dc món FIND tìm hơn 1 lần đấy... đó là công thức mãng... Bạn thử ra đề xem sao!echo07 đã viết:Tôi cũng đang phải tách một số kí tự nhưng dùng theo cách của các bác thì k ăn thua vì hàm Find không cho phép tìm hơn một lần. Tôi dùng hàm IF trước Find để tìm kí tự "A"để cho kết quả "A", nếu không thấy thì tìm kí tự "B" để cho kết quả "B" mà không thực hiện được. Vậy phải làm sao???
Đú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
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.TigerTiger đã viết:Thế là sao nhỉ, tách lại gộp ah??? lạ wa
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
Oh, hồi này a thích dùng đao to quá (hic) - chắc ko cần đến vậy đâu aanhtuan1066 đã 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
B1: =LEFT(A1,FIND("#",SUBSTITUTE(A1," ","#",30))-1)
B3: =RIGHT(A1,LEN(A1)-FIND("#",SUBSTITUTE(A1," ","#",30)))
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í 30Ví 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."
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
SUBSTITUE(texte,ancien_texte,nouveau_texte,no_position) - Tiếng pháp
SUBSTITUTE(text,old_text,new_text,instance_num) - Tiếng Anh
Ô 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)
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à,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ừ.
Bạn Lamho27 thânlamho27 đã 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
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.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...
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à "~" ...vvlamho27 đã 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
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,
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))))
Cám ơn BNTTBNTT đã 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:
Sai ở chỗ tôi bôi đỏ lê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))))
NTT ơi , Trong phần A2 em đã phân tích ra được khúc đầu như bạn đã chỉ ở trên TRONG PHẦN MÀU NÂU:
A2 =SUBSTITUE(A1," ","#",4)
A3 =CHERCH("#",A2)
A4 =GAUCHE(A1,A3-1)
tới đây thì ok; nhưng tiếp theo phần màu xanh thì bí, không biết làm như thế nào , BNTT chỉ giùm các bước kế tiếp nha
lamho27 đã viết:Tigertiger ơi ,phần A5
lamho27 đã viết:(SUBSTITUE(A1, " ", "")) + 1 làm không được, em mở fx bấm vào substitue có 4 hàng , hàng 1 là texte A1 , hàng 2 ancien texte "" , hàng 3 là nouveau texte "" , hàng 5 là No_position 1 thì nó ra là Đâychính là câu hỏi của bạn , 2 chử đầu dính lại với nhau
Đâychính là câu hỏi của bạn
Đâychính là câu hỏi của bạn
Đâychính là câu hỏi của bạn
Đâychính là câu hỏi của bạn
Tiger ah. Bạn có thể dùng hàm cắt giúp hộ mình 2 chuỗi này nha. Chuỗi (Nhập thép của Công ty Hùng Cường - Kho Phú Tài) tách lấy "Công ty Hùng Cường" và chuỗi ( Nhập dầu của DN Tư nhân Song Hỷ ) tách lấy "DN Tư nhân Song Hỷ". Dùng 1 hàm chung cho cả hai nha.Cám ơn bạn nhiều
Trong lúc chờ các cao thủ có giải pháp tốt hơn bạn hãy thử cách "hai lúa" sau:
Ví dụ dữ liệu bạn nhập ở cột A và muốn xuất kết quả ở cột B.
- Bạn nhập Công ty Hùng Cường vào cell F1 và DN Tư nhân Song Hỷ vào cell F2.
- Ở cell B1 bạn nhập công thức sau:
=IF(ISERR(FIND($F$1;A1))=FALSE;MID(A1;FIND($F$1;A1);LEN($F$1));IF(ISERR(FIND($F$2;A1))=FALSE;MID(A1;FIND($F$2;A1);LEN($F$2));""))
Xem tệp đính kèm
=IF(ISERR(SEARCH($F$1,$A1)),IF(ISERR(SEARCH($F$2,$A1)),"",$F$2),$F$1)
Do bạn hỏi kiểu vầyCám ơn bạn. Nhưng công thức của bạn chỉ tách được khi có săn dữ liệu trong cell F1 và F2 thui. Còn nếu có nhiếu Công ty khác nhau thì sao? Mong bạn giúp
Bạn có thể dùng hàm cắt giúp hộ mình 2 chuỗi này nha. Chuỗi (Nhập thép của Công ty Hùng Cường - Kho Phú Tài) tách lấy "Công ty Hùng Cường" và chuỗi ( Nhập dầu của DN Tư nhân Song Hỷ ) tách lấy "DN Tư nhân Song Hỷ". Dùng 1 hàm chung cho cả hai nha.Cám ơn bạn nhiều
Bạn dat_butmuc nói đúng đó, bạn phải đưa file lên.Cám ơn bạn. Ý mình muốn hỏi là khi mình nhập một mặt hàng nào đó thì dùng hàm tách lấy tên công ty hoặc doanh nghiệp đó
[FONT=.VnTime]NhËp thÐp tÊm cña C«ng ty CPTM Cêng §¹t - Kho NghÜa Th¸i S¬n= lấy "C«ng ty CPTM Cêng §¹t"[/FONT]
[FONT=.VnTime]NhËp thÐp tÊm cña C«ng ty CP Kim KhÝ - Kho NghÜa Th¸i S¬n=lấy "C«ng ty CP Kim KhÝ "[/FONT]
[FONT=.VnTime]NhËp x¨ng A92 cña C«ng ty X¨ng DÇu Hµng Kh«ng = lấy "C«ng ty X¨ng DÇu Hµng Kh«ng"[/FONT]
[FONT=.VnTime]NhËp kho s¬n c¸c lo¹i cña C«ng ty ThuËn Ph¸t - Kho ViÖt Th¾ng = lấy "C«ng ty ThuËn Ph¸t"[/FONT]
[FONT=.VnTime]Minhf cắm ơn nhieùu[/FONT]
Gộp chung cả 2 p/a vào kết quảChào ban quản trị và các bạn:
mình cần hỏi là mình có 1 cột có 1 số dòng có các chữ dính liền nhau, mình cần tách các chữ dính liền nhau ra thì mình cần làm thế nào vậy.
p/a 1 là : tách ra các chữ dính liền nhau có khoảng trống (dấu cách)
p/a 2 là: tách ra làm 2 cột rồi nhau ở khoảng chữ dính liền nhau
P/s: file đính kèm của mình là cột D ah
Cảm ơn các bác nhiều ah
Public Sub Tach()
Dim Nguon, Tam, Vt, kq(), r As Long, c As Long, cl As Integer
On Error Resume Next
Nguon = Sheet1.Range("D5", Sheet1.Range("D65000").End(xlUp))
ReDim kq(1 To UBound(Nguon), 2)
For r = 1 To UBound(Nguon)
Tam = Split(Nguon(r, 1))
Vt = Len(Tam(0))
For c = 1 To UBound(Tam)
Vt = Vt + Len(Tam(c)) + 1
If Len(Tam(c)) > 1 Then
If LCase(Right(Tam(c), Len(Tam(c)) - 1)) <> Right(Tam(c), Len(Tam(c)) - 1) Then
For cl = Len(Tam(c)) To 2 Step -1
If LCase(Mid(Tam(c), cl, 1)) = Mid(Tam(c), cl, 1) Then
Vt = Vt - 1
Else
Exit For
End If
Next cl
kq(r, 1) = Left(Nguon(r, 1), Vt - 1)
kq(r, 2) = Right(Nguon(r, 1), Len(Nguon(r, 1)) - Vt + 1)
kq(r, 0) = kq(r, 1) & " " & kq(r, 2)
Exit For
End If
End If
Next c
If Vt = Len(Nguon(r, 1)) Then kq(r, 0) = Nguon(r, 1)
Vt = 0
Next r
Sheet1.Range("F5", Sheet1.Range("H65000")).ClearContents
Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1) = kq
Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1).Columns.AutoFit
End Sub
chào ban quản trị và các bạn:
Mình cần hỏi là mình có 1 cột có 1 số dòng có các chữ dính liền nhau, mình cần tách các chữ dính liền nhau ra thì mình cần làm thế nào vậy.
P/a 1 là : Tách ra các chữ dính liền nhau có khoảng trống (dấu cách)
p/a 2 là: Tách ra làm 2 cột rồi nhau ở khoảng chữ dính liền nhau
p/s: File đính kèm của mình là cột d ah
cảm ơn các bác nhiều ah
h5= match(1,index((exact(mid(d5,row(offset($a$1,,,len(d5))),1),lower( mid(d5,row(offset($a$1,,,len(d5))),1)))=false)*(len(trim(mid(" "&d5,row(offset($a$1,,,len(d5))),3)))=3)*exact(mid(d5,row(offset($a$1,,,len(d5)))+1,1),lower( mid(d5,row(offset($a$1,,,len(d5)))+1,1))),0),0)-1
e5=iferror( left(d5,h5),d5)
f5=iferror( mid(d5,h5+1,1000),"")
g5=e5&" "&f5
Gộp chung cả 2 p/a vào kết quả
Kết quả dán vào cột F:H
Mã:Public Sub Tach() Dim Nguon, Tam, Vt, kq(), r As Long, c As Long, cl As Integer On Error Resume Next Nguon = Sheet1.Range("D5", Sheet1.Range("D65000").End(xlUp)) ReDim kq(1 To UBound(Nguon), 2) For r = 1 To UBound(Nguon) Tam = Split(Nguon(r, 1)) Vt = Len(Tam(0)) For c = 1 To UBound(Tam) Vt = Vt + Len(Tam(c)) + 1 If Len(Tam(c)) > 1 Then If LCase(Right(Tam(c), Len(Tam(c)) - 1)) <> Right(Tam(c), Len(Tam(c)) - 1) Then For cl = Len(Tam(c)) To 2 Step -1 If LCase(Mid(Tam(c), cl, 1)) = Mid(Tam(c), cl, 1) Then Vt = Vt - 1 Else Exit For End If Next cl kq(r, 1) = Left(Nguon(r, 1), Vt - 1) kq(r, 2) = Right(Nguon(r, 1), Len(Nguon(r, 1)) - Vt + 1) kq(r, 0) = kq(r, 1) & " " & kq(r, 2) Exit For End If End If Next c If Vt = Len(Nguon(r, 1)) Then kq(r, 0) = Nguon(r, 1) Vt = 0 Next r Sheet1.Range("F5", Sheet1.Range("H65000")).ClearContents Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1) = kq Sheet1.Range("F5").Resize(UBound(kq), UBound(kq, 2) + 1).Columns.AutoFit End Sub
Có lẽ là với dữ liệu lớn thì dùng đoạn code trên cho tiện. Cách khác thì chưa tìm.Cảm ơn bạn, tuy nhiên có cách gì không phải chạy đoạn code này không bạn >?
Hoan hô doveandrose, khó vậy mà cũng nghỉ ra, quá sáng tạo, cảm ơn bạn nhiều.Mã:h5= match(1,index((exact(mid(d5,row(offset($a$1,,,len(d5))),1),lower( mid(d5,row(offset($a$1,,,len(d5))),1)))=false)*(len(trim(mid(" "&d5,row(offset($a$1,,,len(d5))),3)))=3)*exact(mid(d5,row(offset($a$1,,,len(d5)))+1,1),lower( mid(d5,row(offset($a$1,,,len(d5)))+1,1))),0),0)-1
Mã:e5=iferror( left(d5,h5),d5)
Mã:f5=iferror( mid(d5,h5+1,1000),"")
Mã:g5=e5&" "&f5
cái đó viết giỡn đó . gần đây tôi đang luyện công thức , đổi món ăn chơiHoan hô doveandrose, khó vậy mà cũng nghỉ ra, quá sáng tạo, cảm ơn bạn nhiều.
cái đó viết giỡn đó . gần đây tôi đang luyện công thức , đổi món ăn chơi
Hi BNTTKhông biết các bác trên diễn đàn có thêm ý kiến gì không...
Riêng tôi thì chỉ nghĩ rằng: Excel tiếng gì thì tên hàm vẫn không thay đổi.
Tôi đã từng thấy một bản Excel tiếng Nhật, họ vẫn dùng, SUM, IF, LEN, v.v... đấy thay!
Bạn có thích dùng vba thì tôi chỉHi BNTT
Giúp mình phát này nhé
mình muốn lấy chữ THPT, THPT DL, Chuyên, THDL, còn lại N/A bằng IF và FIND nhưng vẫn gặp một số lỗi, ko ra. Nhờ bạn chỉ giáo
Thanks
Bạn thử công thức này nhéHi BNTT
Giúp mình phát này nhé
mình muốn lấy chữ THPT, THPT DL, Chuyên, THDL, còn lại N/A bằng IF và FIND nhưng vẫn gặp một số lỗi, ko ra. Nhờ bạn chỉ giáo
Thanks
=CHOOSE(MATCH(1,COUNTIF(D6,{"THPT DL*","THPT*","Chuyên*","THDL*"}),0),"THPT DL","THPT","Chuyên","THDL")
Bài này nếu muốn dùng IF thì bạn cứ IF nó 4 lần thôi mà, đâu cần FINDTrân trọng cảm ơn chỉ bảo của mọi người.
VBA thì hay nhưng liệu có cách nào xử lý với hàm IF và FIND ko nhỉ
@huuthang_bd: Vô cùng cảm ơn bạn đã suggest một option khác. Tuy nhiên, mình rất muốn thử nếu dùng IF và FIND sẽ ntn vì mình đang cố gắng bám theo yêu cầu để thực hiện.
Ý bạn là chỉ dùng hàm IF và hàm FIND thôi à??? Có lẽ người ra đề chỉ biết mỗi cách dùng IF và FINDTrân trọng cảm ơn chỉ bảo của mọi người.
VBA thì hay nhưng liệu có cách nào xử lý với hàm IF và FIND ko nhỉ
@huuthang_bd: Vô cùng cảm ơn bạn đã suggest một option khác. Tuy nhiên, mình rất muốn thử nếu dùng IF và FIND sẽ ntn vì mình đang cố gắng bám theo yêu cầu để thực hiện.
=IF(D6="","N/A",IF(FIND("THPT DL",D6&"THPT DL")=1,"THPT DL",IF(FIND("THPT",D6&"THPT")=1,"THPT",IF(FIND("THDL",D6&"THDL")=1,"THDL",IF(FIND("Chuyên",D6&"Chuyên")=1,"Chuyên","N/A")))))
Ý bạn là chỉ dùng hàm IF và hàm FIND thôi à??? Có lẽ người ra đề chỉ biết mỗi cách dùng IF và FIND
Mã:=IF(D6="","N/A",IF(FIND("THPT DL",D6&"THPT DL")=1,"THPT DL",IF(FIND("THPT",D6&"THPT")=1,"THPT",IF(FIND("THDL",D6&"THDL")=1,"THDL",IF(FIND("Chuyên",D6&"Chuyên")=1,"Chuyên","N/A")))))