Hàm LET
Hàm LET trong Google Sheets là công cụ mạnh mẽ để đơn giản hóa công thức, tăng tính hiệu quả và dễ đọc. Hàm LET cho phép bạn gán phạm vi, gán giá trị hoặc công thức vào các biến, sau đó sử dụng các biến này trong công thức chính.
Cú pháp:
= LET(Tên 1; Giá trị hoặc công thức gán cho biến 1;
Tên 2; Giá trị hoặc công thức gán cho biến 2;
Tên …;Giá trị hoặc công thức gán cho biến…;
Phép tính hoặc kết quả sử dụng các biến được định nghĩa)
Lợi ích của hàm LET
- Tăng tốc độ xử lý: Tối ưu hiệu suất vì giá trị được tính một lần.
- Dễ đọc, dễ bảo trì: Công thức rõ ràng và tổ chức tốt hơn.
- Giảm thiểu lặp lại: Định nghĩa giá trị một lần và tái sử dụng.
Ví dụ:
=INDEX(LET(nam;C2:C;nu;D2:D;
tong;nam+nu;
tyle_nam;nam/tong;
tyle_nu;nu/tong;
IF(B2:B=””;;HSTACK(tong;tyle_nam;tyle_nu))))
Những lưu ý khi sử dụng hàm LET
- Hàm LET xử lý các biến theo thứ tự từ trái sang phải. Biến được định nghĩa trước có thể được sử dụng bởi các biến được định nghĩa sau đó.
- Bạn có thể định nghĩa tối đa 126 biến trong một công thức LET. Điều này phù hợp với các công thức phức tạp, nhưng cần lưu ý rằng càng nhiều biến thì công thức càng khó bảo trì.
- Sau khi kết thúc gán 1 biến, bạn nên xuống dòng trong công thức bằng tổ hợp phím Ctrl + Enter để dễ nhìn, dễ bảo trì công thức.
- Các biến được gán trong LET chỉ tồn tại trong công thức đó. Sau khi công thức chạy xong, các biến sẽ không được lưu trữ. Nghĩa là bạn muốn tính toán theo các biến của LET thì phải nằm trong hàm LET, nếu bạn đặt bên ngoài, nó sẽ không tính toán. Ví dụ: =INDEX(HSTACK(LET(nam;C2:C;nu;D2:D;nam+nu);nam/(nam+nu))), trong tình huống này đoạn hàm nam/(nam+nu)sẽ bị lỗi #NAME? do nằm ngoài LET.
- Tên biến chỉ nên chứa các chữ cái, số và dấu gạch dưới (_). Đặt tên biến nên ngắn gọn nhưng phản ánh đúng nội dung hoặc chức năng để dễ đọc và bảo trì. Nếu giá trị hoặc công thức chỉ dùng một lần, không cần đặt tên biến để tránh làm phức tạp công thức.
- Tên biến không được trùng với hàm có sẵn của Google Sheets, ví dụ bạn không thể đặt =LET(SUM;B2:B10;….), bạn có thể dùng =LET(tong;B2:B10;….)
- Tên biến phải là duy nhất trong công thức, tức là bạn không được lặp lại cùng một tên biến trong cùng một hàm LET.
❌ Sai =LET(x, A1, x, A2, x*2)
✅ Đúng =LET(x, A1, y, A2, x*y)
- Tên biến không là số (trùng với dòng), là chữ viết HOA (trùng với cột). Ví dụ bạn không đặt = LET(D, C2:C10,…) mà nên dùng = LET(d, C2:C10,…) hoặc vẫn muốn dùng D thì là = LET(_D, C2:C10,…) tức là thêm 1 ký tự đặc biệt ngay cạnh.
- Tên biến không sử dụng khoảng trắng (dấu cách). Ví dụ đặt sai =LET(tong cộng;B2:B10;….), sửa lại là =LET(tong_cong;B2:B10;….)
- Sử dụng LET khi công thức phức tạp hoặc lặp lại nhiều lần, nghĩa là bạn không nên lạm dụng hàm LET trong thực tiễn.
Không nên dùng LET trong trường hợp nào?
- Công thức đơn giản: Nếu công thức chỉ có một phép tính ngắn, sử dụng LET có thể làm phức tạp không cần thiết.
- Quá nhiều biến: Dùng quá nhiều biến làm mất đi tính dễ đọc mà LET hướng đến.
- Lạm dụng LET khi “bắt nó nhớ tạm các dữ liệu quá lớn”. Ví dụ như bạn kết hợp LET và IMPORTRANGE, dạng như =LET(imp;IMPORTRANGE(A1;A2);……). Trong trường hợp dữ liệu IMPORTRANGE nhiều, tôi khuyên bạn nên để dữ liệu IMPORTRANGE ra 1 sheet riêng biệt, rồi tính toán theo sheet đó, thay vì lồng IMPORTRANGE vào hàm LET, nó sẽ làm giảm tốc độ tính toán.
Hàm CHOOSECOLS và CHOOSEROWS là những công cụ mạnh mẽ và linh hoạt giúp bạn thao tác với dữ liệu trong Google Sheets một cách dễ dàng hơn. Chúng cho phép bạn chọn lựa cột hoặc dòng một cách cụ thể và chính xác, đặc biệt hữu ích khi làm việc với các bảng dữ liệu lớn và phức tạp.
Hàm CHOOSECOLS, CHOOSEROWS
Hàm CHOOSECOLS
Hàm CHOOSECOLS cho phép bạn chọn một hoặc nhiều cột trong một phạm vi dữ liệu. Điều này rất hữu ích khi bạn không muốn sử dụng toàn bộ các cột mà chỉ muốn làm việc với một phần của bảng. Bạn hoàn toàn tính toán bình thường với các cột đã được chọn từ hàm CHOOSECOLS
= CHOOSECOLS(Bảng dữ liệu;
Cột cần lấy thứ 1;
Cột cần lấy thứ 2;…;
Cột cần lấy thứ n)
Ví dụ dưới đây, bạn muốn lấy cột 2, cột 5 đến cột 7, cột 9, 10 của vùng DATA!A:J, khi đó sử dụng công thức:
=CHOOSECOLS(DATA!A:J;2;5;6;7;9;10)
Trong trường hợp bạn phải lấy nhiều cột liên tiếp, việc phải liệt kê quá nhiều cột có thể là một vấn đề, khi đó bạn hãy sử dụng hàm SEQUENCE, với ví dụ trên, khi ta lấy “cột 5 đến cột 7” thì sẽ dùng SEQUENCE(1;3;5;1), khi đó công thức trên có thể viết:
=CHOOSECOLS(DATA!A:J;2;SEQUENCE(1;3;5;1);9;10)
Hàm CHOOSEROWS
Hàm CHOOSEROWS cho phép bạn chọn một hoặc nhiều dòng trong một phạm vi dữ liệu. Tương tự như CHOOSECOLS, bạn chỉ cần chỉ ra chỉ số dòng bạn muốn giữ lại. Bạn hoàn toàn tính toán bình thường với các dòng đã được chọn từ hàm CHOOSEROWS.
= CHOOSEROWS( Bảng dữ liệu;
Dòng cần lấy thứ 1;
Dòng cần lấy thứ 2;…;
Dòng cần lấy thứ n)
Ví dụ dưới đây, bạn muốn lấy dòng 4, dòng 10 đến dòng 17, dòng 37, dòng 40, dòng 49 của vùng DATA!A2:J, khi đó sử dụng công thức:
=CHOOSEROWS(DATA!A2:J;4;10;11;12;13;14;15;16;17;37;40;49)
Trong trường hợp bạn phải lấy nhiều dòng liên tiếp, việc phải liệt kê quá nhiều cột có thể là một vấn đề, khi đó bạn hãy sử dụng hàm SEQUENCE, với ví dụ trên, khi ta lấy “dòng 10 đến dòng 17” thì sẽ dùng SEQUENCE(1;8;10;1), khi đó công thức trên có thể viết:
=CHOOSEROWS(DATA!A2:J;4;SEQUENCE(1;8;10;1);37;40;49)
Những lưu ý khi dùng CHOOSECOLS và CHOOSEROWS
- Chỉ số cột tính từ trái sang phải trong CHOOSECOLS và chỉ số dòng tính từ trên xuống dưới trong CHOOSEROWS là các chỉ số số nguyên bắt đầu từ 1,2,… Và nếu tính từ phải sang trái trong CHOOSECOLS, và tính từ dưới lên trên trong CHOOSEROWS sẽ bắt đầu từ -1, -2,… =CHOOSECOLS(data;-1)và =CHOOSEROWS(data;-1)đặc biệt có ý nghĩa khi bạn muốn tìm kiếm cột/dòng nhập liệu cuối cùng.
- Các chỉ số cột/dòng phải hợp lệ và phải không vượt quá phạm vi dữ liệu của bạn (giả định rằng phạm vi dữ liệu của bạn có 10 cột, bạn dùng CHOOSECOLS thì chỉ có thể chọn từ cột 1, 2, …, 10). Nếu bạn chọn cột 11 chẳng hạn thì sẽ báo lỗi, điều này xảy ra vì bạn chỉ định một chỉ số cột/dòng lớn hơn số cột/dòng trong vùng dữ liệu của bạn.
- Một trong những ưu điểm của CHOOSECOLS và CHOOSEROWS là khả năng chọn các cột hoặc dòng không liên tiếp (non-adjacent) và chọn cột/dòng nhiều lần (ví dụ chọn cột 3 nhiều lần =CHOOSECOLS(A2:F100;3;3;5) nghĩa là chọn cột 3 hai lần, cột 5 chọn 1 lần. Điều này giúp bạn linh hoạt hơn trong việc xử lý dữ liệu mà không cần phải làm việc với toàn bộ phạm vi.
- Nếu chỉ chọn 1 cột, hoặc 1 dòng, thì bạn có thể dùng hàm INDEX sẽ trong ngắn hơn. Ví dụ =CHOOSECOLS(data;1) thì thay bằng INDEX(data;;1) và =CHOOSEROWS(data;1) thì thay bằng INDEX(data;1)
Bài viết của TS. Trần Quốc Hoàn, vui lòng trích dẫn nguồn nếu bạn tham khảo.