Bài 6: Câu lệnh điều kiện IF (ok)

https://hocggsheet.com/cau-lenh-dieu-kien-if/

// Some code

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

&&

||

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

Navigation

Lionel

@Copyright 2023