buanhanphonui
Thành viên mới

- Tham gia
- 25/10/11
- Bài viết
- 20
- Được thích
- 2
Lấy theo trình tự nào, phải sang trái hay trên xuống dưới... bạn nhỉ?Mình có 1 sheet gồm nhiều ô có giá trị (các ô này nằm lộn xộn). Anh/chị/em nào có thể chỉ giúp mình cách để đưa các giá trị này về 1 cột hoặc 1 giòng được ạ.
Dữ liệu dạng in hệt nhau. Mèo trắng hay mèo đen đứng trước thì cũng chả sao. Miễn là bắt chuột thôi.Lấy theo trình tự nào, phải sang trái hay trên xuống dưới... bạn nhỉ?
Nhưng thớt bỏ bom xong lại chuồn mất rồi anh ạ, chắc để thớt chờ người khác giúp thôi, em cũng tạm biệt thớt này thôi anh.Dữ liệu dạng in hệt nhau. Mèo trắng hay mèo đen đứng trước thì cũng chả sao. Miễn là bắt chuột thôi.
Mình muốn xếp theo cột hoặc hàng (trình tự dữ liệu lấy cột 1 từ trên xuống dưới rồi sang cột 2 cũng từ trên xuống dưới, tương tự với các cột tiếp theo) bạn ạLấy theo trình tự nào, phải sang trái hay trên xuống dưới... bạn nhỉ?
Mình vừa chạy ra ngoài có chút việt, bạn thông cảmNhưng thớt bỏ bom xong lại chuồn mất rồi anh ạ, chắc để thớt chờ người khác giúp thôi, em cũng tạm biệt thớt này thôi anh.
Hiểu như a cũng được, nhưng nếu lấy theo thứ tự lần lượt cột 1-2-3 và từ trên xuống dưới thì e dễ kiểm soát dữ liệu hơn.Dữ liệu dạng in hệt nhau. Mèo trắng hay mèo đen đứng trước thì cũng chả sao. Miễn là bắt chuột thôi.
Hai cái này khác nhau. Dòng trên là duyệt từng cột. Dòng dưới là duyệt từng hàng.Mình muốn xếp theo cột hoặc hàng (trình tự dữ liệu lấy cột 1 từ trên xuống dưới rồi sang cột 2 cũng từ trên xuống dưới, tương tự với các cột tiếp theo) bạn ạ
...
Hiểu như a cũng được, nhưng nếu lấy theo thứ tự lần lượt cột 1-2-3 và từ trên xuống dưới thì e dễ kiểm soát dữ liệu hơn.
Vậy anh có cách nào để các dữ liệu rải rác ở các ô về một dòng hoặc một cột giúp em được không ạ? Cảm ơn anh!Hai cái này khác nhau. Dòng trên là duyệt từng cột. Dòng dưới là duyệt từng hàng.
Chú: Nói chuyện đừng có viết tắt.
a gõ thêm nh và e gõ thêm e bộ mệt lắm sao? Trong môi trường Excel, các ký hiệu a e để giành cho tên cột.
Em test được rồi anh ạ! Ngon lành lắm! Cảm ơn anh nhiều!Cái này làm bằng thủ thuật và công thức hơi mệt.
VBA dễ hơn nhiều. Để xem tối nay có thì giờ viết không.
Bổ sung:
1. click vào dấu +, tạo thêm một sheet thứ hai. Đặt tên sheet này là XepLai.
2. copy code sau vào Module1.
3. chạy code
4. cột thứ hai dùng để kiểm soát lại dữ liệu đã xếp lại. Kiểm xong thì delete nó đi.
Sub t()
' code to pack a sparse range to 1 column
Dim sh As Worksheet
Dim LastRow As Long, LastCol As Long
Dim aCol As Long, aRow As Long, bRow As Long
Dim a, b()
Set sh = Sheet1
LastRow = sh.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
LastCol = sh.Cells.Find("*", searchorder:=xlByColumns, searchdirection:=xlPrevious).Column
a = sh.Range("A1").Resize(LastRow, LastCol).Value ' copy data into array
ReDim b(1 To LastRow * LastCol, 1 To 2) ' set up results array
For aCol = 1 To LastCol ' traverse data array rowwise
For aRow = 1 To LastRow
If a(aRow, aCol) <> "" Then ' copy non blank values
bRow = bRow + 1
b(bRow, 1) = a(aRow, aCol)
b(bRow, 2) = aRow & "\" & aCol
End If
Next aRow
Next aCol
Sheet2.Range("A1").Resize(bRow, 2) = b ' copy results to second sheet
End Sub