2 Cách truy cập dữ liệu Google Sheets từ Power BI, Power Query hay Excel

Trong bài viết này, Thanh sẽ chia sẻ với các bạn 2 cách truy cập dữ liệu Google Sheets từ Power BI hoặc Excel sử dụng công cụ Power Query. Để làm được việc này, các bạn cần có sẵn tài khoản Google để có thể sử dụng được Google Sheets, máy tính của các bạn cần có sẵn Power Query trong Excel hoặc Power Query trong Power BI. Cách đầu tiên, chúng ta sẽ sử dụng tính năng Publish to Web của Google Sheets, cách thứ hai, chúng ta sẽ sử dụng kiến thức về Google Apps Script để làm cho việc chia sẻ dữ liệu từ Google Sheets tới Power Query có nhiều lựa chọn hơn.

Truy cập dữ liệu từ Google Sheets bằng cách sử dụng Publish to Web

Các bước thực hiện trong Google Sheets

Với cách làm này, chúng ta sẽ cần làm lần lượt các bước như sau:

Bước 1: Trong tài liệu Google Sheets của bạn, bấm File > Publish to the Web

Bước 2: Trong cửa sổ Publish to the Web, thiết lập lần lượt như hình minh họa:

  1. Chọn thẻ Link
  2. Chọn tên sheet bạn muốn chia sẻ dữ liệu
  3. Chọn Web Page hoặc csv hay tsv đều được
  4. Copy đường link Google cho ta
  5. Lựa chọn này nếu được kích hoạt thì những thay đổi bạn thực hiện trên dữ liệu cũng được tự động chia sẻ.

truy-cap-du-lieu-google-sheets-tu-power-bi-power-query

Các bước thực hiện trong Power Query

Ở trong Power Query trên Excel hoặc Power Bi, bạn đều chọn Menu lấy dữ liệu From Web

truy-cap-du-lieu-google-sheets-tu-power-bi-power-query-01

Sau đó, ở trong cửa số From Web, bạn sẽ dán URL đã chuẩn bị từ bước trước vào, rồi bấm OK

truy-cap-du-lieu-google-sheets-tu-power-bi-power-query-02

Ở cửa sổ Access Web Content, bạn chọn Connect

truy-cap-du-lieu-google-sheets-tu-power-bi-power-query-03

Nếu dữ liệu của bạn bị lỗi font chữ, hãy chọn encoding UTF-8 như hình bên dưới, sau đó bấm Transform Data để có thể xem lại dữ liệu 1 lần nữa
truy-cap-du-lieu-google-sheets-tu-power-bi-power-query-04

Sau đó, dữ liệu đã được load hoàn thiện về Power Query.

Truy cập dữ liệu từ Google Sheets bằng cách sử dụng Google Apps Script

Chuẩn bị phía bên Google Apps Script

Đầu tiên, chúng ta phải khởi động một đoạn Script mới từ Google Sheets bằng cách bấm vào Menu Tools > Script Editor

script editor trong google apps script

Sau đó, chúng ta sẽ viết 1 đoạn code để trả dữ liệu về cho Power Query như sau:

function doGet(e) {
  const data = SpreadsheetApp
                 .getActive()
                 .getSheetByName('data')
                 .getDataRange()
                 .getValues()
  
  return ContentService
           .createTextOutput(JSON.stringify(data))
           .setMimeType(ContentService.MimeType.JSON)
} 

Nếu bạn muốn học thêm về Google Apps Script và làm được nhiều ứng dụng thú vị, hãy tham khảo khóa học Google Apps Script cơ bản của mình. Đoạn script trên có nhiệm vụ lấy dữ liệu trong Sheet có tên “data” của chúng ta. Nếu bạn thực hành theo bài viết mà chưa có sheet có tên “data”, thì bạn cần thêm sheet này vào.

Deploy script

Để chúng ta có thể lấy được dữ liệu về Power Query, bạn cần phải deploy đoạn script này như hướng dẫn trong video sau đây:

YouTube video

Sự khác nhau giữa 2 cách này?

Rõ ràng, nếu chỉ là lấy dữ liệu từ Google Sheets về Power Query rồi load vào Excel hay Power BI, thì các bạn sẽ chọn cách đầu tiên. Vậy tại sao chúng ta lại có cách thứ hai? Bởi vì khi bạn muốn có được sự kiểm soát chặt chẽ hơn về dữ liệu, ví dụ: không phải ai biết đường link là cũng có thể truy cập dữ liệu chẳng hạn, chỉ như vậy thôi đã là một khác biệt lớn giữa các thứ hai và cách thứ nhất rồi. Hoặc bạn muốn kiểm soát việc load dữ liệu kỹ càng hơn, load dữ liệu ở sheets nào, load dữ liệu theo điều kiện nào, … Tất cả những vấn đề này sẽ được giải quyết khi bạn nắm vững được kiến thức về Google Apps Script và Power Query, hãy tham khảo 2 khóa học sau đây của Thanh:

Làm việc năng suất hơn, tự động hóa công việc với Google Apps Script

Trọn bộ Power Query nền tảng cho công việc báo cáo dữ liệu


Khóa học mới xuất bản