Bạn có thể tránh tính năng tự động điền hoàn toàn với các công thức mảng . Chỉ cần nhập công thức như bình thường nhưng nối :column
vào cuối mỗi tham chiếu ô và sau đó nhấn Ctrl+ Shift+Enter . Công thức sau đó sẽ được áp dụng ngay lập tức cho tất cả các ô trong cột mà không cần kéo bất cứ thứ gì
Biên tập:
Các phiên bản Excel mới hơn sẽ tự động sử dụng các công thức mảng để điền vào khi có một hàng dữ liệu mới
Bắt đầu với bản cập nhật tháng 9 năm 2018 cho Office 365, bất kỳ công thức nào có thể trả về nhiều kết quả sẽ tự động làm đổ chúng xuống hoặc qua các ô lân cận. Sự thay đổi hành vi này cũng đi kèm với một số hàm mảng động mới. Các công thức mảng động, cho dù chúng đang sử dụng các hàm hiện có hoặc các hàm mảng động, chỉ cần nhập vào một ô, sau đó xác nhận bằng cách nhấn Enter. Trước đó, các công thức mảng kế thừa yêu cầu trước tiên chọn toàn bộ phạm vi đầu ra, sau đó xác nhận công thức bằng Ctrl+ Shift+ Enter. Chúng thường được gọi là công thức CSE.
Hướng dẫn và ví dụ về công thức mảng
Nếu bạn đang dùng phiên bản Excel cũ hơn hoặc muốn biết thêm về công thức mảng thì hãy tiếp tục đọc
Ví dụ: đặt =B3:B + 2*C3:C
D3 và Ctrl+ Shift+ Entertương đương với việc gõ =B3 + 2*C3
và kéo xuống hết mức trong một bảng bắt đầu từ hàng 3
Việc gõ nhanh, nhưng có một nhược điểm là các ô không được sử dụng ở cuối (bên ngoài bảng hiện tại) vẫn được tính và hiển thị 0. Có một cách dễ dàng để ẩn 0s . Tuy nhiên, cách tốt hơn nữa là giới hạn phép tính ở cột cuối cùng của bảng. Biết rằng trong một công thức mảng, bạn có thể sử X3:X101
dụng để chỉ áp dụng cho các ô từ X3 đến X101, chúng ta có thể sử dụng INDIRECT
hàm để đạt được hiệu quả tương tự
- Nhập
=LOOKUP(2, 1/(A:A <> ""), A:A)
vào một số ô bên ngoài bảng để tìm ô không trống cuối cùng trong bảng và đặt tên cho nó LastRow
. Hoặc sử dụng =COUNTA(A3:A) + 2
khi hàng đầu tiên của bảng là 3
- Sau đó thay vì
B3:B
sử dụng=INDIRECT("B3:B" & LastRow)
Ví dụ, nếu bạn muốn các tế bào trong cột D để chứa các sản phẩm của các tế bào trong B và C, và cột E chứa tiền của B và C, thay vì sử dụng D3 = B3*C3
và E3 = B3 + C3
và kéo xuống, bạn chỉ cần đặt dưới đây công thức trong D3 và E3 tương ứng và nhấn Ctrl+ Shift+Enter
=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)
Từ giờ mỗi khi bạn thêm dữ liệu vào một hàng mới, bảng sẽ được cập nhật tự động
Công thức mảng rất nhanh vì mẫu truy cập dữ liệu đã được biết đến. Bây giờ thay vì thực hiện 100001 phép tính khác nhau một cách riêng biệt, chúng có thể được vector hóa và thực hiện song song , sử dụng nhiều lõi và đơn vị SIMD trong CPU. Nó cũng có những ưu điểm dưới đây:
- Tính nhất quán: Nếu bạn nhấp vào bất kỳ ô nào từ E2 trở xuống, bạn sẽ thấy công thức tương tự. Sự nhất quán đó có thể giúp đảm bảo độ chính xác cao hơn.
- An toàn: Bạn không thể ghi đè lên một thành phần của công thức mảng nhiều ô. Ví dụ, nhấp vào ô E3 và nhấn Xóa. Bạn phải chọn toàn bộ phạm vi ô (từ E2 đến E11) và thay đổi công thức cho toàn bộ mảng hoặc để nguyên mảng. Là một biện pháp an toàn bổ sung, bạn phải nhấn Ctrl+ Shift+ Enterđể xác nhận thay đổi công thức.
- Kích thước tệp nhỏ hơn: Bạn thường có thể sử dụng một công thức mảng đơn thay vì một số công thức trung gian. Ví dụ: sổ làm việc sử dụng một công thức mảng để tính kết quả trong cột E. Nếu bạn đã sử dụng các công thức tiêu chuẩn (chẳng hạn như
=C2*D2
, C3*D3
thì C4*D4
), bạn sẽ sử dụng 11 công thức khác nhau để tính kết quả tương tự.
Hướng dẫn và ví dụ về công thức mảng
Để biết thêm thông tin đọc