Microsoft Excel (Bài 66): Hàm RIGHT và các ứng dụng tuyệt vời của hàm RIGHT trong phân xuất ký tự

Hàm RIGHT trong Excel giúp phân xuất số kí tự xác định trong chuỗi văn bản

= Right(Text,[num_chars])

Cụ thể:
  • Text (bắt buộc) – chuỗi văn nguyên bản mà bạn muốn phân xuất kí tự.
  • Num-chars (không bắt buộc) – số kí tự muốn phân xuất, tính từ kí tự bên phải

+ Nếu bỏ sót num-chars, 1 kí tự cuối cùng của chuỗi sẽ được trả lại (mặc định)

+ Nếu num-chars nhiều hơn tổng kí tự của chuỗi, tất cả kí tự sẽ được trả lại

+ Nếu num-chars là số âm, công thức hàm RIGHT sẽ trả về #VALUE! Error (giá trị lỗi).

Ví dụ, thể lấy ra 3 kí tự cuối của chuỗi văn bản ô A2, dùng công thức:

=RIGHT(A2, 3)

Kết quả trả về như sau:

Lưu ý quan trọng: hàm RIGHT trong EXCEL luôn trả về một chuỗi văn bản, ngay cả khi giá trị gốc là một chữ số. Để công thức hàm RIGHT cho ra giá trị là số nên kết hợp công thức với hàm VALUE.

CÁCH SỬ DỤNG HÀM RIGHT TRONG EXCEL, VÍ DỤ MẪU

Trong thực tế, hàm RIGHT trong Excel hiếm khi được sử dụng độc lập, chúng sẽ được sử dụng với một hàm khác để tạo những công thức phức tạp hơn trong Excel.

CÁCH PHÂN XUẤT CHUỖI KÝ TỰ CON THEO SAU MỘT KÝ TỰ XÁC ĐỊNH

Trong trường hợp bạn muốn phân xuất một chuỗi kí tự con theo sau một kí tự nhất định, sử dụng cả hàm SEARCH hay FIND để xác định vị trí của kí tự đó, trừ vị trí kí tự được chọn trong tổng chuỗi kí tự được trả về ta dùng hàm LEN, kéo số kí tự muốn chọn từ phía bên phải chuỗi văn bản nguồn.

RIGHT(chuỗi văn bản, LEN(chuỗi văn bản) – SEARCH(kí tự, chuỗi văn bản))

Ô A2 chứa kí tự đầu và cuối được phân tách nhau bởi khoảng trống, kéo kí tự cuối sang một cột khác. Sử dụng những công thức trên, sau đó ghi A2 vào khoảng trống của chuỗi, và điền kí tự vào khoảng trống “”.

=RIGHT(A2,LEN(A2)-SEARCH(” “,A2))

Kết quả trả về:

Trong trường hợp tương tự, có thể phân xuất được chuỗi kí tự con theo sau bất cứ kí tự nào khác như: (,) (;) (-)… Ví dụ, để phân xuất một chuỗi kí tự con theo sau dấu (-), dùng công thức:

=RIGHT(A2,LEN(A2)-SEARCH(“-“,A2)

CÁCH PHÂN XUẤT CHUỖI KÝ TỰ CON XUẤT HIỆN SAU DẤU PHÂN CÁCH CUỐI CÙNG

Khi xử lí những chuỗi phức tạp chứa nhiều dấu phân cách, bạn thường phải khôi phục lại chuỗi văn bản đến bên phải của dấu phân cách cuối cùng. Để đơn giản hơn, theo dõi bảng chứa dữ liệu nguồn và kết quả trả về sau:

Từ bảng trên có thể thấy cột A chứa một chuỗi lỗi (ERROR). Nhiệm vụ của bạn là kéo phần mô tả lỗi theo sau dấu (:) của từng chuỗi. Phức tạp hơn nữa đó là chuỗi văn bản gốc có thể chứa số lượng dấu phân cách khác nhau như ô A3 chứa 3 dấu (:) trong khi ô A5 chỉ có 1.

Để giải quyết, cần xác định vị trí của dấu phân cách cuối cùng trong chuỗi nguồn (trong ví dụ là dấu (:) cuối cùng). Để thực hiện cần có những hàm chức năng khác:

  1. Lấy số lượng dấu phân cách trong chuỗi nguồn:
  • Tính tổng độ dài của chuỗi văn bản, dùng hàm LEN: LEN(A2)
  • Tính chiều dài của chuỗi khi không có dâu phân cách bằng hàm SUBTITUTE để bỏ toàn bộ các dấu phân cách: LEN(SUBSITUTE(A2,“:”,“”)
  • Trừ chiều dài chuỗi văn bản gốc không chứa dấu ngăn cách từ tổng chuỗi văn bản nguồn: LEN(A2)-LEN(SUBSTITUTE(A2,”:”,””)

Để đảm bảo công thức đúng, có thể chia công thức ra các ô riêng, sẽ có 2 kết quả trả về, ô A2 chứa số lượng dấu (:).

  1. Thay thế dấu phân cách cuối cùng với từng kí tự riêng biệt. Để phân xuất văn bản đứng sau dấu phân cách trong chuỗi, cần “đánh dấu” dấu phân cách cuối cùng. Để đánh dấu, cần thay thế dấu (:) cuối cùng với kí tự không xuất hiện trong chuỗi nguồn như (#)

Nếu đã quen sử dụng hàm SUBSTITUTE trong Excel, có thể bạn nhớ lựa chọn thứ 4 (instance_num) chỉ cho phép thay thế một vị trí xác định của kí tự nhát định. Khi tính xong số lượng dấu phân cách của chuỗi, bổ sung vào lựa chọn thứ 4 bằng hàm SUBSTITUTE sau:

=SUBSTITUTE(A2,”:”,”#”,LEN(A2)LEN(SUBSTITUTE(A2,”:”,””)))

Nếu đặt công thức này trong một ô riêng biệt, kết quả sẽ quay lại chuỗi: ERROR:432#Connection timed out

  1. Lấy vị trí của dấu phân cách cuối cùng trong chuỗi. Dựa vào kí tự được thay thế với dấu phân cách cuối cùng, sử dụng cả hàm SEARCH hoặc FIND để xác địn vị trí của kí tự trong chuôi. Thay thế dấu (:) cuối cùng với dấu (#), dùng công thức: =SEARCH(“#”,SUBSTITUTE(A2,”:”,”#”,LEN(A2)LEN(SUBSTITUTE(A2,”:”,””))))

Trong ví dụ này, công thức trả về 10, là vị trs của dấu (#) trong chuỗi thay thế.

  1. Trả về chuỗi kí tự con về bên phải dấu phân cách cuối cùng. Vị trí của dấu phân cách cuối cùng trong chuỗi đã xác định, trừ số đó từ tổng độ dài của chuỗi, sau đó dùng hàm RIGHT để trả về những kí tự cần từ phần kết của chuỗi nguồn: =RIGHT(A2,LEN(A2)SEARCH(“$”,SUBSTITUTE(A2,”:”,”$”,LEN(A2)-LEN(SUBSTITUTE(A2,”:”,””)))))

Kết quả trả về:

Đối với bộ dữ liệu lớn, những ô khác nhau có thể chứa nhiều dấu phân cách khác nhau, có thể dùng hàm IFERROR để khoanh vùng công thức:

=IFERROR(RIGHT(A2,LEN(A2)SEARCH(“$”,SUBSTITUTE(A2,”:”,”$”,LEN(A2)LEN(SUBSTITUTE(A2,”:”,””))))), A2)

Trong trường hợp chuỗi xác định không chứa dấu phân cách xác định, chuỗi nguồn sẽ được trả lại, như hàng 6 trong hình dưới đây:

CÁCH DỜI N KÝ TỰ ĐẦU TIÊN TRONG MỘT CHUỖI

Ngoài chức năng phân xuất chuỗi kí tự con từ cuối chuỗi, hàm RIGHT trong Excl còn được sử dụng để dời số lượng kí tự nhất định từ phía đầu chuỗi, sử dụng công thức sau:

RIGHT(string, LEN(string)-số_kí_tự_cần_dời

Ví dụ dưới đây thực hiện dời 6 kí tự đầu tiên (5 chữ cái và 1 dấu (:)) từ chuỗi A2, công thức mẫu:

=RIGHT(A2, LEN(A2)-6)

HÀM RIGHT TRONG EXCEL CÓ THỂ TRẢ VỀ SỐ KHÔNG?

Như đã đề cập, hàm RIGHT trong Excel luôn luôn trả về chuỗi văn bản ngay cả hi giá trị nguồn là một con số. Nhưng nếu muốn sử lý dữ liệu số và trả kết quả là số thì sao? Một giải pháp đơn giản là sử dụng tổ hợp hàm RIGHT trong hàm VALUE để chuyển chuỗi nguồn từ đơn vị số sang đơn vị số.

Ví dụ, để kéo 5 kí tự cuối từ chuỗi A2 và chuyển kí tự phân tách thành số, dùng công thức:

=VALUE(RIGHT(A2, 5))

Kết quả trả về như bảng dưới đây:

VÌ SAO HÀM RIGHT KHÔNG THỰC HIỆN ĐƯỢC VỚI NGÀY THÁNG?

Vì hàm RIGHT chỉ sử dụng được với chuỗi văn bản trong khi ngày tháng được thể hiện bằng những con số ẩn trong hệ thống Excel, hàm RIGHT không thể lấy lại một phần của ngày như ngày, tháng, hay năm. Nếu cố thực hiện, kết quả trả về là một vài chữ số cuối cùng của một ngày.

Giả sử, ô A1 chứa ngày 18/01/2017. Nếu cố phân xuất năm với hàm RIGHT(A1,4), kết quả trả về là 2753 – 4 con số thể hiện 18/1/2017 trong hệ thống Excel.

Vậy làm thể nào để lấy lại một phần nhất định của ngày? Sử dụng hàm sau:

  • Hàm DAY để phân xuất ngày: =DAY(A1)
  • Hàm MONTH để phân xuất tháng: =MONTH(A1)
  • Hàm YEAR để phân xuất năm: =YEAR(A1)

Kết quả ra như bảng dưới đây:

Nếu ngày tháng được thể hiện bằng chuỗi văn bản, thường xảy ra trong trường hợp xuất dữ liệu từ nguồn bên ngoài, có thể sử dụng hàm RIGHT để kéo một vài kí tự là một phần xác định của ngày ở cuối cùng của dãy.

Hàm Right trong Excel không hiệu quả, nguyên nhân và các khắc phục.

Nếu công thức hàm RIGHT không hiệu quả trong trang tính, hầu hết là do những nguyên nhân sau:

  1. Có một hoặc nhiều hơn các khoảng trống trong dữ liệu nguồn. Để nhanh chóng dời những khoảng trống trong ô, sử dụng thêm hàm TRIM hay CELL CLEANER.
  2. Số lượng kí tự num-chars nhỏ hơn 0. Nếu số lượng kí tự num-chars được tính bằng nhwungx công thức khác hay một tổ hợp những hàm khác nhau và hàm RIGHT trả về giá trị lỗi #VALUE!, hãy kiểm tra lại tổ hợp hàm.
  3. Giá trị nguồn là ngày tháng.

Để có thể ứng dụng tốt Excel vào trong công việc, chúng ta không chỉ nắm vững được các hàm mà còn phải sử dụng tốt cả các công cụ của Excel. Những hàm nâng cao giúp áp dụng tốt vào công việc như SUMIFS, COUNTIFS, SUMPRODUCT, INDEX + MATCH … Những công cụ thường sử dụng là Data validation, Conditional formatting, Pivot table …