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.
Xem nhanh
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:
Ở trong Power Query trên Excel hoặc Power Bi, bạn đều chọn Menu lấy dữ liệu From Web
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
Ở cửa sổ Access Web Content, bạn chọn Connect
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
Sau đó, dữ liệu đã được load hoàn thiện về Power Query.
Đầ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
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.
Để 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:
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