giúp e về sắp xếp dữ liệu

Liên hệ QC

builong_31

Thành viên mới
Tham gia
25/6/14
Bài viết
3
Được thích
0
ví dụ e có bảng số liệu như sau
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
bây giờ e muốn sắp xếp lại theo 1 hàng ngang theo đúng thứ tự từ 1 tới 15 thì làm cách nào ạ

Mong trợ giúp !!
 
Lần chỉnh sửa cuối:
ví dụ e có bảng số liệu như sau
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
bây giờ e muốn sắp xếp lại theo 1 hàng ngang theo đúng thứ tự từ 1 tới 15 thì làm cách nào ạ

Mong trợ giúp !!
Mở File và nhấn nút "GHÉP" và xem kết quả nhé!
P/S: Nhớ Enable Macros trước khi mở File nhé!(Xem hướng dẫn Enable Macros bên dưới chữ kĩ của tôi)

 

File đính kèm

ví dụ e có bảng số liệu như sau
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
bây giờ e muốn sắp xếp lại theo 1 hàng ngang theo đúng thứ tự từ 1 tới 15 thì làm cách nào ạ

Mong trợ giúp !!

Thêm cách nữa cho bạn, dùng hàm Small kết hợp Columns
 

File đính kèm

Làm được chưa vậy bạn????
e làm được rồi thanks các bác đã giúp

Tiện hỏi bác thêm

VD có bảng số liệu
1 2 4 3 6 7
2 6 8 3 9 1
2 3 4 8 5 1

bây giờ e muốn sắp xếp sao cho số liệu thành 1 hàng như thế này
1 2 4 3 6 7 2 6 8 3 9 1 2 3 4 8 5 1
thì như thế nào ạ
--=0
 
e làm được rồi thanks các bác đã giúp

Tiện hỏi bác thêm

VD có bảng số liệu
1 2 4 3 6 7
2 6 8 3 9 1
2 3 4 8 5 1

bây giờ e muốn sắp xếp sao cho số liệu thành 1 hàng như thế này
1 2 4 3 6 7 2 6 8 3 9 1 2 3 4 8 5 1
thì như thế nào ạ
--=0
Bạn copy đoạn code này thay thế đoạn code cũ thử xem!
Mã:
Public Sub NoiCot()
Dim i As Long, j As Long, k As Long, arr(), kq()
arr = Sheet1.Range("A1:F" & Sheet1.Range("F65500").End(xlUp).Row)
ReDim kq(1 To UBound(arr) * UBound(arr, 2))
Sheet1.Range("G1").Resize(, 100).ClearContents
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
k = k + 1
kq(k) = arr(i, j)
Next j
Next i
Sheet1.Range("G1").Resize(, UBound(arr) * UBound(arr, 2)) = kq
End Sub
 
Lần chỉnh sửa cuối:
Bạn copy đoạn code này thay thế đoạn code cũ thử xem!
Mã:
Public Sub NoiCot()
Dim i As Long, j As Long, k As Long, arr(), kq()
arr = Sheet1.Range("A1:F" & Sheet1.Range("F65500").End(xlUp).Row)
ReDim kq(1 To UBound(arr) * UBound(arr, 2))
Sheet1.Range("G1").Resize(, 100).ClearContents
For i = 1 To UBound(arr)
For j = 1 To UBound(arr, 2)
k = k + 1
kq(k) = arr(i, j)
Next j
Next i
Sheet1.Range("G1").Resize(, UBound(arr) * UBound(arr, 2)) = kq
End Sub
Hay là thử cách này coi sao, có vẻ gọn hơn chút
PHP:
Sub noi()
Dim item
With CreateObject("System.Collections.Arraylist")
    For Each item In [A1:E3]
        .Add item
    Next
    [G1].Resize(, .Count) = .toarray
End With
End Sub
Nếu có mấy ô trống ở giữa thì thêm xíu
PHP:
Sub noi()
Dim item
With CreateObject("System.Collections.Arraylist")
    For Each item In [A1:E3]
        If item <> "" Then .Add item
    Next
    [G1].Resize(, .Count) = .toarray
End With
End Sub
 
Lần chỉnh sửa cuối:
Hay là thử cách này coi sao, có vẻ gọn hơn chút
PHP:
Sub noi()
Dim item
With CreateObject("System.Collections.Arraylist")
    For Each item In [A1:E3]
        .Add item
    Next
    [G1].Resize(, .Count) = .toarray
End With
End Sub
Nếu có mấy ô trống ở giữa thì thêm xíu
PHP:
Sub noi()
Dim item
With CreateObject("System.Collections.Arraylist")
    For Each item In [A1:E3]
        If item <> "" Then .Add item
    Next
    [G1].Resize(, .Count) = .toarray
End With
End Sub
Code của anh Hải rất ngắn, em cũng mới tìm hiểu qua về Dic nhưng thấy trong bài này cách anh sử dụng có vẻ rất mới, mong anh chia sẻ cho em 1 chút kiến thức! Cảm ơn anh!
 
Web KT

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

Back
Top Bottom