PDA

View Full Version : Tách chữ trong hàm



kimlan
24-12-07, 04:12 PM
Em dùng hàm Concatenate để nối chuỗi ví dụ:Concatenate("Bộ môn","địa chất") thành Bộ môn địa chất,có công thức nào có thể tách trở lại được ko chỉ giùm em với.

BNTT
24-12-07, 04:58 PM
Có nhiều cách.

Tuy nhiên, nếu để nối thì dễ, vì bạn chỉ cần cần biểu Excel nối, là nó nối, không cần biết nối từ đâu...

Còn tách ra, thì bạn phải chỉ cho Excel biết tách từ đâu, từ mốc nào?

Tôi ví dụ nhé, chữ "Bộ môn địa chất" của bạn, bạn muốn tách thành "bộ môn" và "địa chất":

Để tách "Bộ môn", dùng hàm FIND() tìm chữ "đ" của "địa chất" xem chữ "đ" nằm ở đâu (giả sứ "Bộ môn địa chất" đang ở A1)

= FIND("đ", A1) cho kết quả bằng 8, nghĩa là vị trí thứ 8 trong "Bộ môn địa chất"
Vậy để tách "Bộ môn", lấy 7 chữ đầu của "Bộ môn địa chất" là xong thôi (bằng 7 vi phải trừ đi một một khoảng trắng)

= LEFT(A1, FIND("đ", A1)-1)
Cách khác, bạn dùng hàm FIND() tìm khoảng trắng thứ hai, là khoảng trắng sau chữ "môn", xem nó bắt đầu từ đâu, rồi cũng dùng hàm LEFT() để tách "Bộ môn":

= LEFT(A1, FIND(" ", A1, FIND(" ", A1)+1))

Còn chữ "địa chất", bạn có thể lấy "Bộ môn địa chất" trừ bớt đi "Bộ môn" (giả sử ở trên, bạn gõ công thức tìm "Bộ môn" ở A2)

= RIGHT(A1, LEN(A1) - LEN(A2))
Hoặc cũng dùng hàm FIND() tìm khoảng trắng thứ hai (trước chữ "địa") trong "Bộ môn địa chất" rồi dùng hàm RIGHT() để trích ra:

= RIGHT(A1, LEN(A1) - FIND(" ", A1, FIND(" ", A1)+1))


Về cách dùng các hàm đã nói ở trên, bạn tham khảo bài Excel's Text Functions ở dưới chữ ký của tôi nhé.

tigertiger
24-12-07, 05:04 PM
oh tách lại thì có nhiều, nhưng phải tách theo cái chuẩn nào: ví dụ ngăn cách bởi dấu phẩy ",", dấu ";", hay ký hiệu nào đó ... hoặc cao cấp hơn là dựa trên danh mục đã có,... - cái đó mới là quan trọng

anhtuan1066
24-12-07, 07:33 PM
Ráp vào thì cực dễ, nhưng tách ra thì thật là khó.. giống như 2 người lấy nhau thì chỉ cần đăng ký kết hôn, nhưng muốn ly dị à? Phải ra tòa và nói rõ lý do vì sao muốn chia tay... Phải có bằng chứng gì đó.. cũng giống như trong chuổi cần tách, bạn phải tìm ra dc 1 đặc điểm gì đó đễ nhận dạng.. thế thì mới tách dc...
Hay là như vầy.. bạn trình lên đây tờ đơn xin chia tay... tòa sẽ xét cho.. ha.. ha..
ANH TUẤN

lamho27
25-12-07, 09:25 PM
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

tigertiger
25-12-07, 10:07 PM
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
Oh, hơi khó hỉu 1 chút, bạn giải thích kỹ ra
còn hàm tách ký tự ra như BNTT đã viết ở post#2 trên - bạn xem nhé

BNTT
25-12-07, 10:53 PM
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 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ý!

Thôi thì tôi gợi ý cho bạn cách chia đôi một câu nhé, bình dân thôi, hy vọng bạn hiểu.


Đầu tiên, bạn dùng hàm LEN() để đếm số ký tự trong câu đó, đặng mà chia đôi đấy mà.

Tiếp theo, bạn dùng hàm FIND() để tìm cái khoảng trắng bắt đầu tại chỗ chia đôi này trở về cuối,
gặp cái nào thì cho biết vị trí của cái đó.

Cuối cùng thì dùng hàm LEFT() để lấy nửa đầu, và hàm RIGHT() để lấy nửa sau.

Lưu ý thêm một chuyện, nói là chia đôi, nhưng thực tế thì hiếm khi "chia đôi" được,
vì còn phải giữ nguyên một từ trong câu nữa, chúng ta đâu để cắt đôi ngay giữa một từ được, bạn hiểu chứ?

Ví dụ nhé, ta chia câu này thành hai: GIẢI PHÁP EXCEL, CÔNG CỤ TUYỆT VỜI CỦA BẠN (giả sử đặt câu này tại ô A1)

Tìm điểm chia đôi của câu này: LEN(A1) / 2

Tìm khoảng trắng trong câu này, bắt đầu từ vị trí chia đôi, và trừ 1
(nghĩa là trừ bớt đi chính cái khoảng trắng nó vừa chỉ vị trí): FIND(" ", A1, LEN(A1) / 2) - 1

Lấy nửa đầu (tại ô A2):
A2 = LEFT(A1, FIND(" ", A1, LEN(A1) / 2) - 1) → GIẢI PHÁP EXCEL, CÔNG
Lấy nửa cuối (tại ô B2):
B2 = RIGHT(A1, LEN(A1) - LEN(A2)) → CỤ TUYỆT VỜI CỦA BẠN

lamho27
26-12-07, 03:49 AM
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

chibi
26-12-07, 05:44 AM
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
Lần đầu tiên nghe thấy.

SA_DQ
26-12-07, 07:35 AM
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
Excel tiếng Pháp hay người pháp viết bảng tính tương tự như excel?
Nếu excel bằng tiếng pháp thì bạn tự tìm thôi, theo nguyên tắc: vố menu Insert -> Function =>> các hàm kiểu text => dò lần lượt từng cú pháp hàm theo dòng trích dẫn ngắn về hàm;
Ngược lại, theo nguyên lí (NL)tương tự: cũng vô menu này & Tương tự. . . .
NL tương tư cũng là NL tương đối lớn & có thể áp dụng trong nhiều lĩnh vực khác nhau, chỉ kém thuyết tương đối & nguyên lí không xác định . . .

BNTT
26-12-07, 08:59 AM
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
Khô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!

lamho27
26-12-07, 11:06 PM
thiệt tình là không tìm thấy lệnh LEN và FIND , trong các hàm text chỉ có các hàm sau đây :BAHTTEXT . CAR . CHERCHE . CNUM . CODE . CONCATENER . CTXT . DROITE . EPURAGE . EXACT . FRANC . GAUCHE . MAJUSCULE . MIJUSCULE . NBCAR . NOMPROPRE . REMPLACER . REPT . STXT . SUBTITUE . SUPPRESPACE . T . TEXTE . TROUVE .
em đã thử hết các hàm trên mà vẩn không được , thôi thì đành chịu thua , nhưng cũng rất cám ơn các anh chị

BNTT
27-12-07, 12:09 AM
Bạn lamho27 thân, hình như:
NBCAR tương đương với LEN
RECHERCHE tương đương với FINDTôi nghĩ vậy vì tôi thấy cú pháp hàm nó hao hao giống nhau (hic)
Tôi mò ở đây nè: http://office.microsoft.com/fr-fr/excel/CH100793501036.aspx
Nếu bạn đọc được tiếng Pháp thì có lẽ không khó...

lamho27
27-12-07, 12:41 AM
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

anhtuan1066
27-12-07, 08:51 AM
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ám vào điều kiện tim ông " et "
có 2 khoảng trắng trước và sau chử et nhé
Ví dụ:
A1= vingt-quatre mille sept cent quatre-vingt-neuf euros et quarante-cinq centimes
B1 =LEFT(A1,FIND( " et ",A1,1))
Tách dc thằng em đầu... Em phía sau gần tương tự... bạn nghiên cứu đi
ANH TUẤN

BNTT
27-12-07, 09:45 AM
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
Không biết bạn muốn tách thế nào, chữ "et" dính với câu trước hay dính với câu sau. Nhưng "et" = "và", tôi nghĩ chắc bạn muốn nằm ở câu sau. Vậy làm vầy nhé:

Giả sử câu vingt-quatre mille sept cent quatre-vingt-neuf euros et quarante-cinq centimes đang ở ô A1 nghen.

Tách nửa trước chữ "et", tại ô A2
(nhớ thêm một khoảng trắng trước chữ "et", còn không thì phải trừ 1 sau khi gõ hàm CHERCHE() trong công thức - bạn xem lại bài số #2)

(A2) = GAUCHE(A1, CHERCHE(" et", A1))___→ vingt-quatre mille sept cent quatre-vingt-neuf euros
Tiếng Anh: = LEFT(A1, FIND(" et ", A1))
Phần còn lại (nửa sau) tại ô A3

(A3)= DROITE(A1, NBCAR(A1) - NBCAR(A2))___→ et quarante-cinq centimes
Tiếng Anh: = RIGHT(A1, LEN(A1) - LEN(A2))
Xong rồi đó.

Hic, lần đầu tiên trong đời viết hàm Excel bằng tiếng Pháp, cũng vui vui...

lamho27
27-12-07, 02:07 PM
BNTT giỏi thiệt , em đả làm ra được rồi , cám ơn nhiều lắm

echo07
27-12-07, 04:40 PM
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???

anhtuan1066
27-12-07, 06:47 PM
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???
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!
Tham khào bài toán tách tỉnh của tôi nhé:
http://www.giaiphapexcel.com/forum/showthread.php?t=6037
ANH TUẤN

lamho27
29-12-07, 02:57 AM
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

Tiger62
29-12-07, 10:02 AM
Đú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

tigertiger
29-12-07, 07:38 PM
Đú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

Thế là sao nhỉ, tách lại gộp ah??? lạ wa

anhtuan1066
29-12-07, 09:25 PM
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

ptm0412
29-12-07, 10:10 PM
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.

tigertiger
29-12-07, 10:50 PM
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

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:


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

anhtuan1066
29-12-07, 11:31 PM
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

ptm0412
29-12-07, 11:54 PM
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ừ.

lamho27
30-12-07, 02:51 AM
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

anhtuan1066
30-12-07, 09:18 AM
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

tigertiger
30-12-07, 03:38 PM
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


SUBSTITUE(texte,ancien_texte,nouveau_texte,no_posi tion) - 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:



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


Ô 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



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à,

BNTT
30-12-07, 04:36 PM
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.

lamho27
30-12-07, 05:27 PM
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

BNTT
30-12-07, 06:15 PM
...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ó
và 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

tigertiger
30-12-07, 07:11 PM
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é

lamho27
30-12-07, 07:23 PM
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

BNTT
30-12-07, 08:00 PM
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:


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

lamho27
30-12-07, 08:02 PM
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

tigertiger
30-12-07, 08:13 PM
VD về kết hợp IF:


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 đó




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

lamho27
30-12-07, 09:00 PM
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

BNTT
30-12-07, 10:22 PM
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)

ptm0412
30-12-07, 10:38 PM
Oh! mình đoán ra mà không biết đúng không. Tiếng Pháp giống tiếng Việt ở định dạng số, dấu "," là dấu thập phân, nếu vậy dấu separator là dấu ";".
Lamho vào tableau de contrôle của hệ thống, vào mục langue xem signe séparé là gì? Phẩy hay chấm phẩy?
Hê, tiếng Pháp của mình có ẹ thì đường cười nhe! Mình dịch từ trong Word ra đó.
Nếu là chấm phẩy thì các dấu trong công thức phải là chấm phẩy.

lamho27
31-12-07, 12:08 AM
BNTT ơ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

tigertiger
31-12-07, 12:23 AM
Oh, vẫn còn tiếp tục ah, đúng là ko cùng ngôn ngữ, cố giúp bạn đây:



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


thì A5= NBCAR(A1) - NBCAR(SUBSTITUE(A1, " ", "")) + 1
thì A6= SI(A5<= 4,A1,A3)

A6 - chính là kết quả phải tìm - trường hợp mà A1 có số ký tự nhỏ hơn 4 nó chính bằng A1 lun , trái lại nó lấy 4 ký tự đầu

trong đó A5 chỉ là tìm số chữ của A1 (chính = <số khoảng trắng> +1 )

bạn thử lun đi, KQ thế nào ta lại tiếp tục

tigertiger
31-12-07, 01:28 AM


B5: = NBCAR(A1) - NBCAR(A6) - 1
B6: = SI(B4<=0,"", DROITE(A1,B5))

ô B6 chứa kq phần còn lại của chuỗi ký tự


@BNTT
tigertiger vẫn copy bình thường thẳng luôn từ diễn đàn, chỉ lưu ý khoảng trắng trước dấu "="; và chú ý dấu phân cách "," hay ";" thôi chấp cả các dấu "" lun
la wa, lamho27 vẫn sd dấu phẩy "," mà lại ko copy được lạ wa

lamho27
31-12-07, 02:18 AM
Tigertiger ơi ,phần A5 (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

tigertiger
31-12-07, 03:37 AM
Tigertiger ơi ,phần A5
(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

Đúng là có 4 dòng

SUBSTITUE(texte,ancien_texte,nouveau_texte,no_posi tion)

+ texte: là chuỗi ký tự bạn muốn thay thế

+ ancien_texte : là chuỗi tìm kiếm để thay thế (ở đây là khoảng trắng nên " " - nhớ là có 1 dấu cách)

+ nouveau_texte : là chuỗi mới thay thế ở đây là rỗng (trống) nên là "" nhớ 2 dấu ngoặc kép liền nhau
+ no_position : Vị trí gặp cần thay thế - nếu không nhập thì thay thế tất cả, trong trường hợp này đừng nhập gì cả - hãy để trống
Chú ý lựa chọn này không đậm (bold) như các lựa chọn khác -> ko nhập sẽ theo mặc định -> thay thế tất
(nhập như bạn chỉ thay tại vị trí 1 mà thôi)

lamho27
31-12-07, 01:10 PM
em đả làm được rồi , cám ơn Tigertiger nhiều lắm , chúc Tigertiger và các bạn trong diển đàn năm mới ( tết tây ) vui vẻ , nhiều sức khỏe

nguyenvietviet
14-12-10, 10:45 AM
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

gaunuicr
15-12-10, 12:11 AM
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

dat_butmuc
15-12-10, 08:50 AM
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

Nếu có sẵn của cell F1, F2 & chỉ có 2 DN này thì kiểu này cũng được:

=IF(ISERR(SEARCH($F$1,$A1)),IF(ISERR(SEARCH($F$2,$ A1)),"",$F$2),$F$1)

nguyenvietviet
15-12-10, 02:42 PM
Cá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

dat_butmuc
15-12-10, 02:47 PM
Cá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
Do bạn hỏi kiểu vầy

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 cứ nói không không vậy, chẵng lẽ mọi người phải tự làm file cho bạn trong khi bạn đi hỏi với lại chẳng biết dữ liệu của bạn ra sao?

nguyenvietviet
25-12-10, 11:13 AM
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 đó
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"
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Ý "
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"
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"
Minhf cắm ơn nhieùu

gaunuicr
19-01-11, 08:10 AM
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 đó
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"
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Ý "
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"
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"
Minhf cắm ơn nhieùu
Bạn dat_butmuc nói đúng đó, bạn phải đưa file lên.
Giả sử dữ liệu của bạn ở cột A và phải nhập chuẩn như bạn mô tả (phải có "Công ty", phải có khoảng trắng trước "-" nếu có kí tự này). Bạn nhập vào cell B1 công thức này:
=IF( ISERR(FIND("-";A1));MID(A1;FIND("Công ty";A1);1000);MID(A1;FIND("Công ty";A1);FIND("-";A1)-FIND("Công ty";A1)-1))

nguyenvietviet
06-06-11, 01:44 PM
Mình gửi file lê đây. Các bạn giúp mình nha.

Matchia
06-06-11, 02:06 PM
Bài của bạn mình dùng phương pháp như sau:
- Ta thấy tất cả tên công ty ở phần diễn giải đều bắt đầu sau chữ "của" và kết thúc trước dấu "-" do đó cần tìm vị trí của các ký tự và chữ trên (dùng hàm FIND)
- Dùng hàm MID để trích với chi tiết:
+ "start_num"= [vị trí của chữ "của"] + 4
+ "num_chart" = [vị trí của ký tự "-"] - [vị trí của chữ "của"] - 5
- Tương tự ta cũng làm như vậy khi tách tên kho
- Lưu ý:
+ Tất cả các dòng phải cùng chuẩn chữ (ví dụ: của - cuả)
+ Chung một kiểu quy luật để có thể tìm được vị trí đoạn cần trích

Phương pháp sơ sơ là như vậy, mọi người góp ý thêm nhé,
Thân chào.

tungtung92
09-01-12, 04:12 PM
có gói ngôn ngữ tiếng việt đó bạn.nhưng chỉ dùng cho ofice 2007 và 2010 thôi.

cogainhobe
09-01-12, 11:44 PM
12-a-123
5-bcdf-5
1234-sbfgs-24545
123-bd-13
=> mọi người giúp e lấy được các ký tự giữa 2 dấu cách với,
thanks