Chia sẻ
"WRAPCOLS gập theo cột, WRAPROWS gập theo hàng. Biến mảng 1D thành bảng 2D — tạo lịch tháng, chia nhóm, reshape dữ liệu chỉ với 1 công thức."
WRAPCOLS và WRAPROWS biến mảng 1 chiều thành mảng 2 chiều — 'gập' dữ liệu phẳng thành bảng có hàng và cột. Tạo lịch tháng, bảng xoay dữ liệu, và reshape mảng chỉ với 1 công thức Excel 365.
WRAPCOLS — Gập Theo Cột
Cú pháp
=WRAPCOLS(vector, wrap_count, [pad_with])
vector — Mảng 1D (hàng hoặc cột)
wrap_count — Số phần tử mỗi cột (chiều cao cột)
pad_with — Giá trị điền vào ô thừa (mặc định #N/A)Cách hoạt động
// Mảng 1D: {1, 2, 3, 4, 5, 6, 7, 8, 9}
=WRAPCOLS({1,2,3,4,5,6,7,8,9}, 3)
// Gập mỗi 3 phần tử thành 1 CỘT:
// Kết quả 3×3:
// | 1 | 4 | 7 |
// | 2 | 5 | 8 |
// | 3 | 6 | 9 |
// Đọc từ trên xuống, trái sang phải: 1→2→3→4→5→...Ví dụ: Xử lý phần tử thừa
// 10 phần tử, gập mỗi 3:
=WRAPCOLS({1,2,3,4,5,6,7,8,9,10}, 3)
// Kết quả 3×4:
// | 1 | 4 | 7 | 10 |
// | 2 | 5 | 8 | #N/A |
// | 3 | 6 | 9 | #N/A |
// Dùng pad_with để thay #N/A:
=WRAPCOLS({1,2,3,4,5,6,7,8,9,10}, 3, "")
// #N/A → "" (ô trống)WRAPROWS — Gập Theo Hàng
Cú pháp
=WRAPROWS(vector, wrap_count, [pad_with])
vector — Mảng 1D
wrap_count — Số phần tử mỗi HÀNG (chiều rộng hàng)
pad_with — Giá trị điền ô thừaCách hoạt động
// Mảng 1D: {1, 2, 3, 4, 5, 6, 7, 8, 9}
=WRAPROWS({1,2,3,4,5,6,7,8,9}, 3)
// Gập mỗi 3 phần tử thành 1 HÀNG:
// Kết quả 3×3:
// | 1 | 2 | 3 |
// | 4 | 5 | 6 |
// | 7 | 8 | 9 |
// Đọc từ trái sang phải, trên xuống: 1→2→3→4→5→...WRAPCOLS vs WRAPROWS
Tiêu chí | WRAPCOLS | WRAPROWS |
|---|---|---|
wrap_count | Số hàng mỗi cột | Số cột mỗi hàng |
Hướng gập | Điền theo CỘT (↓→) | Điền theo HÀNG (→↓) |
Ví dụ | 1,2,3 | 4,5,6 | 1,2,3 / 4,5,6 |
Use case | Tạo lịch, danh sách cột | Chia dữ liệu thành nhóm hàng |
Ứng Dụng Thực Tế
Tạo lịch tháng
// Tạo lịch tháng 3/2026 (bắt đầu Chủ nhật):
=LET(
firstDay, DATE(2026, 3, 1),
startDOW, WEEKDAY(firstDay),
daysInMonth, DAY(EOMONTH(firstDay, 0)),
allDays, SEQUENCE(daysInMonth),
padBefore, SEQUENCE(startDOW - 1, , , ),
// Tạo mảng 1D gồm padding + ngày:
fullArray, VSTACK(IF(SEQUENCE(startDOW-1),,""), allDays),
WRAPROWS(fullArray, 7, "")
)
// Kết quả: lịch tháng dạng 7 cột (CN-T7)
// Thay đổi tháng/năm → lịch tự cập nhật!Chia danh sách thành nhóm
// 15 nhân viên chia thành nhóm 5 người:
=WRAPROWS(A2:A16, 5, "(trống)")
// Kết quả 3×5:
// | An | Bình | Chi | Dung | Em |
// | Phong | Giang | Hùng | Ích | Kim |
// | Lan | Minh | Nam | Oanh | Phúc |
// Tự động chia đều, thêm padding nếu lẻTạo bảng nhãn in (label printing layout)
// Danh sách 100 địa chỉ (cột A), in 3 nhãn mỗi hàng:
=WRAPROWS(A2:A101, 3, "")
// 100 items → bảng 34×3 (hàng cuối có 1 ô trống)
// Perfect cho template in nhãn Avery!Kết hợp TOCOL + WRAPROWS (reshape bảng)
// Bảng 5×4 → chuyển thành bảng 10×2:
=WRAPROWS(TOCOL(A1:D5), 2)
// TOCOL flatten thành 1D (20 phần tử)
// WRAPROWS gập lại thành 2 cột
// Hoặc reshape 3×4 → 4×3:
=WRAPROWS(TOCOL(A1:D3), 3)
// Reshape tùy ý — như numpy.reshape!Câu Hỏi Thường Gặp (FAQ)
WRAPCOLS/WRAPROWS có nghịch đảo không?
Có! TOCOL và TOROW là nghịch đảo. WRAPROWS tạo 2D từ 1D, TOCOL flatten 2D về 1D. TOCOL(WRAPROWS(arr, 3)) = arr gốc (khôi phục mảng ban đầu).
Có thể dùng WRAPCOLS với SORT không?
Có, nhưng SORT trước rồi WRAP sau. Ví dụ: WRAPROWS(SORT(A2:A101), 5) — sắp xếp A-Z rồi chia thành nhóm 5 người theo alphabet. Rất hữu ích cho phân nhóm có tổ chức.
wrap_count lớn hơn số phần tử thì sao?
Nếu wrap_count > số phần tử, toàn bộ mảng nằm trong 1 cột (WRAPCOLS) hoặc 1 hàng (WRAPROWS), phần còn lại là pad_with. Không gây lỗi nhưng hầu hết ô sẽ là #N/A hoặc giá trị pad.
Tổng Kết
WRAPCOLS gập theo cột (↓→), WRAPROWS gập theo hàng (→↓). Hai hàm này biến mảng phẳng thành bảng 2D — tạo lịch, chia nhóm, reshape dữ liệu. Kết hợp TOCOL/TOROW, bạn có bộ công cụ reshape mạnh như numpy trong Python, ngay trong Excel 365.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
