Hướng dẫn

Liên Kết Dữ Liệu Giữa Các File Google Sheets Khác Nhau [2026]

Tuân HoangTuân Hoang
14 tháng 8, 2026
Cập nhật: 20 tháng 8, 2026
8 phút đọc
Ảnh minh họa bài viết: Liên Kết Dữ Liệu Giữa Các File Google Sheets Khác Nhau [2026]

IMPORTREINGE và IMPORTRANGE: hai cách liên kết dữ liệu khác nhau

Khi cần lấy dữ liệu từ một file Google Sheets khác, đa số người dùng chỉ biết đến IMPORTRANGE. Nhưng thực tế có hai tình huống hoàn toàn khác nhau: liên kết giữa các sheet trong cùng một file (dùng dấu ! đơn giản) và liên kết giữa hai file (workbook) riêng biệt (bắt buộc dùng IMPORTRANGE). Nhầm lẫn giữa hai khái niệm này là lý do phổ biến nhất khiến công thức báo lỗi #REF! hoặc #N/A.

Trong cùng một file, bạn chỉ cần viết ='Tên Sheet'!A1 để tham chiếu ô A1 của sheet khác. Nhưng khi dữ liệu nằm ở một file Google Sheets khác — ví dụ file "Đơn hàng tháng 1" muốn kéo dữ liệu từ file "Danh sách khách hàng" — công thức thông thường không hoạt động vì Google Sheets coi đây là hai nguồn dữ liệu tách biệt, cần xin quyền truy cập rõ ràng.

Cú pháp IMPORTRANGE và cách lấy Sheet ID chính xác

Cú pháp chuẩn:

=IMPORTRANGE("URL_hoặc_ID_file_nguồn", "Tên Sheet!Vùng dữ liệu")

Ví dụ thực tế: bạn có file "Kho hàng 2026" chứa dữ liệu tồn kho, muốn kéo sang file "Báo cáo bán hàng":

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/edit", "TonKho!A1:F500")

Ba lưu ý khi lấy ID/URL file nguồn

  • Có thể dán nguyên URL đầy đủ hoặc chỉ phần ID (chuỗi ký tự giữa /d//edit trong đường link) — cả hai cách đều hoạt động như nhau.
  • Tên sheet có dấu cách hoặc ký tự đặc biệt cần đặt trong dấu nháy đơn: 'Danh sách 2026'!A1:D100.
  • Nếu chỉ ghi tên sheet mà không kèm vùng dữ liệu ("TonKho"), Google Sheets sẽ tự động lấy toàn bộ dữ liệu đang có trong sheet đó — tiện nhưng dễ kéo dư dữ liệu rác nếu sheet nguồn có định dạng thừa ở các hàng/cột trống.

Cấp quyền truy cập — bước 90% người dùng bị vướng lần đầu

Lần đầu tiên viết công thức IMPORTRANGE, ô sẽ hiển thị lỗi #REF! kèm dòng chữ "Cần cấp quyền truy cập". Đây không phải lỗi công thức — đó là cơ chế bảo mật của Google. Bạn cần:

  1. Nhấp vào ô chứa công thức, sẽ thấy nút "Cho phép truy cập" (Allow access) hiện ra ngay dưới ô hoặc trong hộp thoại.
  2. Nhấp "Cho phép truy cập" — chỉ cần làm một lần cho mỗi cặp file nguồn/đích, không phải làm lại mỗi khi thêm công thức mới trỏ đến cùng file đó.
  3. Tài khoản Google đang mở file đích phải có ít nhất quyền xem (Viewer) trên file nguồn. Nếu không, dù bấm "Cho phép" vẫn báo lỗi.

Vấn đề thường gặp trong công ty: người tạo công thức có quyền truy cập file nguồn, nhưng khi đồng nghiệp khác mở file đích, họ lại không có quyền trên file nguồn — dữ liệu hiển thị lỗi dù công thức đúng 100%. Giải pháp là chia sẻ file nguồn (ít nhất quyền Viewer) cho toàn bộ nhóm sẽ dùng file đích, hoặc đơn giản hơn là để cả hai file trong cùng một thư mục Google Drive dùng chung quyền truy cập.

Kết hợp IMPORTRANGE với VLOOKUP, QUERY và FILTER

Điểm mạnh thực sự của IMPORTRANGE không nằm ở việc kéo nguyên khối dữ liệu, mà ở việc lồng nó vào các hàm xử lý khác để chỉ lấy đúng phần cần thiết, tránh làm nặng file đích.

Lọc dữ liệu ngay khi import bằng QUERY

=QUERY(IMPORTRANGE("ID_file", "DonHang!A:F"), "SELECT Col1, Col3, Col5 WHERE Col5 > 1000000", 1)

Công thức này chỉ lấy các đơn hàng có giá trị trên 1 triệu đồng, thay vì tải cả nghìn dòng rồi lọc thủ công — giảm đáng kể độ trễ khi file nguồn có hàng chục nghìn dòng.

Tra cứu chéo file bằng VLOOKUP

=VLOOKUP(A2, IMPORTRANGE("ID_file_khach_hang", "KhachHang!A:D"), 3, FALSE)

Cách này hữu ích khi bạn quản lý danh sách khách hàng ở một file trung tâm, còn các file đơn hàng riêng lẻ (theo tháng, theo nhân viên sale) chỉ cần tra tên/SĐT khách mà không phải copy lại toàn bộ danh sách. Mô hình này khá giống cách xây hệ thống quản lý đơn hàng online với Google Sheets và Google Forms, nơi một file trung tâm đóng vai trò "cơ sở dữ liệu" cho nhiều file vệ tinh.

Gộp nhiều nguồn bằng FILTER

=FILTER(IMPORTRANGE("ID_file", "Sheet1!A:E"), IMPORTRANGE("ID_file", "Sheet1!C:C")="Đã thanh toán")

Lưu ý: mỗi lần gọi IMPORTRANGE trong cùng công thức sẽ tính là một lệnh gọi riêng, nên gộp thành biến trung gian (đặt trong một cột ẩn) nếu dùng lặp lại nhiều lần để tránh tải file nguồn nhiều lần không cần thiết.

Những lỗi thường gặp và cách khắc phục

Lỗi hiển thịNguyên nhânCách xử lý
#REF! kèm "Cần cấp quyền"Chưa cấp phép truy cập file nguồn lần đầuNhấp ô công thức, chọn "Cho phép truy cập"
#REF! liên tục dù đã cấp quyềnTài khoản đang mở file không có quyền Viewer trên file nguồnChia sẻ lại file nguồn cho đúng tài khoản/nhóm
#N/A hoặc dữ liệu trốngSai tên sheet, sai vùng dữ liệu, hoặc sheet nguồn đã bị đổi tênKiểm tra chính xác tên sheet (phân biệt hoa/thường, dấu cách)
Dữ liệu không tự cập nhậtFile nguồn thay đổi cấu trúc cột, hoặc quá nhiều công thức IMPORTRANGE gây trễ đồng bộDùng F5 làm mới, hoặc giảm số lượng IMPORTRANGE trỏ cùng một file
#ERROR! cú phápThiếu dấu nháy kép, sai vị trí dấu phẩyKiểm tra lại đúng thứ tự: URL trước, phạm vi sau, cách nhau bởi dấu phẩy

Một lỗi tinh vi hơn: nếu file nguồn bị xóa cột hoặc chèn thêm cột ở giữa vùng bạn đang tham chiếu, công thức IMPORTRANGE vẫn chạy nhưng dữ liệu bị lệch cột — ví dụ cột "Số lượng" bỗng hiển thị giá trị "Đơn giá". Nên khóa cấu trúc file nguồn (bảo vệ dải ô header) nếu nhiều người cùng chỉnh sửa.

Khi nào nên dùng IMPORTRANGE, khi nào nên gộp về một file

IMPORTRANGE rất tiện cho việc liên kết dữ liệu linh hoạt, nhưng không phải lúc nào cũng là lựa chọn tối ưu. Dưới đây là các tình huống nên cân nhắc:

  • Nên dùng IMPORTRANGE khi: nhiều phòng ban/chi nhánh quản lý file riêng nhưng cần tổng hợp về một nơi; cần giữ quyền truy cập phân tách (VD: sale chỉ thấy đơn hàng của mình, quản lý xem tổng hợp qua file trung tâm dùng IMPORTRANGE).
  • Nên gộp về một file (nhiều sheet) khi: dữ liệu liên quan chặt chẽ, cùng một nhóm nhỏ thao tác, và tốc độ đồng bộ quan trọng hơn việc phân quyền — vì tham chiếu nội bộ (Sheet2!A1) luôn nhanh và ổn định hơn IMPORTRANGE qua nhiều file.
  • Với các mô hình cần tính toán số liệu tổng hợp phức tạp như dự báo doanh thu bằng Google Sheets, việc gom dữ liệu về một file trung tâm qua IMPORTRANGE rồi mới xây công thức forecast sẽ dễ kiểm soát hơn so với việc tính toán rải rác trên nhiều file.

Một mẹo thực tế: nếu bạn đang dùng IMPORTRANGE để tổng hợp số liệu bán hàng từ nhiều file hóa đơn, có thể tham khảo thêm cách tính tổng một cột trong Google Sheets để xử lý dữ liệu sau khi đã import về, tránh việc SUM sai vùng do dữ liệu import có định dạng số khác với file gốc (lỗi phổ biến khi dữ liệu nguồn để dạng text).

Xây quy trình tự động hóa dựa trên liên kết dữ liệu đa file

Khi đã thành thạo IMPORTRANGE, bước tiếp theo nhiều doanh nghiệp SME hay làm là kết hợp với Google Apps Script để tự động hóa toàn bộ luồng dữ liệu thay vì chỉ đọc thủ công. Ví dụ: một file trung tâm dùng IMPORTRANGE gom số liệu từ các file chi nhánh, sau đó Apps Script quét dữ liệu mới và tự gửi báo cáo qua email — cách tiếp cận tương tự như trong bài tự động gửi email chúc mừng sinh nhật khách hàng bằng Google Apps Script, chỉ khác ở chỗ trigger là dữ liệu mới thay vì ngày sinh nhật.

Với các doanh nghiệp cần chuẩn hóa việc xuất hóa đơn từ dữ liệu đã tổng hợp qua IMPORTRANGE, một mẫu invoice template chuyên nghiệp trên Google Sheets có thể kéo trực tiếp thông tin khách hàng và đơn giá từ file dữ liệu trung tâm, giúp giảm thao tác nhập liệu thủ công và hạn chế sai sót khi copy-paste giữa các file. Tại SheetStore, nhiều mẫu quản lý dạng này đã được xây sẵn cơ chế liên kết dữ liệu theo mô hình file trung tâm — file vệ tinh, phù hợp cho SME muốn triển khai nhanh mà không phải tự mày mò cấu trúc IMPORTRANGE từ đầu.

Câu hỏi thường gặp

Làm sao để tham chiếu một ô từ file Google Sheets khác?

Dùng hàm IMPORTRANGE với cú pháp =IMPORTRANGE("URL_file_nguồn", "TênSheet!A1"). Lần đầu sử dụng, Sheets sẽ yêu cầu cấp quyền truy cập giữa hai file, bạn chỉ cần bấm 'Cho phép truy cập' để hoàn tất kết nối.

Tại sao IMPORTRANGE báo lỗi #REF! dù đã nhập đúng công thức?

Lỗi #REF! thường do chưa cấp quyền truy cập giữa hai file lần đầu, sai URL hoặc tên sheet, hoặc dữ liệu nguồn có khoảng trắng ẩn. Xóa công thức, nhập lại và chờ hộp thoại xin quyền xuất hiện để xử lý triệt để.

IMPORTRANGE có tự động cập nhật dữ liệu theo thời gian thực không?

Có, nhưng độ trễ vài giây đến vài phút tùy tải hệ thống Google. Với file lớn hoặc cần đồng bộ tức thời nhiều bảng, nên cân nhắc dùng Apps Script hoặc công cụ quản lý dữ liệu chuyên dụng để tối ưu tốc độ.

Có giới hạn số lượng file có thể liên kết bằng IMPORTRANGE không?

Không giới hạn cứng số file, nhưng mỗi công thức IMPORTRANGE tốn tài nguyên xử lý, dùng quá nhiều trong một file sẽ khiến Sheets chạy chậm. Nên gộp dữ liệu cần thiết vào một vùng trung gian thay vì gọi lặp lại nhiều lần.

Bạn muốn áp dụng ngay mà không phải tự xây từ đầu?

Khám phá các mẫu Google Sheets và phần mềm quản lý dựng sẵn cho doanh nghiệp Việt tại SheetStore Marketplace.

Chia sẻ bài viết:

Tuân Hoang

Tuân Hoang

Đội ngũ SheetStore

Google SheetsGoogle Apps ScriptCRMAutomationPhần mềm quản lý doanh nghiệp

Google Workspace Certified, 5+ years experience

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