Google Sheets

Hướng Dẫn Apps Script Google Sheets: Tự Động Hóa Nâng Cao Cho Doanh Nghiệp 2026

Tuân HoangTuân Hoang
18 tháng 4, 2026
18 phút đọc
Hướng Dẫn Apps Script Google Sheets: Tự Động Hóa Nâng Cao Cho Doanh Nghiệp 2026

Google Apps Script biến Google Sheets từ bảng tính thông thường thành công cụ tự động hóa mạnh mẽ — tiết kiệm hàng chục giờ mỗi tuần cho doanh nghiệp.

Hướng dẫn chi tiết từ cơ bản đến nâng cao: viết macro, tự động gửi email, kết nối API, tạo dashboard realtime — kèm code mẫu chạy được ngay.

1. Google Apps Script Là Gì? Tại Sao Doanh Nghiệp Cần Học?

Google Apps Script là ngôn ngữ lập trình dựa trên JavaScript, được Google phát triển để mở rộng chức năng của Google Workspace — đặc biệt là Google Sheets, Google Docs, Gmail và Google Drive. Bạn không cần cài đặt phần mềm, không cần máy chủ — mọi thứ chạy trên đám mây Google miễn phí.

Theo khảo sát của Google Workspace năm 2025, hơn 78% doanh nghiệp SME tại Đông Nam Á sử dụng Google Sheets làm công cụ quản lý chính. Tuy nhiên, đa số chỉ dùng các tính năng cơ bản như nhập liệu và tạo biểu đồ. Apps Script mở ra khả năng hoàn toàn mới:

  • Tự động hóa quy trình lặp lại: Gửi email hàng loạt, tạo báo cáo định kỳ, cập nhật dữ liệu từ nguồn bên ngoài — không cần thao tác thủ công
  • Kết nối đa nền tảng: Lấy dữ liệu từ CRM, ERP, sàn TMĐT về Google Sheets tự động qua API
  • Tạo ứng dụng nội bộ: Form nhập liệu tùy chỉnh, dashboard realtime, hệ thống phê duyệt — chạy trên web mà không cần developer
  • Xử lý dữ liệu thông minh: Làm sạch data, phân loại tự động, cảnh báo khi dữ liệu bất thường
  • Miễn phí 100%: Không tốn phí license như VBA/Excel — chỉ cần tài khoản Google

So với VBA trên Excel, Apps Script có lợi thế lớn: chạy trên cloud (không phụ thuộc máy tính cá nhân), dễ chia sẻ và cộng tác, tích hợp sẵn với hệ sinh thái Google. Đọc thêm về hướng dẫn sử dụng Google Sheets đầy đủ nếu bạn mới bắt đầu.

2. Cài Đặt Và Viết Apps Script Đầu Tiên

2.1 Mở Apps Script Editor

Mở bất kỳ Google Sheets nào, vào menu Extensions → Apps Script. Trình soạn thảo code mở ra trong tab mới — giao diện gần giống VS Code nhưng chạy hoàn toàn trên trình duyệt.

2.2 Script đầu tiên: Hello World

function helloWorld() {
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange('A1').setValue('Hello from Apps Script!');
  SpreadsheetApp.getUi().alert('Script chay thanh cong!');
}

Nhấn nút Run (▶), cấp quyền khi được hỏi — ô A1 sẽ hiển thị dòng chữ "Hello from Apps Script!". Đơn giản vậy thôi — bạn vừa viết script đầu tiên.

2.3 Hiểu cấu trúc cơ bản

Apps Script sử dụng các service object chính:

  • SpreadsheetApp — Tương tác với Google Sheets (đọc/ghi cell, format, tạo sheet mới)
  • GmailApp — Gửi/đọc email, quản lý label, tìm kiếm email
  • DriveApp — Quản lý file trên Google Drive, tạo folder, di chuyển file
  • UrlFetchApp — Gọi API bên ngoài (REST API), gửi HTTP request
  • CalendarApp — Tạo sự kiện, đặt lịch nhắc nhở, đồng bộ lịch

3. 7 Kịch Bản Tự Động Hóa Phổ Biến Nhất

Kịch bản 1: Tự động gửi email báo cáo doanh thu hàng ngày

function guiBaoCaoDoanhThu() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DoanhThu');
  var today = new Date();
  var tongDoanhThu = sheet.getRange('B2:B').getValues()
    .flat().filter(v => v !== '').reduce((a, b) => a + b, 0);
  
  var htmlBody = '<h2>Bao Cao Doanh Thu - ' + today.toLocaleDateString('vi-VN') + '</h2>'
    + '<p>Tong doanh thu hom nay: <strong>' + tongDoanhThu.toLocaleString('vi-VN') + ' VND</strong></p>';
  
  GmailApp.sendEmail('chuquan@gmail.com', 'Bao Cao Doanh Thu ' + today.toLocaleDateString('vi-VN'), '', {
    htmlBody: htmlBody
  });
}

Đặt trigger chạy mỗi ngày lúc 22:00 — chủ quán nhận email tổng kết tự động mà không cần nhân viên báo cáo.

Kịch bản 2: Cảnh báo tồn kho thấp qua email/Telegram

function canhBaoTonKho() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('TonKho');
  var data = sheet.getDataRange().getValues();
  var canhBao = [];
  
  for (var i = 1; i < data.length; i++) {
    var tenSP = data[i][0];
    var soLuong = data[i][1];
    var mucToiThieu = data[i][2];
    if (soLuong <= mucToiThieu) {
      canhBao.push(tenSP + ': con ' + soLuong + ' (toi thieu: ' + mucToiThieu + ')');
    }
  }
  
  if (canhBao.length > 0) {
    GmailApp.sendEmail('quanly@gmail.com', 'CANH BAO: Ton kho thap',
      'Cac san pham can nhap them:\n\n' + canhBao.join('\n'));
  }
}

Kịch bản 3: Tự động lấy dữ liệu từ Google Forms vào sheet tổng hợp

Khi khách hàng điền Google Forms (đặt hàng, phản hồi, đăng ký), Apps Script tự động xử lý dữ liệu: phân loại, gán nhãn, gửi email xác nhận, và cập nhật vào sheet tổng hợp theo đúng format bạn muốn.

Kịch bản 4: Tạo hóa đơn PDF tự động từ Google Sheets

Kết hợp Apps Script + Google Docs template: script đọc dữ liệu đơn hàng từ sheet, điền vào template hóa đơn, xuất PDF và gửi cho khách qua email — tất cả tự động chỉ bằng 1 nút bấm.

Kịch bản 5: Đồng bộ dữ liệu giữa nhiều Google Sheets

Doanh nghiệp có nhiều chi nhánh, mỗi chi nhánh quản lý trên sheet riêng? Apps Script tự động tổng hợp dữ liệu từ tất cả sheet vào sheet trung tâm — cập nhật mỗi giờ hoặc realtime.

Kịch bản 6: Làm sạch và chuẩn hóa dữ liệu hàng loạt

function lamSachDuLieu() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getDataRange();
  var values = range.getValues();
  
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (typeof values[i][j] === 'string') {
        values[i][j] = values[i][j].trim()
          .replace(/\s+/g, ' ')
          .replace(/^\s+|\s+$/g, '');
      }
    }
  }
  range.setValues(values);
  SpreadsheetApp.getUi().alert('Da lam sach ' + values.length + ' dong du lieu!');
}

Kịch bản 7: Dashboard tự cập nhật với biểu đồ động

Tạo sheet Dashboard riêng, dùng Apps Script cập nhật dữ liệu và refresh biểu đồ mỗi 15 phút. Chủ doanh nghiệp mở Google Sheets trên điện thoại là thấy ngay tình hình kinh doanh realtime.

Nếu bạn quan tâm đến quản lý bán hàng chuyên sâu hơn, tham khảo Top 10 phần mềm quản lý bán hàng cho SME 2026.

4. Kết Nối API Bên Ngoài Từ Google Sheets

Đây là tính năng mạnh nhất của Apps Script — biến Google Sheets thành trung tâm dữ liệu kết nối mọi nền tảng:

function layTyGiaUSD() {
  var url = 'https://api.exchangerate-api.com/v4/latest/USD';
  var response = UrlFetchApp.fetch(url);
  var data = JSON.parse(response.getContentText());
  var tyGia = data.rates.VND;
  
  var sheet = SpreadsheetApp.getActiveSheet();
  sheet.getRange('A1').setValue('Ty gia USD/VND');
  sheet.getRange('B1').setValue(tyGia);
  sheet.getRange('C1').setValue(new Date());
}

Ứng dụng thực tế: lấy giá sản phẩm từ Shopee API, đồng bộ đơn hàng từ WooCommerce, lấy dữ liệu quảng cáo từ Facebook Ads API, cập nhật tỷ giá ngoại tệ tự động.

Lưu ý quan trọng:

Google Apps Script có giới hạn: 6 phút/lần chạy script, 20.000 lần gọi UrlFetch/ngày (tài khoản miễn phí). Với nhu cầu lớn hơn, nâng cấp lên Google Workspace hoặc sử dụng giải pháp SheetStore tích hợp sẵn.

5. Trigger Tự Động: Chạy Script Theo Lịch

Trigger là cơ chế giúp script chạy tự động mà không cần bạn mở Google Sheets. Có 3 loại trigger chính:

Time-driven trigger

Chạy theo lịch: mỗi phút, mỗi giờ, mỗi ngày, mỗi tuần, mỗi tháng. Phù hợp báo cáo định kỳ, đồng bộ dữ liệu.

Event-driven trigger

Chạy khi có sự kiện: mở sheet, chỉnh sửa cell, submit form. Phù hợp validation dữ liệu, notification.

Installable trigger

Tự tạo bằng code, linh hoạt hơn — có thể chạy dưới quyền user cụ thể và truy cập nhiều service hơn.

function taoTriggerHangNgay() {
  ScriptApp.newTrigger('guiBaoCaoDoanhThu')
    .timeBased()
    .atHour(22)
    .everyDays(1)
    .create();
  
  Logger.log('Da tao trigger chay luc 22:00 hang ngay');
}

6. Bảo Mật Và Tối Ưu Hiệu Suất

6.1 Bảo mật

  • Không hardcode mật khẩu/API key trong code: Dùng PropertiesService lưu trữ an toàn
  • Cấp quyền tối thiểu: Chỉ yêu cầu scope cần thiết, tránh full access không cần thiết
  • Review quyền script định kỳ: Vào Google Account → Security → Third-party apps
  • Dùng OAuth2 cho API bên thứ ba: Library OAuth2 chính thức của Google

6.2 Tối ưu hiệu suất

  • Batch operations: Dùng getValues() / setValues() thay vì đọc/ghi từng cell — nhanh gấp 10-50 lần
  • Cache dữ liệu: Dùng CacheService cho dữ liệu ít thay đổi — giảm thời gian chạy 80%
  • Giới hạn range: Chỉ đọc vùng dữ liệu cần thiết, không dùng getDataRange() cho sheet lớn
  • Try-catch cho API calls: Xử lý lỗi gracefully — tránh script dừng giữa chừng
// SAI - cham 50 lan
for (var i = 1; i <= 50; i++) {
  sheet.getRange(i, 1).setValue('Data ' + i);  // 50 lan ghi rieng le
}

// DUNG - nhanh gap 50 lan
var data = [];
for (var i = 1; i <= 50; i++) {
  data.push(['Data ' + i]);
}
sheet.getRange(1, 1, 50, 1).setValues(data);  // 1 lan ghi duy nhat

7. SheetStore + Apps Script: Giải Pháp Tự Động Hóa Toàn Diện

Nếu bạn muốn tận dụng sức mạnh Apps Script nhưng không có thời gian tự viết code, SheetStore cung cấp giải pháp trọn gói:

  • Script có sẵn: Hơn 50+ script tự động hóa phổ biến — báo cáo, cảnh báo kho, gửi email, đồng bộ dữ liệu
  • Dashboard tùy chỉnh: Mẫu dashboard doanh thu, kho, nhân sự — kéo thả không cần code
  • Hỗ trợ viết script riêng: Đội ngũ kỹ thuật SheetStore hỗ trợ viết Apps Script theo yêu cầu riêng của doanh nghiệp
  • Tích hợp API sẵn: Kết nối Shopee, Lazada, Tiki, ZNS Zalo, ngân hàng — không cần cấu hình thủ công

Tự Động Hóa Google Sheets Với SheetStore

Từ 699.000đ/tháng — hơn 50 script có sẵn, hỗ trợ viết script riêng theo yêu cầu

8. Câu Hỏi Thường Gặp (FAQ)

Google Apps Script có miễn phí không?

Có — Apps Script hoàn toàn miễn phí với tài khoản Google cá nhân. Tài khoản Google Workspace có giới hạn cao hơn (thời gian chạy script, số trigger) nhưng bản miễn phí đã đủ cho hầu hết doanh nghiệp nhỏ.

Không biết lập trình có học Apps Script được không?

Được — Apps Script dùng JavaScript cơ bản, cú pháp đơn giản. Người không có kiến thức lập trình có thể học trong 1-2 tuần qua tài liệu chính thức của Google và các video YouTube tiếng Việt. Bắt đầu từ macro recorder (không cần viết code) rồi nâng dần lên.

Apps Script có thay thế được phần mềm quản lý bán hàng không?

Apps Script giúp tự động hóa nhiều quy trình nhưng không thay thế hoàn toàn phần mềm chuyên dụng. Giải pháp tối ưu là kết hợp: dùng SheetStore làm nền tảng quản lý + Apps Script bổ sung tự động hóa theo yêu cầu riêng.

Script bị lỗi giữa chừng thì dữ liệu có mất không?

Google Sheets tự động lưu mọi thay đổi. Nếu script lỗi, các thay đổi đã thực hiện trước lỗi vẫn giữ nguyên. Dùng try-catch để xử lý lỗi gracefully và log error vào sheet riêng để debug.

Giới hạn của Google Apps Script là gì?

Giới hạn chính: mỗi lần chạy tối đa 6 phút (tài khoản miễn phí) hoặc 30 phút (Workspace), 20.000 lần gọi UrlFetch/ngày, 100 email/ngày. Với dữ liệu trên 50.000 dòng, nên tách nhiều sheet hoặc dùng BigQuery.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Bạn thấy bài viết hữu ích?

Đăng ký nhận thông báo khi có bài viết mới.

Nhận thông báo khi có bài viết mới. Không spam, hứa luôn! 😊

Bình luận (0)

Vui lòng đăng nhập để tham gia thảo luận