Thắc mắc hàm lấy ký tự (1 người xem)

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

woonopro

Thành viên mới
Tham gia
23/12/15
Bài viết
1
Được thích
0
Chào mọi người, mình có thắc mắc nếu muốn lấy một số ký tự ở giữa chuỗi, vị trí ký tự cần lấy là đếm từ phải qua ( ngược với mid) thì làm sao ạ.
Giả sử có 3 chuỗi: abc45bc ; abcd45bc; abcde45bc
Lấy 2 ký tự (45) từ phải qua.
Trường hợp này có thể dùm if để đặt điều kiện độ dài chuổi rồi dùng mid. Nhưng không biết còn hàm nào có thể dùng không. cảm ơn mọi người.
 
Chào mọi người, mình có thắc mắc nếu muốn lấy một số ký tự ở giữa chuỗi, vị trí ký tự cần lấy là đếm từ phải qua ( ngược với mid) thì làm sao ạ.
Giả sử có 3 chuỗi: abc45bc ; abcd45bc; abcde45bc
Lấy 2 ký tự (45) từ phải qua.
Trường hợp này có thể dùm if để đặt điều kiện độ dài chuổi rồi dùng mid. Nhưng không biết còn hàm nào có thể dùng không. cảm ơn mọi người.

Tách ra 4 ký tự cuối, rồi lấy 2 ký tự bên trái của chuỗi vừa tách.
 
Công thức này trích số trong chuỗi ở vị trí bất kỳ, độ dài số bất kỳ:

Mã:
=MAX(IFERROR(--MID(A1,MIN(IFERROR(SEARCH({0,1,2,3,4,5,6,7,8,9},A1),"")),ROW(INDIRECT("1:"&LEN(A1)))),""))

Kết thúc bằng Ctrl-shift-enter.
 
Chào mọi người, mình có thắc mắc nếu muốn lấy một số ký tự ở giữa chuỗi, vị trí ký tự cần lấy là đếm từ phải qua ( ngược với mid) thì làm sao ạ.
Giả sử có 3 chuỗi: abc45bc ; abcd45bc; abcde45bc
Lấy 2 ký tự (45) từ phải qua.
Trường hợp này có thể dùm if để đặt điều kiện độ dài chuổi rồi dùng mid. Nhưng không biết còn hàm nào có thể dùng không. cảm ơn mọi người.

Lý do tại sao bạn cần đặt điều kiện độ dài chuỗi?
 
Tách ra 4 ký tự cuối, rồi lấy 2 ký tự bên trái của chuỗi vừa tách.

Tuỳ theo chủ thớt muốn xử thế nào khi chuỗi ngắn hơn 4 ký tự.
Nếu chuỗi ngắn hơn 4 ký tự thì công thức trên vẫn lấy 1 hoặc 2 ký tự đầu.
Nếu muốn lấy đúng vị trí như MID thì phải cộng 4 dấu cách vào đầu chuỗi trước khi tính.
 
Chào mọi người, mình có thắc mắc nếu muốn lấy một số ký tự ở giữa chuỗi, vị trí ký tự cần lấy là đếm từ phải qua ( ngược với mid) thì làm sao ạ.
Giả sử có 3 chuỗi: abc45bc ; abcd45bc; abcde45bc
Lấy 2 ký tự (45) từ phải qua.
Trường hợp này có thể dùm if để đặt điều kiện độ dài chuổi rồi dùng mid. Nhưng không biết còn hàm nào có thể dùng không. cảm ơn mọi người.
Loại 2 ký tự cuối (kết hợp hàm LEFTvà LEN) sau đó dùng hàm RIGHT để lấy số ký tự cần lấy:
Mã:
=RIGHT(LEFT(A1,LEN(A1)-2),2)
 
Loại 2 ký tự cuối (kết hợp hàm LEFTvà LEN) sau đó dùng hàm RIGHT để lấy số ký tự cần lấy:
Mã:
=RIGHT(LEFT(A1,LEN(A1)-2),2)

Công thức của bạn bị #Value! nếu chuỗi ngắn hơn 2 ký tự. Tôi đoán có lẽ đó là lý do chur thớt cần dùng hàm IF để test LEN.

Dùng LEFT(RIGHT(...)) như bài #2 gọn hơn. Chỉ cần cho biết trường hợp chuỗi ngắn hơn 4 ký tự thì sao?
vd gặp "abc" thì lấy "a", hay "ab" ?
LEFT(RIGHT("abc",4),2) = "ab"
LEFT(RIGHT(REPT(" ",4)&"abc",4),2) = " a" --- nếu muốn dọn rác thì thêm hàm trim
 
Tuỳ theo chủ thớt muốn xử thế nào khi chuỗi ngắn hơn 4 ký tự.
Nếu chuỗi ngắn hơn 4 ký tự thì công thức trên vẫn lấy 1 hoặc 2 ký tự đầu.
Nếu muốn lấy đúng vị trí như MID thì phải cộng 4 dấu cách vào đầu chuỗi trước khi tính.

Tác giả chỉ ví dụ 3 trường hợp như vầy:
Giả sử có 3 chuỗi: abc45bc ; abcd45bc; abcde45bc
Lấy 2 ký tự (45) từ phải qua.
Nhiều lúc hỏi 1 đàng, sau đó "giả sử" thêm, ai mà biết.
Trả lời theo ví dụ cụ thể thôi mà, dữ liệu kiểu khác thì "gáng chịu".
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom