Các phương pháp tách số từ chuỗi và ngược lại, đề nghị post tại đây (1 người xem)

Liên hệ QC

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

cobecan1201

Thành viên mới
Tham gia
6/5/10
Bài viết
23
Được thích
3
Chào các bạn!

Mình đang gặp rắc rối trong một file excel như sau :

Ví dụ : 20-1904 B3 lò gốm
hoặc 1902 7/3 cmt8

Mình chỉ cần lấy giá trị là 1904,1902........

Mình gửi file đính kèm.Các bạn giúp mình nha.!
 
Đâu có thấy file đâu
 
cái này đơn gian mà, bạn có thể sử dụng công thức sau:

Nếu là: 20-1904 B3 lò gốm mình gọi ô chứa dữ liệu này là A1, bạn có thể đãnh công thức sau: =right(left(A1, 7),4)
Nếu là: 1902 7/3 cmt8 bạn chỉ cần gõ ct: =left(A1,4)
 
Hàm tách số

Nhờ các bác tách hộ em số trong file này. Em muốn tách chỉ lấy số trước dấu , Ví dụ như ở ô C3, C4, muốn tách lấy số: 45.625.360 và 22.000. Cám ơn các bác.
Note: Ngày trước em cũng đã làm 1 lần nhưng đã quên mất, hình như dùng hàm MID thì phải, nhưng em làm mãi không ra được./. :D
 

File đính kèm

Nhờ các bác tách hộ em số trong file này. Em muốn tách chỉ lấy số trước dấu , Ví dụ như ở ô C3, C4, muốn tách lấy số: 45.625.360 và 22.000. Cám ơn các bác. Note: Ngày trước em cũng đã làm 1 lần nhưng đã quên mất, hình như dùng hàm MID thì phải, nhưng em làm mãi không ra được./. :D

Tức là tách lấy từ bên trái đến khi gặp dấu phẩy thì ngưng, đúng không?

Vậy thì dùng công thức này tại cell G2:

PHP:
=LEFT(C2,FIND(",",C2)-1)

kéo fill xuống

Để chuyển nó thành số thật sự, dùng công thức này:

PHP:
=SUBSTITUTE(LEFT(C2,FIND(",",C2)-1),".","")*1
 
Tức là tách lấy từ bên trái đến khi gặp dấu phẩy thì ngưng, đúng không?

Vậy thì dùng công thức này tại cell G2:

PHP:
=LEFT(C2,FIND(",",C2)-1)

kéo fill xuống

Để chuyển nó thành số thật sự, dùng công thức này:

PHP:
=SUBSTITUTE(LEFT(C2,FIND(",",C2)-1),".","")*1
Không được bác ạ, nó báo lỗi, nháy đen ở: C2,Find. Hay là do nó không hiểu được "," và ,
 
Vâng, các ơn các bác. Em làm được rồi. Nó không hiểu ở 2 dấu , thật.
 
Giả sử dữ liệu của bạn thuộc từ B2 trở xuống:
Tại C2 bạn thử công thức: =MID(B2,FIND("19",B2,1),4) sau đó fill xuống xem sao.

"Bạn phải đưa file lên thì mới tổng quát hết được."
 
Cần giúp lấy chuỗi ký tự

Tại A1 mình có đoạn sau: Nguyen Van A 290900289-3.000.0000 chuyen tien
Mình cần lấy ra: 290900289-3.000.0000
Có nghĩa là mình sẽ lấy bắt đầu từ 2909 cho đến khi có khoảng trắng thì thôi.
Vì mỗi lần kết quả sẽ khác nhau nên lấy đúng phần ký tự thì sẽ có lần bị sai.
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.
 
Tại A1 mình có đoạn sau: Nguyen Van A 290900289-3.000.0000 chuyen tien
Mình cần lấy ra: 290900289-3.000.0000
Có nghĩa là mình sẽ lấy bắt đầu từ 2909 cho đến khi có khoảng trắng thì thôi.
Vì mỗi lần kết quả sẽ khác nhau nên lấy đúng phần ký tự thì sẽ có lần bị sai.
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.

Bạn nên sửa lại tiêu đề đi không thôi bị vào sọt rác đó, bài của bạn bạn nên cho thêm ít trường hợp nữa mọi người sẽ giúp bạn chính xác hơn
 
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
 
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
 
Lần chỉnh sửa cuối:
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
Người ta nói rằng:
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.
Bé Còi kiên nhẫn chờ chủ Topic này đưa đủ dữ liệu lên rồi tha hồ ..."ngâm cú"
Híc
Thân
 
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
Nhàn cư vi bất thiện
Ngồi buồn, làm đại, có gì bàn tiếp
 

File đính kèm

Nhàn cư vi bất thiện
Ngồi buồn, làm đại, có gì bàn tiếp
Cái này sai 1 rổ luôn
Mattroicoi 345678-12345678 chuyển tiền cho minhthien321
Thử xem
Người ta đã nói rõ ràng thế này rồi còn gì:
mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Find số 2909 và Find khoảng trắng sau số 2909, đơn giản thế thôi mà
Ẹc... Ẹc...
 
Công thức của hoamattroi tôi chế biến lại 1 tí cho bạn xem được hay không( bản quyền của hoamattroi)
=LEFT(TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),FIND(" ",TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),1))
 
Lần chỉnh sửa cuối:
Công thức của hamattroi tôi chế biến lại 1 tí cho bạn xem được hay không( bản quyền của hoamattroi)
=LEFT(TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),FIND(" ",TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),1))
Thank. Đây đúng là cái mình cần, cảm ơn bạn rất nhiều
Mình lại phát sinh vấn đề sau. Đấy là trong ô mà không có dữ liệu thì nó báo #VALUE!
Hoặc toàn chữ cũng là #VALUE!
Hoặc chỉ gõ không là 290900258 thì cũng #VALUE!
Mong bạn giúp mình với

Giờ mình muốn thế này. Nếu trong ô mà có chứa những ký tự như vậy thì nó sẽ lấy. Còn không thì sẽ bằng luôn A1. Như vậy cho đỡ mất dữ liệu
Với lại dữ liệu của mình là dữ liệu kiểu chữ chứ ko phải là số. Híc híc
 
Lần chỉnh sửa cuối:
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
nên sửa lại tiêu đề bạn nhé
thực ra từ ct của hoamattroicoi chỉ cần thêm 1 chút nữa là được\
PHP:
=LEFT(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890))),FIND(" ",RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))))
 
Cái này sai 1 rổ luôn
Mattroicoi 345678-12345678 chuyển tiền cho minhthien321
Thử xem
Người ta đã nói rõ ràng thế này rồi còn gì:

Find số 2909 và Find khoảng trắng sau số 2909, đơn giản thế thôi mà
Ẹc... Ẹc...
Hihi, thì đã bảo làm theo dữ liệu của chủ topic thôi mà
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
Tức là trong chuỗi đó chỉ chứa một chuỗi con là số
Đặt tường hợp ngược lại "Minhthien321 chuyển tiền 123456789 cho ai đó ....." thì Find cũng "tèo"
Việc sử dụng Find thì đã làm từ lâu, muốn thử các cái mới í mà
Híc
 
Thêm cái củ chuối này nữa :
PHP:
=MID(A1;MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890));IF(ISERROR(FIND(" ";A1;MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890))));LEN(A1);FIND(" ";A1;MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890))))-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890))+1)
Làm xong mà hổng biết mình làm gì nữa!!! Hic!
 
Lần chỉnh sửa cuối:
Hihi, thì đã bảo làm theo dữ liệu của chủ topic thôi mà

Tức là trong chuỗi đó chỉ chứa một chuỗi con là số
Đặt tường hợp ngược lại "Minhthien321 chuyển tiền 123456789 cho ai đó ....." thì Find cũng "tèo"
Việc sử dụng Find thì đã làm từ lâu, muốn thử các cái mới í mà
Híc
Hình như anh đọc chưa rõ yêu cầu thì phải
Trong chuổi có số gì mặc kệ nó, nằm ở vị trí nào cũng mặc kệ luôn... miễn sao anh tìm ra được số 2909 đầu tiên và khoảng trắng sau nó là được rồi
Thiết nghĩ yêu cầu này quá đơn giản và tác giả cũng đã mô tả quá rõ ràng ---> Chỉ tại mọi người muốn làm theo hướng phức tạp thì đành chịu khổ vậy
 
Lần chỉnh sửa cuối:
Em xin ví dụ lại
1. Nguyen Van A 2909-2.000.000
2. Nguyen Van A 2909-2.000.000 chuyển tiền
3. Nguyen Van A 2909
4. 2909
Vì người nhập là khác nhau nên dữ liệu không đồng nhất

Giờ em muốn lọc ra các kết quả như sau:
1. 2909-2.000.000
2. 2909-2.000.000
3. 2909
4. 2909
Nếu không có dữ liệu thì nó bằng chính nó (thế cho dễ). -0-/. Hoặc nếu toàn có chữ thì cũng bằng chính nó luôn, vì rất hay bị lỗi #Value
Mong mọi người giúp đỡ. (Dữ liệu ở dưới dạng text toàn bộ).
 
Em xin ví dụ lại
1. Nguyen Van A 2909-2.000.000
2. Nguyen Van A 2909-2.000.000 chuyển tiền
3. Nguyen Van A 2909
4. 2909
Vì người nhập là khác nhau nên dữ liệu không đồng nhất

Giờ em muốn lọc ra các kết quả như sau:
1. 2909-2.000.000
2. 2909-2.000.000
3. 2909
4. 2909
Nếu không có dữ liệu thì nó bằng chính nó (thế cho dễ). -0-/. Hoặc nếu toàn có chữ thì cũng bằng chính nó luôn, vì rất hay bị lỗi #Value
Mong mọi người giúp đỡ. (Dữ liệu ở dưới dạng text toàn bộ).
Tôi nghĩ công thức bạn cần là:
PHP:
=IF(COUNTIF($A1,"*2909*"),MID($A1,FIND("2909",$A1),FIND(" ",$A1&" ",FIND("2909",$A1))-FIND("2909",$A1)),"")
Với A1 là cell chứa chuổi gốc
Công thức ở trên, nếu không tìm thấy số 2909 thì sẽ trả về kết quả rổng. Nếu bạn muốn "bằng chính nó" thì sửa thành:
PHP:
=IF(COUNTIF($A1,"*2909*"),MID($A1,FIND("2909",$A1),FIND(" ",$A1&" ",FIND("2909",$A1))-FIND("2909",$A1)),$A1)
 
Các phương pháp tách số từ chuổi và ngược lại, đề nghị post tại đây.

Nhờ cách anh chị giúp giùm cách tách số:

ví dụ ô A1 là 3841142158863

ra kết quả ô A2 là 4215886
(7 chữ số từ vị trí thứ 6 đến thứ 12)
Cám ơn nhiều
 
Dùng hàm mid đi bạn
=mid(3841142158863;6;7)
 
Nhờ cách anh chị giúp giùm cách tách số:

ví dụ ô A1 là 3841142158863

ra kết quả ô A2 là 4215886
(7 chữ số từ vị trí thứ 6 đến thứ 12)
Cám ơn nhiều

Có phải vầy không ta?
PHP:
 A2=MID(A1,6,7)
Bạn đọc được điều kiện mà sao ko lấy được số mình muốn nhỉ???
 
Tách số ra khỏi đoạn text

Giúp mình các bạn ơi!

Mình dùng một chương trình và xử lý ra một đoạn định dạng text sau:
1 VAR1 1,3718 ,1754
2 VAR2 ,9076 ,3231
3 VAR3 ,7207 -,8232
4 VAR4 ,6796 ,4715
5 VAR5 ,2444 -1,0426
6 VAR6 ,1249 ,9906
7 VAR7 -1,3752 -,2585
8 VAR8 -2,6738 ,1636

Mình cần tách ra thành 4 cột với 2 cột cuối là số để mình có thể cộng trừ, nhân chia...

Mình có gửi kèm file ví dụ. Các bạn chỉ mình cách làm sao cho cột A thành 4 cột C, D, E, F.

Cảm ơn các bạn!
 

File đính kèm

Giúp mình các bạn ơi!

Mình dùng một chương trình và xử lý ra một đoạn định dạng text sau:
1 VAR1 1,3718 ,1754
2 VAR2 ,9076 ,3231
3 VAR3 ,7207 -,8232
4 VAR4 ,6796 ,4715
5 VAR5 ,2444 -1,0426
6 VAR6 ,1249 ,9906
7 VAR7 -1,3752 -,2585
8 VAR8 -2,6738 ,1636

Mình cần tách ra thành 4 cột với 2 cột cuối là số để mình có thể cộng trừ, nhân chia...

Giúp mình các bạn ơi!

Mình dùng một chương trình và xử lý ra một đoạn định dạng text sau:
1 VAR1 1,3718 ,1754
2 VAR2 ,9076 ,3231
3 VAR3 ,7207 -,8232
4 VAR4 ,6796 ,4715
5 VAR5 ,2444 -1,0426
6 VAR6 ,1249 ,9906
7 VAR7 -1,3752 -,2585
8 VAR8 -2,6738 ,1636

Mình cần tách ra thành 4 cột với 2 cột cuối là số để mình có thể cộng trừ, nhân chia...

Cách đơn giản nhất là dùng chức năng Text to column, bằng cách
data --> chọn text to column --> chọn dấu phân cách là Comma trong mục Delimiters --> OK
bạn có thể tự làm nhanh chóng,
 
Cách đơn giản nhất là dùng chức năng Text to column, bằng cách
data --> chọn text to column --> chọn dấu phân cách là Comma trong mục Delimiters --> OK
bạn có thể tự làm nhanh chóng,
Bài này không dùng Text to column được rồi, vì các phần tử của chuổi cách nhau bằng ký tự CHAR(160)
-------------
Dùng công thức này tại cell B1:
PHP:
=TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE($A1,CHAR(160)," "))," ",REPT(" ",255)),(COLUMNS($A:A)-1)*255+1,255))
Kéo fill sang E1 và kéo fill xuống
 
Bài này không dùng Text to column được rồi, vì các phần tử của chuổi cách nhau bằng ký tự CHAR(160)
-------------
Dùng công thức này tại cell B1:
PHP:
=TRIM(MID(SUBSTITUTE(TRIM(SUBSTITUTE($A1,CHAR(160)," "))," ",REPT(" ",255)),(COLUMNS($A:A)-1)*255+1,255))
Kéo fill sang E1 và kéo fill xuống

Đúng là không down file về không biết,
NHƯNG vẫn dùng Text Column được, nếu phát hiện ra đó là Char(160), thì

data --> chọn text to column --> chọn other và gõ Alt+0160 --> OK
là vẫn có kết quả
 
Đúng là không down file về không biết,
NHƯNG vẫn dùng Text Column được, nếu phát hiện ra đó là Char(160), thì

data --> chọn text to column --> chọn other và gõ Alt+0160 --> OK
là vẫn có kết quả
Vì có rất nhiều ký tự CHAR(160) nên dù có tách ra được thì việc "dọn dẹp" cũng hơi mệt à nha
Thí nghiệm biết liền chứ gì
 
Vì có rất nhiều ký tự CHAR(160) nên dù có tách ra được thì việc "dọn dẹp" cũng hơi mệt à nha
Thí nghiệm biết liền chứ gì

pác đừng để ý tiểu tiết thế, hi hiiiiiii, thực ra đúng là dọn dẹp mệt,

nhưng mong là cách cho người khác có vấn đề tương tự áp dụng

Còn chủ topic nên áp dụng cách của ndu... nhé
 
Cảm ơn các cao thủ đã nhiệt tình giúp đỡ.

Nay tiện đây thì mình xin hỏi thêm luôn, đó là:

+ CHAR(160) là gì thế :D

+ Mình muốn tìm hiểu thêm về các vấn đề này của excel thì có thể tham khảo giáo trình nào?

Một lần nữa xin cảm ơn các bạn đã nhiệt tình giúp đở!
 
Mong các đàn anh giúp đỡ.
Em có nhiều chuỗi có độ dài và số ký tự khác nhau phân cách bằng khoảng trắng.
Ví dụ:
"tôi có một chuỗi 123456 abc"
"tôi còn có một chuỗi khác 12 abcdefgh"
Bây giờ em muốn tách text có vị trí thứ 2 và thứ 3 tính từ cuối mỗi chuỗi thì phải đặt công thức thế nào ( "chuỗi" và "123456" trong chuỗi đầu, "khác" và "12" trong chuỗi thứ 2 ) ?
 
Mong các đàn anh giúp đỡ.
Em có nhiều chuỗi có độ dài và số ký tự khác nhau phân cách bằng khoảng trắng.
Ví dụ:
"tôi có một chuỗi 123456 abc"
"tôi còn có một chuỗi khác 12 abcdefgh"
Bây giờ em muốn tách text có vị trí thứ 2 và thứ 3 tính từ cuối mỗi chuỗi thì phải đặt công thức thế nào ( "chuỗi" và "123456" trong chuỗi đầu, "khác" và "12" trong chuỗi thứ 2 ) ?

Cho các chuỗi trên bắt đầu từ ô A1, A2,...
Dùng tạm cái này:
PHP:
=LEFT(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)),300)),FIND(" ",SUBSTITUTE(TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)),300))," ","",1)))
Nếu bạn có file thực tế thì nhiều người giúp hơn hvà đưa ra giải đáp tốt hơn
 
Mong các đàn anh giúp đỡ.
Em có nhiều chuỗi có độ dài và số ký tự khác nhau phân cách bằng khoảng trắng.
Ví dụ:
"tôi có một chuỗi 123456 abc"
"tôi còn có một chuỗi khác 12 abcdefgh"
Bây giờ em muốn tách text có vị trí thứ 2 và thứ 3 tính từ cuối mỗi chuỗi thì phải đặt công thức thế nào ( "chuỗi" và "123456" trong chuỗi đầu, "khác" và "12" trong chuỗi thứ 2 ) ?
Gỉả sử ô A1 chứa chuỗi:
Mã:
=MID($A$1,LARGE(vitri,3)+1,LARGE(vitri,1)-LARGE(vitri,3))
Nhấn Ctrol-shift-enter để kết thúc.
với name vitri:
Mã:
=IF(MID($A$1,ROW(INDIRECT("1:"&LEN($A$1))),1)=" ",ROW(INDIRECT("1:"&LEN($A$1))),"")
 
Xin lỗi vì đã trả lời muộn.
Kết quả các công thức đều đúng. Em đang cố gắng tìm hiểu để áp dụng, cảm ơn hai anh đã giúp đỡ. Có gì mong các anh chỉ bảo thêm.
Nếu 2 chuỗi đó ở a1 và a2 và em muốn tách kết quả ra 2 cột khác nhau thì công thức sẽ phải như thế nào?
 
Lần chỉnh sửa cuối:
Cám ơn anh concogia.
Công thức của anh rất hay vì có thể dễ dàng thay đổi vị trí của text cần tách. Có cách nào khi giữa các text muốn tách không phải có chỉ một khoảng trắng mà có thể có số khoảng trắng bất kỳ khác nhau mà công thức vẫn đúng không?
 
Cám ơn anh concogia.
Công thức của anh rất hay vì có thể dễ dàng thay đổi vị trí của text cần tách. Có cách nào khi giữa các text muốn tách không phải có chỉ một khoảng trắng mà có thể có số khoảng trắng bất kỳ khác nhau mà công thức vẫn đúng không?
Nếu chỉ có thế thì bất cứ chỗ nào trong công thức có $A1 thì thêm hàm TRIM vào nó:
=TRIM(MID(SUBSTITUTE(TRIM($A1)," ",REPT(" ",LEN(TRIM($A1)))),LEN(SUBSTITUTE(TRIM($A1)," ",REPT(" ",LEN(TRIM($A1)))))-(LEN(TRIM($A1))-1)*(9-COLUMN()),LEN(TRIM($A1))-1))
Thân
 
Nhờ các anh và leduythuong giúp đỡ, em đã làm được bảng tính định mức chỉ cho ngành may. Em xin đưa lên đây để được các anh góp ý thêm.
 

File đính kèm

nhờ các anh và leduythuong giúp đỡ, em đã làm được bảng tính định mức chỉ cho ngành may. Em xin đưa lên đây để được các anh góp ý thêm.
nên thay ct
PHP:
=if(b16="","",iferror(--trim(mid(b16,search(d16,b16)+len(d16),10)),0))
thành
PHP:
=iferror(--trim(mid(b16,search(d16,b16)+len(d16),10)),"")

PHP:
=if(trim(trim($b17))="","",trim(mid(substitute(trim(trim($b17))," ",rept(" ",len(trim(trim($b17))))),len(substitute(trim(trim($b17))," ",rept(" ",len(trim(trim($b17))))))-(len(trim(trim($b17)))-1)*(6-column()),len(trim(trim($b17)))-1)))
thành
PHP:
=iferror(trim(mid(substitute(trim(trim($b17))," ",rept(" ",len(trim(trim($b17))))),len(substitute(trim(trim($b17))," ",rept(" ",len(trim(trim($b17))))))-(len(trim(trim($b17)))-1)*(6-column()),len(trim(trim($b17)))-1)),"")
thì gọn hơn chút
hoặc dùng name theo kiểu của bebo
 
Lần chỉnh sửa cuối:
Vd: abc12, d4,hgdgvv4, 6hb45hfh...
Các số và chữ xuất hiện ngẫu nhiên, làm sao có thể tách các dòng đó thành 1 bên số và 1 bên chữ
 
giúp tách số

giúp em tách các số ra với
 

File đính kèm

Dùng công thức này khỏi dùng dòng phụ
C5=MID($B5,COLUMN()-2,1)
 
Tách dãy số 030894 thành ngày sinh 03/08/1994 ???

Hiện tại em đang làm cái phần giấy báo nhập học cho trường trung cấp. Khi xuất danh sách trúng tuyển ra thì ngày tháng năm sinh thể hiện như trên. E muốn tách ra nhưng mò mãi không tách nổi. Em thử dùng hàm mid nhưng không tách được tháng với năm.
Nhờ các bác giúp em với nếu không ngồi gõ phím "/" mỏi tay luôn.
em cảm ơn trước ạ​
 

File đính kèm

Hiện tại em đang làm cái phần giấy báo nhập học cho trường trung cấp. Khi xuất danh sách trúng tuyển ra thì ngày tháng năm sinh thể hiện như trên. E muốn tách ra nhưng mò mãi không tách nổi. Em thử dùng hàm mid nhưng không tách được tháng với năm.
Nhờ các bác giúp em với nếu không ngồi gõ phím "/" mỏi tay luôn.
em cảm ơn trước ạ

Bạn làm theo công thức trên là đúng rồi đó. Chỉ tại bạn sai một chổ thôi: =MID(A3;1;2)&"/"&MID(A3;3;2)&"/"&MID(A3;5;2)
Ngay chổ tách tháng bạn chọn 2 chứ không phải là 4
Chúc bạn thành công!
 
Lần chỉnh sửa cuối:
hỏi về cách tách số

các bác pro đặt hàm giúp em để tách được số trong cột B để ra được kết quả trong cột C.

Thanks Các bác nhiều !
 

File đính kèm

File đính kèm

các bác pro đặt hàm giúp em để tách được số trong cột B để ra được kết quả trong cột C.

Thanks Các bác nhiều !


Gõ vào C9 công thức sau:
Mã:
=LOOKUP(10^14,1*RIGHT(LEFT(TRIM(B9),LEN(TRIM(B9))-1-LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(B9),"_",REPT(" ",255)),255)))),ROW($1:$255)))
 
Thank bác nhiều nhưng em mới có phát sinh thêm 1 vài MS không có phần _ ở cuối cùng bác đặt lại hàm giúp em được không ạ ?

Thì thêm 1 cái IF nữa thôi:
Mã:
=LOOKUP(10^14,1*RIGHT(IF(COUNTIF(B9,"*_*"),LEFT(TRIM(B9),LEN(TRIM(B9))-1-LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(B9),"_",REPT(" ",255)),255)))),TRIM(B9)),ROW($1:$255)))
 

File đính kèm

Lần chỉnh sửa cuối:
sao em pate cái hàm này vào file khác không được bác nhỉ ?

Không được thì xem lại:
- Địa chỉ tham chiếu có giống file bạn gửi không?
- Dấu phân cách công thức là dấu phẩy hay chấm phẩy?
Cuối cùng, làm hoài không được thì đưa file của bạn lên đây
Vậy đi nha!
 
chào các bạn,Mình có 1 vấn đề muốn hỏi.mình có Kí tự thế này 10A-2-2.MÌNH MUỐN BỎ DẤU - ĐẦU TIÊN ĐỂ LIỀN VỚI CHỮ A,VÀ DẤU - SAU THÌ CHUYỂN THÀNH DẤU CHẤM.KÍ TỰ MÌNH MUỐN CÓ SẼ LÀ 10A2.2
 
chào các bạn,Mình có 1 vấn đề muốn hỏi.mình có Kí tự thế này 10A-2-2.MÌNH MUỐN BỎ DẤU - ĐẦU TIÊN ĐỂ LIỀN VỚI CHỮ A,VÀ DẤU - SAU THÌ CHUYỂN THÀNH DẤU CHẤM.KÍ TỰ MÌNH MUỐN CÓ SẼ LÀ 10A2.2
Ý bạn muốn thành thế này?
PHP:
=SUBSTITUTE(SUBSTITUTE(A1;"-";"";1);"-";".")
 

File đính kèm

Lần chỉnh sửa cuối:
Thì thêm 1 cái IF nữa thôi:
Mã:
=LOOKUP(10^14,1*RIGHT(IF(COUNTIF(B9,"*_*"),LEFT(TRIM(B9),LEN(TRIM(B9))-1-LEN(TRIM(RIGHT(SUBSTITUTE(TRIM(B9),"_",REPT(" ",255)),255)))),TRIM(B9)),ROW($1:$255)))

Thưa thày, nếu không có dấu hiệu có kí tự _ thì có giải pháp nào khác bài toán theo kiểu aaa123bb--->ra 123 mà không cần dùng đến hàm Isnumber không ah?
 

File đính kèm

  • Tach so.xlsx
    Tach so.xlsx
    8.7 KB · Đọc: 17
  • 123.JPG
    123.JPG
    13.1 KB · Đọc: 7
Lần chỉnh sửa cuối:
Thưa thày, nếu không có dấu hiệu có kí tự _ thì có giải pháp nào khác bài toán theo kiểu aaa123bb mà không cần dùng đến hàm Isnumber không ah?

Dữ liệu kiểu này thì dễ:
Mã:
=MID(A2,LOOKUP(10,-MID(A2,ROW($1:$255),1),ROW($1:$255))-COUNT(-MID(A2,ROW($1:$255),1))+1,COUNT(-MID(A2,ROW($1:$255),1)))
Bấm Ctrl + Shift + Enter để kết thúc
 
bạn ơi cho mình hỏi nếu có trường hợp là 10A2-2-2 thì kí tự mình muốn là 10A2.2.2.bản có thể cho mình công thức tổng quát đúng cho cả 2 trường hợp mình hỏi ko???cảm ơn bạn nhiều
 
Dữ liệu kiểu này thì dễ:
Mã:
=MID(A2,LOOKUP(10,-MID(A2,ROW($1:$255),1),ROW($1:$255))-COUNT(-MID(A2,ROW($1:$255),1))+1,COUNT(-MID(A2,ROW($1:$255),1)))
Bấm Ctrl + Shift + Enter để kết thúc

Cảm ơn thày, 2 hôm nay qua một số bài theo dõi trên diễn đàn em đã học được cách sử dụng một số hàm

--------
Em vẫn biết VBA là nhanh nhất, công thức dữ liệu lớn sẽ chậm nhưng nếu không biết phần này, đọc những công thức phức tạp thấy chóng cả mặt...quả thấy rất khó chịu, bản thân cứ thấy như thiếu thiếu cái gì đó.
 
bạn ơi cho mình hỏi nếu có trường hợp là 10A2-2-2 thì kí tự mình muốn là 10A2.2.2.bản có thể cho mình công thức tổng quát đúng cho cả 2 trường hợp mình hỏi ko???cảm ơn bạn nhiều
 
bạn ơi cho mình hỏi nếu có trường hợp là 10A2-2-2 thì kí tự mình muốn là 10A2.2.2.bản có thể cho mình công thức tổng quát đúng cho cả 2 trường hợp mình hỏi ko???cảm ơn bạn nhiều

Thì bạn sửa thành thế này

PHP:
=IF(FIND("-";A2)=4;SUBSTITUTE(SUBSTITUTE(A2;"-";"";1);"-";".");SUBSTITUTE(A2;"-";".")&".")
 

File đính kèm

mình quên mất còn 1 trường hợp nữa là 1A2-2-2 mình muốn 1A2.2.2.mong bạn giúp đỡ
 
mình quên mất còn 1 trường hợp nữa là 1A2-2-2 mình muốn 1A2.2.2.mong bạn giúp đỡ
 
bạn có thể dùng hàm cho 4 trường hơp "1a-1-1","1a1-1-1","10a-1-1","10a1-1-1" thành cái mình muốn là "1a1.1","1a1.1.1","10a1.1","10a1.1.1" được ko??cảm ơn bạn nhiều
 
Thưa thày, nếu không có dấu hiệu có kí tự _ thì có giải pháp nào khác bài toán theo kiểu aaa123bb--->ra 123 mà không cần dùng đến hàm Isnumber không ah?

Dữ liệu kiểu này thì dễ:
Mã:
=MID(A2,LOOKUP(10,-MID(A2,ROW($1:$255),1),ROW($1:$255))-COUNT(-MID(A2,ROW($1:$255),1))+1,COUNT(-MID(A2,ROW($1:$255),1)))
Bấm Ctrl + Shift + Enter để kết thúc

Em tập dùng công thức sau không phải ấn Ctrl + Shift + Enter, nhưng chắc là dài, có gì mong mọi người góp ý dùm em

PHP:
=MID(A2;MIN(FIND({1;2;3;4;5;6;7;8;9};A2&123456789));LOOKUP(10^14;1*MID(A2;ROW(INDIRECT("1:255"));1);ROW(INDIRECT("1:255")))-MIN(FIND({1;2;3;4;5;6;7;8;9};A2&123456789)-1))

--------
Tại sao Min không cần Ctrl + Shift + Enter, trong khi Count lại cần nhỉ?
 

File đính kèm

Lần chỉnh sửa cuối:
Em tập dùng công thức sau không phải ấn Ctrl + Shift + Enter, nhưng chắc là dài, có gì mong mọi người góp ý dùm em

Mã:
=MID(A2;MIN(FIND({1;2;3;4;5;6;7;8;9};A2&123456789));LOOKUP([COLOR=#ff0000]10^14[/COLOR];1*MID(A2;ROW(INDIRECT("1:255"));1);ROW(INDIRECT("1:255")))-MIN(FIND({1;2;3;4;5;6;7;8;9};A2&123456789)-1))

LOOKUP(10...) là được rồi, cần gì phải đến mức LOOKUP(10^14... ) chứ
Ngoài ra: ROW(INDIRECT("1:255")) sao không ghi thành ROW($1:$255) cho gọn
 
Có thể ngắn hơn bằng cách này:
Mã:
=MID(A2,MIN(FIND({1,2,3,4,5,6,7,8,9},A2&123456789)),SUMPRODUCT((CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))<=57)*1))
 
LOOKUP(10...) là được rồi, cần gì phải đến mức LOOKUP(10^14... ) chứ
Ngoài ra: ROW(INDIRECT("1:255")) sao không ghi thành ROW($1:$255) cho gọn

Híc, em máy móc quá nên dùng 10^14 trong khi nó chỉ có 1 số thì hiển nhiên nhỏ hơn 10 rồi, nhưng em băn khoăn chưa giải thích được cái vụ này

Tại sao Min không cần Ctrl + Shift + Enter, trong khi Count lại cần nhỉ?

Trong khi đối số của 2 hàm Min và Count đếu là mảng cả mà thày
 
Bạn thử liệt kê tất cả các ký tự, số có thể có vào 1 cột (ví dụ cột A, bắt đầu bằng A1 nhé) rồi dùng công thức sau = Code(A1), và copy cho các ô còn lại, bạn sẽ thấy số lý do của số 57 ở đây, hihi
 
Bạn thử liệt kê tất cả các ký tự, số có thể có vào 1 cột (ví dụ cột A, bắt đầu bằng A1 nhé) rồi dùng công thức sau = Code(A1), và copy cho các ô còn lại, bạn sẽ thấy số lý do của số 57 ở đây, hihi

Cảm ơn bác, em hiểu rồi tất cả các số đều có Code của nó <=59 (cao nhất là số bắt đầu bằng số 9), trong khi chữ thì Code của nó luôn cao hơn số này.
Suy ra: Chữ >số -->TRUE ?
 
Muốn tìm vị trí của chữ c cuối cùng trong cụm từ Cộng hòa xã hội chủ nghĩa Việt Nam

Xin cho em hỏi em muốn tìm vị trí của chữ c cuối cùng trong chuỗi ký tự Cộng hòa xã hôi chủ nghĩa Việt Nam thì dùng công thức nào?

Em xin cảm ơn.

----------

Ý em là em muốn tìm vị trí cuối cùng của một ký tự bất kỳ (trong một chuỗi mà ký tự đó xuất hiện nhiều lần) thì làm như thế nào ah?
 
Cảm ơn bạn,trường hợp của mình còn có kí tự b và c nữa.và qui luật vẫn như trên.bạn có thể viết hàm tổng hợp cho cả kí tự b và c nữa được ko??
 
Nếu quy luật như trên thì bạn dùng
trong cột A của mình có những chuỗi kí tự chuẩn và những kí tự chưa chuẩn.nếu dùng hàm của bạn thì những kí tự chưa chuẩn sẽ đúng.còn những kí tự chuẩn khi kéo nó sẽ báo value.mình muốn kí tự chuẩn vẫn giữ nguyên
 
Nếu quy luật như trên thì bạn dùng
trong cột A của mình có những chuỗi kí tự chuẩn và những kí tự chưa chuẩn.nếu dùng hàm của bạn thì những kí tự chưa chuẩn sẽ đúng.còn những kí tự chuẩn khi kéo nó sẽ báo value.mình muốn kí tự chuẩn vẫn giữ nguyên
 
trong cột A của mình có những chuỗi kí tự chuẩn và những kí tự chưa chuẩn.nếu dùng hàm của bạn thì những kí tự chưa chuẩn sẽ đúng.còn những kí tự chuẩn khi kéo nó sẽ báo value.mình muốn kí tự chuẩn vẫn giữ nguyên
Các kí tự ở cột A như 1a1,1a2.....vvvv se bi báo value bạn ạ.nhờ bạn giúp mình nhé
 
nhờ các bạn giúp mình nhé
Bạn dùng công thức sau
=IF(ISERROR(FIND("-",A2)),A2,REPLACE(SUBSTITUTE(A2,"-","."),FIND(".",SUBSTITUTE(A2,"-",".")),1,""))
Góp ý:
1- Bạn nên gửi File kèm theo tất cả các dạng dữ liệu cần giúp đỡ tách để mọi người trợ giúp tốt nhất, không phải đoán rồi lại sửa
2- Các bài viết nên edit khi có sự thay đổi, không nên để tràn lan ban quản trị lại mất công gộp bài
Thân!
 
cảm ơn bạn đã góp ý.mình mới tìm hiểu nên nhiều thứ còn bỡ ngỡ.cảm ơn vì đã giúp đỡ.mình thấy rất bỏ íc:)
 
Bạn dùng công thức sau

Góp ý:
1- Bạn nên gửi File kèm theo tất cả các dạng dữ liệu cần giúp đỡ tách để mọi người trợ giúp tốt nhất, không phải đoán rồi lại sửa
2- Các bài viết nên edit khi có sự thay đổi, không nên để tràn lan ban quản trị lại mất công gộp bài
Thân!
hình như hàm của bạn sẽ ko đúng trong trường hợp 1a1-1-1.nó sẽ là 1a11.1.cái mình muốn sẽ là 1a1.1.1.bạn xem lại cho mình với nhé
 
Anh Leonguyenz cho em hỏi chút VT trong công thức của anh là gì vậy? Em không hiểu đó là gì.
Mong anh giải đáp.
Em cảm ơn!
=RIGHT(LEFT(B9;FIND("_A";B9)-1);VT)*1

Đó là NAME (Define name)
Nếu bạn đang mở file có công thức ấy, hãy bấm Ctrl + F3 sẽ nhìn thấy name VT này
 
Đó là NAME (Define name)
Nếu bạn đang mở file có công thức ấy, hãy bấm Ctrl + F3 sẽ nhìn thấy name VT này
Cảm ơn anh.
Ôi em tưởng VT là cái gì đó ngắn gọn chứ. Làm như bác chỉ báo em thấy Define name quá phức tạp vậy thì công thức này cũng không ngon ăn một tẹo nào. Khó quá.
 
Sử lý chuỗi

Dear các cao thủ
Em có 1 chuỗi như sau: A1= 1+3+6+15
Yêu cầu:
A2 = 1
A3= 3
A4=6
A5= 15

Em nghĩ mãi ko ra cách làm xin các cao thủ giúp Em với ah.
 
Dear các cao thủ
Em có 1 chuỗi như sau: A1= 1+3+6+15
Yêu cầu:
A2 = 1
A3= 3
A4=6
A5= 15

Em nghĩ mãi ko ra cách làm xin các cao thủ giúp Em với ah.
Dùng Text to column với mục Other là dấu +
Sau đó Copy cả hàng dữ liệu/Nhấn Paste Special/Transpose/OK

Đơn giản như đan rổ! hiiii
 

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

Back
Top Bottom