Sắp xếp cột dữ liệu

Liên hệ QC

winnies

Thành viên mới
Tham gia
30/10/12
Bài viết
45
Được thích
-1
Mình muốn chuyển giữ liệu như sau

1.png

sang 2.png

dữ liệu mình có hàng trăm dòng mà mình muốn sắp sếp thành 6 cột theo thứ tự 1 cặp (VD: 1A,2B) phải đi đôi với nhau. Mọi người có cách nào làm nhanh ko ah. Mong được cả nhà giúp đỡ
 
Mình muốn chuyển giữ liệu như sau

View attachment 198751

sang View attachment 198752

dữ liệu mình có hàng trăm dòng mà mình muốn sắp sếp thành 6 cột theo thứ tự 1 cặp (VD: 1A,2B) phải đi đôi với nhau. Mọi người có cách nào làm nhanh ko ah. Mong được cả nhà giúp đỡ
Giả sử:
A1=1; A2=2;....
B1=A; B2=B;....
Mã:
D1=OFFSET($A$1,(ROW($A1)-1)*3+INT((COLUMN(A$1)-1)/2),1-ISODD(COLUMN(A$1)))
Fill công thức tại D1 qua đủ 6 cột, rồi kéo dài xuống dưới
Thân.
 

File đính kèm

  • Sapxep.xlsb
    67.9 KB · Đọc: 9
Mình muốn chuyển giữ liệu như sau

View attachment 198751

sang View attachment 198752

dữ liệu mình có hàng trăm dòng mà mình muốn sắp sếp thành 6 cột theo thứ tự 1 cặp (VD: 1A,2B) phải đi đôi với nhau. Mọi người có cách nào làm nhanh ko ah. Mong được cả nhà giúp đỡ
Giả sử dữ liệu bắt đầu từ A1.
Thì công thức như sau, fill qua phải rồi fill xuống.
Mã:
=OFFSET($A$1,(ROW(A1)-1)*3+(COLUMN(A1)-1)/2,MOD(COLUMN(A1)-1,2))
 
Cám ơn cả nhà nhiều ^^
Bài đã được tự động gộp:

Cả nhà có thể giải thích giúp mình ý nghĩa công thức trên được không
D1=OFFSET($A$1,(ROW($A1)-1)*3+INT((COLUMN(A$1)-1)/2),1-ISODD(COLUMN(A$1)))
 
Lần chỉnh sửa cuối:
Cám ơn cả nhà nhiều ^^
Bài đã được tự động gộp:

Cả nhà có thể giải thích giúp mình ý nghĩa công thức trên được không
D1=OFFSET($A$1,(ROW($A1)-1)*3+INT((COLUMN(A$1)-1)/2),1-ISODD(COLUMN(A$1)))
Ba công thức trên đều chung giải thuật là tìm ra quy luật truy xuất dữ liệu, với công thức bạn hỏi, đại khái nó thực hiện như sau:
Hàm OFFSET( 'Mốc làm chuẩn' , 'Số dòng cần xuống/lên' , 'Số cột cần qua/lại' )
- $A$1: 'Mốc làm chuẩn'​
- (ROW($A1)-1)*3+INT((COLUMN(A$1)-1)/2): 'Số dòng cần xuống/lên'; Bạn có thể chép riêng công thức này ra ngoài, rồi copy qua phải 6 cột và xuống dưới, sẽ thấy nó trả về các giá trị: Theo cột qua ngang sẽ là: 0,0,1,1,2,2 -> ý nghĩa: từ A1 hai cột đầu không ('0' ) xuống dòng nào (tức vẫn dòng 1), 2 cột kế xuống '1' dòng (tức dòng 2), 2 cột sau cùng xuống '2' dòng (tức dòng 3). Tương tự suy ra ý nghĩa các số ở dưới, như sẽ là: 3,3,4,4,5,5 ; 6,6,7,7,8,8......​
- 1-ISODD(COLUMN(A$1)): 'Số cột cần qua/lại', Bạn cũng chép ra ngoài sẽ thấy các giá trị trả về, như: các dòng đều là: 0,1,0,1,0,1 -> ý nghĩa: từ A1, cột đầu không ('0') nhảy, đứng nguyên tại chỗ (cột A), cột 2 thì nhảy qua '1' cột (cột B), cột 3 lại đứng nguyên (cột A), cột 4 thì nhảy qua '1' cột (cột B)....tương tự như vậy cứ cột số lẻ thì đứng nguyên (cột A), cột số chẵn thì nhảy qua 1 cột (cột B).​
Ghép các kết quả vào Offset, thì nó tạo lệnh thi hành 'nhảy đến các ô để lấy giá trị', đại để như sau:
- dòng 1, lấy giá trị tại các ô: A1, B1, A2, B2, A3, B3​
- dòng 2, lấy giá trị tại các ô: A4, B4, A5, B5, A6, B6​
- dòng 3, lấy giá trị tại các ô: A7, B7, A8, B8, A9, B9​
.....................................................................................................​
Cứ như vậy cho đến hết giá trị cột A và B​

Thân.
 
Web KT
Back
Top Bottom