Bài 6: Câu lệnh điều kiện IF (ok)
https://hocggsheet.com/cau-lenh-dieu-kien-if/
Câu lệnh điều kiện If là một trong các câu lệnh cơ bản nhất trong bất kì ngôn ngữ lập trình nào. Ngay cả trong Excel hay Google Sheet, hàm If cũng được ứng dụng rất nhiều. Google App Script với ngôn ngữ lập trình Java không là ngoại lệ. Trong bài này, HocGgSheet.com xin chia sẻ đến các bạn cách sử dụng câu lệnh điều kiện If.
I. Cấu trúc
1. Điều kiện If đơn giản
Điều kiện If đơn giản mô tả ý nghĩa như sau: Nếu “điều kiện” xảy ra, thì thực hiện “câu lệnh”
0123
if (điều kiện) { câu lệnh;}
2. Điều kiện If có Else
Điều kiện If có Else mô tả ý nghĩa như sau: Nếu “điều kiện” xảy ra, thì thực hiện “câu lệnh 1”. Nếu không thì thực hiện “câu lệnh 2”
012345
if (điều kiện) { câu lệnh 1;} else { câu lệnh 2;}
3. Lưu ý
“Điều kiện” có thể một hoặc nhiều điều kiện. “Câu lệnh” có thể là một hoặc nhiều câu lệnh
Trong “Điều kiện”, nếu muốn kiểm tra “2 hoặc nhiều điều kiện xảy ra đồng thời”, ta dùng dấu và: &&. Còn nếu muốn kiểm tra “ít nhất 1 trong các điều kiện xảy ra”, ta dùng dấu hoặc: ||
4. Các dấu toán học trong “Điều kiện”
Các dấu trong “Điều kiện”
Ý nghĩa
&&
và
||
hoặc
==
bằng
!= hoặc <>
khác (không bằng)
>
lớn hơn
<
bé hơn
>=
lớn hơn hoặc bằng
<=
bé hơn hoặc bằng
II. Ví dụ câu lệnh điều kiện If
1. Mô tả ví dụ
Tiếp nối ví dụ của bài lần trước: Di chuyển dòng từ Sheet này sang Sheet khác. Ở đây mình viết một đoạn code thực hiện công việc như sau:
Trên Google Sheet, ô chúng ta đang bấm vào (activeCell) là ô nằm ở cột A
Khi chạy chương trình, nếu activeCell có giá trị lớn hơn 50, ta sẽ chuyển dòng đó từ sheet0 qua “dòng cuối cùng tiếp theo” bên sheet1
Nếu giá trị của activeCell nằm trong khoảng từ 40 đến 50, ta chỉ copy dòng đó mà không di chuyển
Còn lại, nếu nhỏ hơn hoặc bằng 40, thì không làm gì cả
2. Code
0123456789101112131415161718
function hocggsheet() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet0 = ss.getSheetByName("sheet0"); var sheet1 = ss.getSheetByName("sheet1"); var activeCell = ss.getActiveCell(); var range = sheet0.getRange(activeCell.getRow(), activeCell.getColumn(), 1, sheet0.getLastColumn()); var dich = sheet1.getRange(sheet1.getLastRow()+1, 1, 1); var activeCellValue = activeCell.getValue(); if (activeCellValue > 50) { range.moveTo(dich); sheet0.deleteRow(activeCell.getRow()); } else { if (activeCellValue <= 50 && activeCellValue > 40) { range.copyTo(dich); } }}
3. Chú thích
Hơi khác với trong clip một chút, trong code trên, mình sử dụng thêm biến activeCellValue để lấy giá trị của ô ta đang bấm vào ở Google Sheet
Khi Di chuyển dòng sang sheet1, ta đồng thời xóa dòng đó bên sheet0. Còn nếu là Copy thì không cần
Từ If trở đi, code thực hiện như trong phần Mô tả ví dụ
Biến
Ý nghĩa
activeCell
ô đang được kích hoạt ở Google Sheet
activeCellValue
giá trị của activeCell
range
lấy dải ô chứa các giá trị cùng hàng với activeCell
dich
đích đến khi thực hiện Di chuyển hoặc Copy dòng
File luyện tập cho Bài 6
https://docs.google.com/spreadsheets/d/1wwq8rFr10Xeu2KpH8BpEmVxFrJnttnbrtu3Lq90WH0Y/edit#gid=0
Lưu ý: để xem, chỉnh sửa file và code, các bạn vui lòng chọn File (tệp) -> Make a copy (copy) để Copy file vào Google Drive của các bạn nhé.
Last updated