Đổi vị trí các số trong 1 cell (1 người xem)

  • Thread starter Thread starter meacupa
  • Ngày gửi Ngày gửi

Người dùng đang xem chủ đề này

meacupa

Thành viên chính thức
Tham gia
2/12/11
Bài viết
77
Được thích
3
Hi all.
Mình có vấn đề rất mong được các bạn giúp đỡ. Mình cần đổi vị trí các số trong 1 cell.
VD như mình có 1 cell có giá trị là 28, mình muốn đổi thành 1 cell có giá trị là 82.
Thanks.
Mọi người giúp mình với, nếu trường hợp cell có giá trị là 00; 11; 22; 33; 44; ....chẳng hạn thì dùng công thức =--RIGHT(A1)&LEFT(A1) lại không được.
Rất mong mọi người giúp đỡ
 

File đính kèm

Lần chỉnh sửa cuối:
Hi all.
Mình có vấn đề rất mong được các bạn giúp đỡ. Mình cần đổi vị trí các số trong 1 cell.
VD như mình có 1 cell có giá trị là 28, mình muốn đổi thành 1 cell có giá trị là 82.
Thanks.
Đơn giản thì thế này nè bạn,hihihi
=--RIGHT(A1)&LEFT(A1)
Với A1 chứa 28
Phức tạp chút thì thế này :
PHP:
Function ChangePos(cell As Range)
Dim myStr As String, i As Long, cH As String
myStr = cell.Value
    For i = 0 To Len(myStr) - 1
        cH = Mid(myStr, Len(myStr) - i, 1)
    ChangePos = ChangePos & cH
    Next
End Function
 
Lần chỉnh sửa cuối:
Đơn giản thì thế này nè bạn,hihihi
=--RIGHT(A1)&LEFT(A1)
Với A1 chứa 28
Phức tạp chút thì thế này :
PHP:
Function ChangePos(cell As Range)
Dim myStr As String, i As Long, cH As String
myStr = cell.Value
    For i = 0 To Len(myStr) - 1
        cH = Mid(myStr, Len(myStr) - i, 1)
    ChangePos = ChangePos & cH
    Next
End Function

Thanks bạn nhiều. Mình sẽ thử test coi
 
Đơn giản thì thế này nè bạn,hihihi
=--RIGHT(A1)&LEFT(A1)
Với A1 chứa 28
Phức tạp chút thì thế này :
PHP:
Function ChangePos(cell As Range)
Dim myStr As String, i As Long, cH As String
myStr = cell.Value
    For i = 0 To Len(myStr) - 1
        cH = Mid(myStr, Len(myStr) - i, 1)
    ChangePos = ChangePos & cH
    Next
End Function

Nếu code VBA thì ta dùng StrReverse Hoa Còi à
Mã:
Function StrRev(ByVal Text As String) As String
  StrRev = StrReverse(Text)
End Function
Không vòng lập gì cả
Lưu ý: Biến đầu vào nên khai báo là String chứ không nên là Range nhé
 
Nếu code VBA thì ta dùng StrReverse Hoa Còi à
Mã:
Function StrRev(ByVal Text As String) As String
  StrRev = StrReverse(Text)
End Function
Không vòng lập gì cả
Lưu ý: Biến đầu vào nên khai báo là String chứ không nên là Range nhé
he he, thank sư phụ em cắm đầu viêt không để ý cái myStr em lỡ gán bằng cell.value rồi thì cell phải khai báo String, hix hix, hỏng sao sư phụ nhỉ, rút kinh nghiệm vậy. Em đang tư duy thuật toán bình thường thôi, duyệt chuỗi và tách....
 
hỏng sao sư phụ nhỉ, rút kinh nghiệm vậy. Em đang tư duy thuật toán bình thường thôi, duyệt chuỗi và tách....

Vấn đề là sau khi viết xong phải dùng được! Lý nào 1 hàm chỉ tham chiếu với 1 vùng nó mới chạy?
Ví dụ =ChangePos("Anh Tuấn") thì.. nghỉ chạy à?
 
To: Homattroicoi, nếu duyệt chuỗi thì cũng chỉ duyệt đến gần 1/2 độ dài chuỗi thôi nhé!
 
Cảm ơn mọi người nhé, mình không biết về VBA nên đã dùng công thức của Excel.
 
Hix. Hôm nay mình lại gặp phải một vấn đề mới không biết xử lý thế nào nên lại phải lên đây nhờ mọi người giúp đỡ.
Mọi người giúp mình với, nếu trường hợp cell có giá trị là 00; 11; 22; 33; 44; ....chẳng hạn thì dùng công thức =--RIGHT(A1)&LEFT(A1) lại không được.
Rất mong mọi người giúp đỡ
 
Hix. Hôm nay mình lại gặp phải một vấn đề mới không biết xử lý thế nào nên lại phải lên đây nhờ mọi người giúp đỡ.
Mọi người giúp mình với, nếu trường hợp cell có giá trị là 00; 11; 22; 33; 44; ....chẳng hạn thì dùng công thức =--RIGHT(A1)&LEFT(A1) lại không được.
Rất mong mọi người giúp đỡ
Tôi đang thắc mắc các số 00, 11, 22,... nằm trên các ô khác nhau hay là cả một dãy số như vậy nằm trong 1 ô.
- Nếu nằm trên các ô khác nhau thì có đảo ngược lại thì kết quả vẫn vậy chứ có khác gì?
- Nếu cả chuỗi số đó nằm trên 1 ô thì vấn đề ở chỗ ký tự đầu và cuối chuỗi có phải là số không (hay là các ký tự ; hoặc " ").
 
Hi all.
Mình có vấn đề rất mong được các bạn giúp đỡ. Mình cần đổi vị trí các số trong 1 cell.
VD như mình có 1 cell có giá trị là 28, mình muốn đổi thành 1 cell có giá trị là 82.
Thanks.
Mọi người giúp mình với, nếu trường hợp cell có giá trị là 00; 11; 22; 33; 44; ....chẳng hạn thì dùng công thức =--RIGHT(A1)&LEFT(A1) lại không được.
Rất mong mọi người giúp đỡ
Bác này tính xác xuất lô đề à =]] :D nếu thế thì pm mình gửi cho bản hoàn thiện 40ngày luôn train 3 đêm mới xong...
Email: lamk92nb@gmail.com
 
Lần chỉnh sửa cuối:
Tôi đang thắc mắc các số 00, 11, 22,... nằm trên các ô khác nhau hay là cả một dãy số như vậy nằm trong 1 ô.
- Nếu nằm trên các ô khác nhau thì có đảo ngược lại thì kết quả vẫn vậy chứ có khác gì?
- Nếu cả chuỗi số đó nằm trên 1 ô thì vấn đề ở chỗ ký tự đầu và cuối chuỗi có phải là số không (hay là các ký tự ; hoặc " ").
Các số 00; 11... nằm trên các ô khác nhau, trên cùng một cột.
Mình có gửi file đính kèm up ở bên trên, bạn xem giúp mình nhé.
Thanks
 
Các số 00; 11... nằm trên các ô khác nhau, trên cùng một cột.
Mình có gửi file đính kèm up ở bên trên, bạn xem giúp mình nhé.
Thanks
Ý của bạn là con số 11 sẽ đổi thành con số 66 à? Vậy thì quy luật gì để biến số này thành số kia? Nó đâu trùng với quy luật đảo 2 chữ số của các hàng phía trên.
 
Ý của bạn là con số 11 sẽ đổi thành con số 66 à? Vậy thì quy luật gì để biến số này thành số kia? Nó đâu trùng với quy luật đảo 2 chữ số của các hàng phía trên.
Vì đây là trường hợp đặc biệt, nếu dùng quy luật đảo 2 chữ số như ở trên thì không giải quyết được nên mình mới đưa ra nhờ mọi người giúp, có thể tự tạo một hàm mới cho nó được không bạn?
 
Góp chút :D
=IF(LEFT(A1,1)=RIGHT(A1,1),IF(A1<50,(LEFT(A1,1)+5)&(RIGHT(A1,1)+5),(LEFT(A1,1)-5)&(RIGHT(A1,1)-5)),RIGHT(A1,1)&LEFT(A1,1))
 

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

Back
Top Bottom