Đảo ngược chuỗi trong Excel bằng hàm TEXTJOIN

Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •   

Hãy giả sử ta có một chuỗi “A B C D”, làm thế nào để đảo ngược chuỗi thành “D C B A”?

Có thể bạn đã từng đọc bài viết: Đảo ngược họ và tên trong Excel tuy nhiên cách làm đó có thể không sử dụng được trong trường hợp này. Cụ thể, để đảo ngược chuỗi ta sẽ sử dụng hàm TEXTJOIN kết hợp với một số hàm khác. Cụ thể hãy xem bên dưới:

Đảo ngược chuỗi với hàm TEXTJOIN kết hợp MID

Đọc thêm: Hàm TEXTJOINHàm MID

Ví dụ như ta có chuỗi “ABCD” tại ô A1. Ta sẽ sử dụng hàm TEXTJOIN kết hợp MID để đảo chuỗi như sau:

=TEXTJOIN(“”,TRUE,MID(A1,{4,3,2,1},1))

Kết quả ta sẽ thu được là DCBA

Giải thích: 

Hàm MID sử dụng dạng mảng sẽ lấy 1 ký tự từ ô A1 và trả về mảng theo thứ tự đảo đầu cuối:

Để hiểu rõ hơn, bạn có thể xem ví dụ về hàm CHOOSE tương tự trong bài viết sau: Hàm CHOOSE đảo mảng kết hợp VLOOKUP, tra cứu ngược từ phải sang.

Sau khi đã sử dụng hàm MID, ta đặt vào trong TEXTJOIN và tiến hành nối chuỗi lại bình thường.

Sử dụng mảng động đảo ngược chuỗi tự động thay đổi theo số lượng ký tự

Trong ví dụ trên, số trong mảng chính là số ký tự bị giới hạn với chuỗi, có nghĩa là nếu chuỗi lớn hơn 4 ký tự, ta sẽ phải thêm số trong mảng. Vậy làm thế nào để mảng có thể tự động co bóp vừa kích cỡ?

Để đếm số lượng ký tự, hãy nhớ tới hàm LEN: Hàm LEN đếm số lượng ký tự trong ô

Tư duy của ta sẽ theo hướng kết hợp đưa hàm LEN vào trong mảng và trả về thứ tự từ LEN(A1) về 1. Để làm điều này, ta có thể chọn 1 trong 2 phương án sau: Sử dụng hàm SEQUENCE (chỉ có trong phiên bản Office 365) hoặc kết hợp cùng ROW và INDIRECT. Ta sẽ đến với từng phương án ngay sau đây.

Sử dụng hàm SEQUENCE tạo danh sách số liên tiếp trong mảng theo thứ tự giảm dần

Hàm SEQUENCE: Sử dụng hàm SEQUENCE trong Excel

Với hàm SEQUENCE ta có thể tạo một mảng tự thay đổi kích thước theo số lượng kí tự được nhập vào ô. Kết hợp với hàm LEN và bước đếm -1, ta có công thức sau:

=SEQUENCE(LEN(A1),,LEN(A1),-1)

hoặc

=SEQUENCE(,LEN(A1),LEN(A1),-1)

Đặt hàm SEQUENCE vào trong hàm MID của công thức trên ta có:

=TEXTJOIN(“”,TRUE,MID(A1,SEQUENCE(,LEN(A1),LEN(A1),-1),1))

ROW, INDIRECT và ứng dụng đảo ngược chuỗi trong Excel

Trước khi đi vào phần tiếp theo, bạn hãy xem cách tạo ra một mảng số bằng cách kết hợp ROW và INDIRECT: Kết hợp ROW và INDIRECT tạo mảng số.

Trong trường hợp này, ta có thể tạo ra 1 mảng gồm các số từ 1 đến LEN(A1) như sau:

=ROW(INDIRECT(“1:”&LEN(A1)))

Mảng này sẽ được sắp xếp theo thứ tự tăng tiến dần. Để đảo ngược, ta sẽ sử dụng một phép trừ trong mảng như sau:

=LEN(A1) – ROW(INDIRECT(“1:”&LEN(A1))) +1 

Đưa vào trong hàm MID, TEXTJOIN và kết quả cuối cùng:

=TEXTJOIN(“”,TRUE,MID(A1,LEN(A1) – ROW(INDIRECT(“1:”&LEN(A1))) +1,1))

Ngoài ra ta cũng có thể đảo chuỗi bằng hàm CONCAT như sau:

=CONCAT(MID(A1,1+LEN(A1)-ROW(INDIRECT(LEN(A1)&”:1″)),1))

 


Xem thêm những bài viết tương tự sau:

Hàm TEXTJOIN ghép chuỗi thỏa mãn điều kiện

Hướng dẫn sử dụng hàm INDIRECT trong Excel

 


Chia sẻ bài viết này:
  •  
  •  
  •  
  •  
  •  
  •  
  •   
  •