Nhờ trợ giúp về việc dịch vòng các ký tự m vị trí trong một chuỗi có độ dài n

Liên hệ QC

testht06

Thành viên mới
Tham gia
12/2/12
Bài viết
15
Được thích
0
- Chào các bạn, mình đang gặp vấn đề này, mong các bạn trợ giúp:

Bài toán của mình trong excel, cần dịch vòng các ký tự đi m vị trí. Ví dụ mình có chuỗi (dạng các số)

+ a=01234567 (độ dài n=8), cần dịch vòng trái các ký tự trong chuỗi này đi m=5 vị trí.
Như vậy kết quả là:
+ b=56701234

Công thức cơ bản để tính kết quả chuỗi b từ a sẽ là b=a[(m+i)mod n] (Trong đó m là số vị trí dịch, n là độ dài chuỗi, 1<= i <=n) là ký tự thứ i của chuỗi kết quả b)

Mình không biết là trong excel có công thức nào có thể thực hiện dịch vòng như vậy không?
Bạn nào biết hoặc có cách giải quyết, nhờ chỉ giúp mình nhé. Cảm ơn các bạn nhiều
 
Có lẽ công thức bạn cần là: =MID(A1,m+1,LEN(A1))&LEFT(A1,m) với A1 là ô chứa dữ liệu gốc. Thay m bởi số cụ thể.
 
C1 =RIGHT(A1;LEN(A1)-B1)&LEFT(A1;B1)

với A1 chứa chuỗi gốc, B1 chứa số vị trí cần dịch. Khỏi lặp, mặc dù lặp là suy luận thông thường của mọi người. Tôi đã thử suy luận khác người và thấy vẫn đúng.
 
- Cả 2 công thức trên đều chạy đúng rồi, đúng là excel kỳ diệu bởi vì có những người dùng kỳ diệu.
- Mình mày mò mãi cuối cùng chỉ biết dùng thử vba, và cắt từng ký tự theo từng vị trí (m+i) mod n, làm mãi chạy chưa đúng, cuối cùng phát hiện ra là vì có chỉ số bằng 0 nên bị lỗi! (nên công thức phải là ((m+i -1) mod n) +1! Và khi chạy cũng cho được kết quả như dùng công thức của các bạn

- Dùng một trong số các công thức trên của các bạn đơn giản đi rất nhiều. Chân thành cảm ơn 2 bạn
 
Web KT

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

Back
Top Bottom