Hiển thị các bài đăng có nhãn excel. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn excel. Hiển thị tất cả bài đăng

25/04/2016

Cắt chuỗi ký tự trong excel

Trong excel có các hàm để cắt chuỗi là LEFT, RIGHT, MID. Cách sử dụng như sau:
LEFT(text; num_chars): cắt num_chars ký tự bên trái chuỗi text. Ví dụ: LEFT("abcde";3) thì kết quả là abc
RIGHT(text; num_chars): cắt num_chars ký tự bên phải chuỗi text. Ví dụ: RIGHT("abcde";3) thì kết quả là cde
MID(text; start_num; num_chars): cắt num_chars ký tự bắt đầu từ ký tự thứ start_num trong chuỗi text. Ví dụ: MID("abcde";2;3) thì kết quả là bcd

Giả sử ta có chuỗi ký tự sau


Muốn lấy số 123 trong đoạn trên ta làm cách nào?
Tôi viết thêm hàm sau để có thể cắt chuỗi cho chủ động hơn

Sử dụng như sau: catchuoi(str, sttkytubatdaucat, catdenkhigapkytunao), tham số:
  • str: chuỗi ký tự gốc
  • sttkytubatdaucat: bắt đầu cắt từ vị trí này
  • catdenkhigapkytunao: cắt chuỗi cho đến khi gặp ký tự này. Nếu không tìm thấy ký tự này trong chuỗi thì kết quả sẽ trả về N/A, nếu đặt là "" thì sẽ cắt đến cuối chuỗi.

Áp dụng cho trường hợp trên ta phân tích như sau: số 123 cần lấy đứng sau ký tự ":" thứ 2 trong chuỗi, ta sẽ cắt từ vị trí sau dấu ":" thứ 2 này đến khi gặp dấu cách sau 123. Ta có công thức như sau


Hàm timsttkytu bạn có thể xem ở bài trước tôi có giới thiệu http://lehoangdieu.blogspot.com/2016/04/tim-vi-tri-cua-ky-tu-trong-excel.html.
Vì timsttkytu trả về số thứ tự của dấu ":" nên ta phải cộng 2 vào.

14/04/2016

Tìm vị trí của ký tự trong excel

Trong quá trình làm việc mình có hỗ trợ mọi người sử dụng excel nhưng một số yêu cầu mình không tìm được hàm có sẵn nào trong excel đáp ứng được yêu cầu. Những lúc này mình phải viết thêm 1 số hàm, mình viết lại để chia sẻ cho mọi người và cũng là lưu lại để về sau mình sử dụng.
Trong excel khi muốn tìm vị trí của ký tự/cụm từ trong 1 chuỗi có sẵn ta dùng hàm FIND(ký tự muốn tìm; chuỗi gốc; [tìm từ vị trí nào]). Hàm FIND mặc định trả về vị trí đầu tiên của ký tự/cụm từ được tìm thấy

Sử dụng hàm FIND trong excel
Sử dụng hàm FIND trong excel
Trong ví dụ trên ta tìm được vị trí của ký tự ":" đầu tiên là ở vị trí thứ 10 trong chuỗi.
Bây giờ ta muốn tìm ký tự ":" thứ 3 trong chuỗi đó (ký tự đứng sau từ Ngày) thì hàm FIND sẽ khó sử dụng. Mình đã làm hàm sau để giải quyết vấn đề đó :

Cách dùng như sau: timsttkytu(str, kyTuMuonTim, STTMuonLay)
Sử dụng hàm TIMSTTKYTU
Sử dụng hàm TIMSTTKYTU
Các tham số:
  • str: chuỗi gốc
  • kyTuMuonTim: ký tự/cụm từ muốn tìm
  • STTMuonLay: số thứ tự của ký tự/cụm từ muốn tìm
Kết quả trả về của hàm:
  • Nếu tìm thấy sẽ trả về vị trí (STT) của ký tự/cụm từ cần tìm
  • Nếu không tìm thấy trả về 0
Trong ví dụ trên ký tự ":" thứ 3 trong chuỗi nằm ở vị trí thứ 24