Bạn đang thắc mắc không biết làm thế nào để có thể đổi chuỗi “A B C D” trở thành chuỗi “D C B A” một cách nhanh chóng mà không cần phải xóa đi viết lại. Trong bài viết này, chúng ta sẽ cùng khám phá cách đảo chiều dữ liệu trong Excel bằng hàm TEXTJOIN
ĐẢO NGƯỢC CHUỖI VỚI HÀM TEXTJOIN KẾT HỢP MID
Ví dụ như sau, bạn có một chuỗi “ABCD” tại ô A1. Để thực hiện đảo chuỗi, bạn dùng hàm TEXTJOIN kết hợp cùng với hàm MID như bên dưới:
Kết quả thu được lúc này sẽ là DCBA Giải thích: Hàm MID dùng dạng mảng sẽ lấy 1 ký tự từ ô A1 và sau đó trả về mảng theo thứ tự đảo đầu cuối: Sau khi đã dùng hàm MID, bạn đặt vào trong TEXTJOIN rồi 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Ự
Ở ví dụ trên, số trong mảng chính là số ký tự bị giới hạn với chuỗi, tức là nếu chuỗi lớn hơn 4 ký tự, bạn sẽ phải thêm số trong mảng.
Vậy thì làm thế nào để mảng có thể tự động co bóp cho vừa kích cỡ?
Để có thể đế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 chúng ta lúc này sẽ theo hướng theo việc kết hợp đưa hàm LEN vào trong mảng và thực hiện trả về thứ tự từ LEN(A1) về 1.
Để có thể làm được điều này, bạn có thể chọn 1 trong 2 phương án sau đây: Sử dụng hàm SEQUENCE (chỉ có trong phiên bản Office 365) hoặc là kết hợp cùng ROW và INDIRECT.
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
Với hàm SEQUENCE bạn có thể tạo được một mảng tự thay đổi kích thước theo số lượng kí tự được nhập vào ô. Sử dụng kết hợp với hàm LEN và bước đếm -1, chúng ta sẽ có công thức như sau:
=SEQUENCE(LEN(A1),,LEN(A1),-1)
hoặc là:
=SEQUENCE(,LEN(A1),LEN(A1),-1)
Đặt hàm SEQUENCE vào trong hàm MID ở công thức trên ta sẽ 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
Trong trường hợp này, bạn có thể tạo ra 1 mảng gồm những số từ 1 đến LEN(A1) như bên dưới:
=ROW(INDIRECT(“1:”&LEN(A1)))
Mảng này sẽ được sắp xếp lại theo thứ tự tăng tiến dần. Để thực hiện đảo ngược, bạn sẽ dùng một phép trừ trong mảng như sau:
=LEN(A1) – ROW(INDIRECT(“1:”&LEN(A1))) +1
Thực hiện đưa vào trong hàm MID, TEXTJOIN và kết quả cuối cùng cho ra sẽ là:
=TEXTJOIN(“”,TRUE,MID(A1,LEN(A1) – ROW(INDIRECT(“1:”&LEN(A1))) +1,1))
Ngoài ra bạn cũng có thể đảo chuỗi bằng các sử dụng hàm CONCAT như sau:
=CONCAT(MID(A1,1+LEN(A1)-ROW(INDIRECT(LEN(A1)&”:1″)),1))