Nhờ mọi người giúp đỡ về cách sắp xếp trong excel

  • Thread starter Thread starter uyento
  • Ngày gửi Ngày gửi
Liên hệ QC

uyento

Thành viên mới
Tham gia
8/11/09
Bài viết
14
Được thích
0
Chào mọi người, mình đang gặp một vấn đề nhờ mọi người tư vấn cách giải quyết với ạ.
mình có 1 file excel gồm nhiều số liệu và giờ mình muốn sắp xếp lại như trong hình thì làm như thế nào là hiệu quả và nhanh nhất ạ, thank mọi người!
Capture.PNG1.jpg
 
Bạn dùng thử code này xem sao.
Mã:
Sub GPE()
Dim Arr(), dArr(), cel As Range, vung As Range, i As Integer, j As Integer, k As Integer
Arr = Range("A3:A" & Range("A3").End(xlDown).Row).Resize(, 3).Value
k = 0
ReDim dArr(1 To UBound(Arr, 1) * UBound(Arr, 2))
  For i = 1 To UBound(Arr, 1)
      For j = 1 To UBound(Arr, 2)
        k = k + 1
        dArr(k) = Arr(i, j)
      Next j
  Next i
  Range("H3").Resize(k) = Application.Transpose(dArr)
End Sub
 
Bạn dùng thử code này xem sao.
Mã:
Sub GPE()
Dim Arr(), dArr(), cel As Range, vung As Range, i As Integer, j As Integer, k As Integer
Arr = Range("A3:A" & Range("A3").End(xlDown).Row).Resize(, 3).Value
k = 0
ReDim dArr(1 To UBound(Arr, 1) * UBound(Arr, 2))
  For i = 1 To UBound(Arr, 1)
      For j = 1 To UBound(Arr, 2)
        k = k + 1
        dArr(k) = Arr(i, j)
      Next j
  Next i
  Range("H3").Resize(k) = Application.Transpose(dArr)
End Sub
Cám ơn bạn, nhưng code này các giá trị là sắp xếp theo lần lượt mình muốn nó sắp xếp 3 cái xuôi đến 3 cái ngược, như 1,2,3,6,5,4.
 
Tức là:

Hàng 1: từ trái qua phải
Hàng 2: từ phải qua trái
Hàng 3: từ trái qua phải
Hàng 4: từ phải qua trái
...............................

đó bạn. Thế nào cũng có phát sinh ^^.
Đúng như thế này đây bạn, vì dữ liệu của nó nhiều tầm hơn 10k dòng và giờ mình phải sắp xếp lại theo như thế.
 
Đúng như thế này đây bạn, vì dữ liệu của nó nhiều tầm hơn 10k dòng và giờ mình phải sắp xếp lại theo như thế.
Vậy bạn sửa lại thế này vậy.
Mã:
Sub GPE()
Dim Arr(), dArr(), cel As Range, vung As Range, i As Integer, j As Integer, k As Integer
Arr = Range("A3:A" & Range("A3").End(xlDown).Row).Resize(, 3).Value
k = 0
ReDim dArr(1 To UBound(Arr, 1) * UBound(Arr, 2))
  For i = 1 To UBound(Arr, 1)
      If i Mod 2 = 1 Then
      For j = 1 To UBound(Arr, 2)
        k = k + 1
        dArr(k) = Arr(i, j)
      Next j
      Else
       For j = UBound(Arr, 2) To 1 Step -1
          k = k + 1
          dArr(k) = Arr(i, j)
      Next j
      End If
  Next i
  Range("H3").Resize(k) = Application.Transpose(dArr)
End Sub
 
Lần chỉnh sửa cuối:
được rồi bạn, cám ơn bạn rất nhiều}}}}}
 
Web KT

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

Back
Top Bottom