Thay thế hàm OFFSET

Liên hệ QC
Ví dụ
=SUMIF(OFFSET(A2,,{0,1},{1;2;3;4;5}),">0")
Chỉ với 2 tham số là mảng của offset trả về 10 vùng dữ liệu, nếu lập trình xử lý sẽ rất phức tạp, Index chỉ trả về 1 vùng dữ liệu, cách xử lý sẽ đơn giản hơn, và tốc độ sẽ thường tương đồng với độ phức tạp của các lệnh
Cũng như VBA, tôi vẫn thường hay nói chuyện tốc độ còn tuỳ theo điểm mượt của giải thuật làm việc trên vùng dữ liệu đưa ra.
Ví dụ của bạn là công thức sử dụng mảng. Index là chuyên gia mảng. Đương nhiên nó sẽ ưu việt hẳn so với hầu hết công thức khác.
Chú thêm: thường thì kiểu mảng như vầy người ta tránh các hàm volatile nếu có thể được.
 
Cũng như VBA, tôi vẫn thường hay nói chuyện tốc độ còn tuỳ theo điểm mượt của giải thuật làm việc trên vùng dữ liệu đưa ra.
Ví dụ của bạn là công thức sử dụng mảng. Index là chuyên gia mảng. Đương nhiên nó sẽ ưu việt hẳn so với hầu hết công thức khác.
Chú thêm: thường thì kiểu mảng như vầy người ta tránh các hàm volatile nếu có thể được.
Mình không nói về công thức trên excel, ý muốn nói về độ phức tạp của lập trình function Offset, 4 tham số dòng và cột đều có thể là mảng các giá trị, kết quả có thể là mảng gồm nhiều vùng dữ liệu. Index với 2 tham số dòng cột, mỗi tham số chỉ lấy 1 giá trị nên lập trình cho function Index đơn giản hơn
 
:D ông già khó tính chứ không phải chị.
Số người châm biếm tôi có tính "đàn bà" lên đến hàng vạn.
Tôi chẳng lấy làm tự ái. Theo tôi thì đàn ông với đàn bà chả có gì khác biệt về giá trị cả. Những người kia sống ở thế kỷ 21 mà đầu óc còn thuộc về đầu thế kỷ trước: trọng nam khinh nữ.
 
Ví dụ
=SUMIF(OFFSET(A2,,{0,1},{1;2;3;4;5}),">0")
Chỉ với 2 tham số là mảng của offset trả về 10 vùng dữ liệu, nếu lập trình xử lý sẽ rất phức tạp, Index chỉ trả về 1 vùng dữ liệu, cách xử lý sẽ đơn giản hơn, và tốc độ sẽ thường tương đồng với độ phức tạp của các lệnh
Là Group nằm ở menu Data ẩn mấy cột cho tiện mà bạn, không phải hide cột hay mở ra phải unhide cột.
Untitled.png
Bài đã được tự động gộp:

:D ông già khó tính chứ không phải chị.
em nhớ nhầm níc là chị con gái. lần sau gọi là anh chị cho dễ vậy
 
Multiple times chứ không phải là multi-time.

Đáng lẽ phải gọi lão ta là "as dead as a doornail" (tiếng rất xưa) hay "kicked the bucket" (gần hơn một chút), hay thơ mộng hơn là "cadaver in a dark alleyway". Nhưng mà như vậy lão ta tưởng mình được tâng bốc. :D

(*1) bucket là cái xà ngang trong lò (hình như xuất xứ tiếng Pháp). Người ta treo cẳng con cừu, heo lên đó để cắt cổ. Vì vậy sanh ra thành ngữ kick the bucket.
 
Multiple times chứ không phải là multi-time.

Đáng lẽ phải gọi lão ta là "as dead as a doornail" (tiếng rất xưa) hay "kicked the bucket" (gần hơn một chút), hay thơ mộng hơn là "cadaver in a dark alleyway". Nhưng mà như vậy lão ta tưởng mình được tâng bốc. :D
Đấy! Cứ 1 lần sửa lưng (chính tả) và 1 lần xổ tiếng Anh cổ điển/ hiện đại, là 1 lần tôi chết đớn chết đau. Không để bụng sao được.
 
Số dòng và số cột chỉ là tiện lợi của Resize. Chúng đều là số nguyên và chỉ là con số cho biết giới hạn của range, con toán không thể gọi là đáng kể.
Khi công thức nhận được địa chỉ range là nó nhận được thông số cho biết ô đầu tiên của range và tầm vực/giới hạn của range. Chỗ còn lại do đối tượng range xử lý.
Theo prototype (dạng khai báo hàm) thì Offset đơn giản hơn Index. Offset buộc đầu vào là range và đầu ra là range; và nếu range nhiều hơn 1 cells thì chúng phải liên tục. Đầu vào lẫn đầu ra của Index đều có thể là range hay mảng; và có thể là 3 chiều. Vec tơ chiếu tới thuần range sẽ đồng bộ hơn chọn lựa giữa range và mảng. Nói cách khác, cái đối tượng range mà Offset dựng lên có nhiều khả năng đơn giản hơn cái đối tượng của Index.
mấy bác nói hàn lâm qá.. tuy rất khoa học logic nhưng hơi khó hiểu..vì excel bao la mênh mông cần tư duy nên có ví dụ sẽ dễ hơn..Tks!
 
Web KT
Back
Top Bottom