Hàm WRAPCOLS trong Google Sheets

WRAPCOLS là một hàm mảng trong Google Sheets được sử dụng đặc biệt để chuyển đổi một hàng hoặc cột thành nhiều cột.

Tất nhiên, chúng ta có thể sử dụng nhiều OFSSET, QUERY hoặc kết hợp VLOOKUP và SEQUENCE để chuyển đổi các giá trị trong một hàng hoặc cột thành một mảng hai chiều.

Hầu hết chúng ta đã thử một trong những phương pháp đó, phải không?

Nhưng một trong những cách tốt nhất và dễ nhất là sử dụng hàm WRAPCOLS.

Hàm WRAPCOLS trả về các kết quả dưới dạng các cột, trong khi WRAPROWS trả về dưới dạng các hàng.

Cú pháp và đối số

Cú pháp: WRAPCOLS(range, wrap_count, [pad_with])

Các đối số trong hàm WRAPCOLS:

  • range: Mảng hoặc phạm vi cần chuyển đổi. Nó có thể là một cột hoặc một hàng duy nhất.
  • wrap_count: Số lượng tối đa các ô cho mỗi cột trong kết quả.
  • Nếu wrap_count không là một số nguyên (ví dụ: 5.5), hàm sẽ làm tròn xuống số nguyên gần nhất (ở đây là 5).
  • pad_with – Đây là một đối số tùy chọn trong hàm mảng WRAPCOLS để thay thế #N/A trong các ô trống bằng một giá trị đã cho.
  • Ví dụ: Nếu có mười ô trong dải và wrap_count là 6, công thức sẽ trả về #N/A trong ô thứ mười một và mười hai.

Cách sử dụng hàm WRAPCOLS trong Google Sheets

Trong ví dụ sau đây, các giá trị doanh số theo tháng Q1, Q2, Q3 và Q4 được nhập vào một cột dưới các nhãn tương ứng.

WRAPCOLS examples in Google Sheets

Tôi đã sử dụng công thức WRAPCOLS dưới đây trong ô D3 để chuyển đổi dữ liệu đó thành nhiều cột. Vì vậy, chúng ta sẽ nhận được dữ liệu của từng quý trong các cột khác nhau.

=wrapcols(B3:B18,4)

Trong công thức, dải là B3:B18 và wrap_count là 4.

Hàm WRAPCOLS là một trong các hàm mới trong Google Sheets.

Vì vậy, tôi đã sử dụng công thức kết hợp dưới đây cho mục đích này.

Hàm thay thế WRAPCOLS:

=ArrayFormula(vlookup(transpose(sequence(4,4,row(B3))),{row(B3:B18),B3:B18},2,0))

Quan trọng:

Chúng ta đã sử dụng một dải cột trong công thức trên. Nhưng nó cũng có thể là một hàng. Sẽ không có thay đổi nào ngoại trừ tham chiếu dải trong công thức.

Đối số Pad_With

=wrapcols(A1:A5,3)

Pad_With Argument

Dải trong hàm WRAPCOLS trên chứa năm phần tử.

Vì wrap_count là 3, ô thứ ba trong cột thứ hai là trống rỗng. Vì vậy, công thức trả về #N/A!

Để thay thế nó bằng “giá trị không”, sử dụng công thức sau với giá trị pad_with.

=wrapcols(A1:A5,3,”giá trị không”)

Hàm WRAPCOLS và sắp xếp một mảng hai chiều

Chúng ta có các giá trị doanh số dưới các cột Q1, Q2, Q3 và Q4 trong D3: G6 theo cách hiển thị số 1 ở trên.

Làm thế nào để chúng ta sắp xếp doanh số hàng tháng dưới mỗi cột bằng một đoạn mã duy nhất?

Sắp xếp một mảng hai chiều theo thứ tự tăng dần

Hãy mã hóa công thức theo một số bước nhỏ có thể giúp bạn hiểu cách hoạt động của nó.

Chúng ta sẽ chỉ sử dụng hàm WRAPCOLS ở bước cuối cùng thôi.

WRAPCOLS function in Sorting a Two-Dimensional Array

Sao chép các nhãn trường vào D3: G3 và dán chúng vào D10: G10.

Chúng ta có một ma trận 3 x 4 (ba hàng và bốn cột) bỏ qua hàng tiêu đề. Sử dụng công thức MAKEARRAY sau để tạo ra một ma trận có kích thước tương tự.

=makearray(3,4,lambda(r,c,c+0))

Làm phẳng nó.

=flatten(makearray(3,4,lambda(r,c,c+0)))

Làm phẳng các giá trị trừ nhãn trường.

=flatten(D4:G6)

Kết hợp hai công thức trên để tạo ra một mảng hai cột.

={flatten(makearray(3,4,lambda(r,c,c+0))),flatten(D4:G6)}

Cột đầu tiên đại diện cho nhãn trường và cột thứ hai đại diện cho các giá trị thực tế.

Sắp xếp nó dựa trên cột 1 (nhãn trường) theo thứ tự tăng dần và cột 2 (giá trị doanh số) cũng theo thứ tự tăng dần.

=sort({flatten(makearray(3,4,lambda(r,c,c+0))),flatten(D4:G6)},1,1,2,1)

Trích xuất cột thứ hai bằng cách sử dụng hàm INDEX.

=index(sort({flatten(makearray(3,4,lambda(r,c,c+0))),flatten(D4:G6)},1,1,2,1),0,2)

Sau đó sử dụng WRAPCOLS để chuyển đổi mảng một chiều trên thành một mảng hai chiều.

=wrapcols(index(sort({flatten(makearray(3,4,lambda(r,c,c+0))),flatten(D4:G6)},1,1,2,1),0,2),3)

Đó là công thức trong ô D11.

Sắp xếp một mảng hai chiều theo thứ tự giảm dần

Chỉ cần thay đổi một thông số trong công thức trên là đủ để sắp xếp các giá trị doanh số theo thứ tự giảm dần.

Các thông số 1,1,2,1 thuộc về hàm SORT, và số cuối cùng là thứ tự sắp xếp cột thứ hai.

Sử dụng 0 để thay thế nó, và voila!

=wrapcols(index(sort({flatten(makearray(3,4,lambda(r,c,c+0))),flatten(D4:G6)},1,1,2,0),0,2),3)

Đó là tất cả về cách sử dụng hàm WRAPCOLS trong Google Sheets. Cảm ơn vì đã đọc!

Related posts