Mục lục:
Video: Học Excel Cơ Bản 77 | Hướng dẫn công thức mảng trong Excel qua 7 ví dụ 2025
Công thức mảng là một trong những tính năng mạnh mẽ nhất của Excel. Nếu bạn đã quen thuộc với công thức mảng, bạn sẽ rất vui khi biết rằng bạn có thể tạo các hàm VBA trả về một mảng.
Trả về một mảng các tên tháng
Hãy bắt đầu với một ví dụ đơn giản. Hàm MonthNames trả về mảng 12 phần tử của - bạn đã đoán tên nó - tháng.
Chức năng ThángName () MonthNames = Array ("January", "February", "March", "April", "May", "June", "July", "August", "September", " October "," November "," December ") End Function
Để sử dụng chức năng MonthNames trong một bảng tính, bạn phải nhập nó như một công thức mảng 12 ô. Ví dụ: chọn phạm vi A2: L2 và nhập = MonthNames () . Sau đó nhấn Ctrl + Shift + Enter để nhập công thức mảng trong tất cả 12 ô đã chọn. Kiểm tra kết quả.
Nếu bạn muốn tên tháng hiển thị trong một cột, hãy chọn 12 ô trong một cột và sử dụng công thức mảng này. (Đừng quên nhập nó bằng cách nhấn Ctrl + Shift + Enter)
= TRANSPOSE (MonthNames ())
Bạn cũng có thể chọn ra một tháng từ mảng đó. Dưới đây là một công thức (không phải là một công thức mảng) hiển thị phần tử thứ tư của mảng: Tháng Tư.
Chức năng tùy chỉnh này không chỉ là: Nó có một phạm vi một cột của các tế bào như là đối số của nó và sau đó trả về một mảng của các tế bào được sắp xếp. Phạm vi A2: A13 chứa một số tên. Phạm vi C2: C13 chứa công thức mảng đa lõi này. (Nhớ rằng bạn phải nhập công thức bằng cách nhấn Ctrl + Shift + Enter.)Sử dụng một hàm tùy chỉnh để trả về một dãy được sắp xếp.
= Sắp xếp (A2: A13)
Đây là mã cho hàm Sắp xếp: Chức năng Sắp xếp (Rng As Range) Dim SortedData () Như Variant Dim Cell Như Range Dim Temp As Variant, i As Long, j Như Long Dim NonEmpty Như Long 'Chuyển dữ liệu sang SortedData Đối với mỗi ô trong Rng Nếu Không IsEmpty (Cell) Sau đó NonEmpty = NonEmpty + 1 ReDim Preserve Phân loạiData (1 Để NonEmpty) SortedData (NonEmpty) = Tế bào. Value End If Next Cell 'Sắp xếp mảng Đối với i = 1 Để NonEmpty Đối với j = i + 1 Để NonEmpty Nếu SortedData (i)> SortedData (j) Sau đó Temp = Sắp xếpData (j) SortedData (j) = Sắp xếpData (i) SortedData (i) = Temp End If Next j Next i 'Chuyển mảng và trả về nó Sắp xếp = Ứng dụng.Transpose (SortedData) End FunctionChức năng Sắp xếp bắt đầu bằng cách tạo một mảng có tên Sắp xếpData. Mảng này chứa tất cả các giá trị nonblank trong phạm vi đối số. Tiếp theo, mảng SortedData được sắp xếp, sử dụng thuật toán sắp xếp bong bóng. Bởi vì mảng là một mảng ngang, nó phải được chuyển đổi trước khi nó được trả về bởi hàm.
Chức năng Sắp xếp hoạt động với bất kỳ kích thước nào, miễn là nó nằm trong một cột hoặc một hàng. Nếu dữ liệu chưa được phân loại liên tiếp, công thức của bạn cần sử dụng chức năng TRANSPOSE của Excel để hiển thị dữ liệu được sắp xếp theo chiều ngang. Ví dụ:
= TRANSPOSE (Phân loại (A16: L16))