
Để liên kết bảng Đơn hàng với bảng Khách hàng trong AppSheet, bạn đổi cột Khách hàng của bảng Đơn hàng sang kiểu Ref (tham chiếu) và chọn Source table là Khách hàng. Từ đó đơn hàng chọn khách bằng dropdown thay vì gõ tay, mở đơn nhảy được sang khách, và mở khách thấy mọi đơn của họ. Bài này hướng dẫn ref appsheet cho đúng trường hợp đó: bạn đã có hai bảng trong app «Bán hàng 5F» nhưng vẫn đang gõ tên khách vào từng đơn. Video bên dưới làm mẫu từng bước, còn bài viết này đủ chi tiết để đọc và làm theo mà không cần xem video.
Ref dùng để làm gì trong AppSheet?
Ref là kiểu cột cho phép một dòng trỏ tới một dòng của bảng khác. Theo tài liệu AppSheet, Ref phục vụ ba việc.
- Thể hiện quan hệ: đơn DH001 là của Cửa hàng Minh An.
- Lấy thông tin từ dòng liên quan: từ Chi tiết đơn lấy tên, ảnh, giá của sản phẩm.
- Điều hướng: từ một dòng chi tiết nhảy sang đơn, rồi sang khách.
Với app bán hàng, bộ Ref thường gồm năm quan hệ:
| Bảng chứa cột Ref | Trỏ tới bảng | Ý nghĩa |
|---|---|---|
| Đơn hàng | Khách hàng | Đơn này của khách nào |
| Đơn hàng | Nhân viên | Ai lên đơn |
| Chi tiết đơn | Đơn hàng | Dòng hàng thuộc đơn nào |
| Chi tiết đơn | Sản phẩm | Dòng hàng là sản phẩm nào |
| Khách hàng | Nhân viên | Nhân viên phụ trách khách |
Bài này chỉ đi sâu quan hệ Đơn hàng → Khách hàng; các quan hệ còn lại làm y hệt.

Ref lưu KEY của dòng được trỏ tới: lưu tên hay lưu mã?
Cột Ref luôn lưu giá trị key (khoá, giá trị định danh duy nhất của dòng) của dòng được trỏ tới, không lưu tên. Vì vậy ô Khách hàng trong sheet Đơn hàng phải chứa Mã KH như KH001, không phải «Cửa hàng Minh An». App vẫn hiện tên cho người dùng nhờ cột được chọn làm Label của bảng Khách hàng.
| Nơi xem | Giá trị ô Khách hàng của đơn DH001 |
|---|---|
| Trong Google Sheet | KH001 |
| Trong app | Cửa hàng Minh An (theo Label của bảng Khách hàng) |

Hệ quả thực tế: chọn key đúng là điều kiện trước. Nếu bảng Khách hàng chưa có mã ổn định, hãy làm bước đó trước (xem bài về key ở phần Xem thêm). Còn nếu các đơn cũ đang gõ tên, hãy đổi cả cột sang mã KH trước khi chuyển thành Ref; nếu không, dòng cũ sẽ không tìm thấy khách để trỏ tới và hiện trống hoặc lỗi.
AppSheet tự nhận cột Ref appsheet khi nào?
AppSheet thử đoán quan hệ lúc tạo app hoặc khi Regenerate (đọc lại cấu trúc bảng từ nguồn dữ liệu). Nếu tên cột gợi tới một bảng khác và các ô chứa giá trị key của bảng đó thì cột được gán Ref. Ví dụ trong tài liệu: bảng Customers có key là Name, cột Customer Name của bảng Orders được coi là Ref.
Đoán không phải lúc nào cũng đúng. Cột nào bị đoán sai hoặc không được đoán ra thì bạn tự thêm, như phần dưới.
Cách tạo cột Ref từng bước để liên kết bảng AppSheet
Có sáu bước để biến cột Khách hàng thành Ref:
- Đảm bảo sheet Đơn hàng có cột chứa Mã KH (ví dụ KH001).
- Nếu là cột mới thêm, bấm Regenerate schema để AppSheet nhận cột.
- Vào Data → Đơn hàng → cột Khách hàng.
- Đặt Type =
Ref. - Chọn Source table = Khách hàng.
- Bấm Done, rồi Save.
Trong Type Details còn có Input mode với ba lựa chọn Auto, Buttons, Dropdown: chọn Dropdown nếu danh sách khách dài. Mục Is a part of? dùng cho quan hệ cha – con kiểu Đơn hàng – Chi tiết đơn, bật khi bảng con thật sự thuộc về bảng cha.
Xong, mở form thêm đơn: ô Khách hàng giờ là danh sách chọn, người dùng không còn gõ tên sai chính tả hay trùng khách.

Reverse reference appsheet là gì và vì sao trang khách tự có danh sách đơn?
Reverse reference là cột ảo (virtual column) chiều ngược mà AppSheet tự sinh cho mỗi Ref. Khi Đơn hàng trỏ tới Khách hàng, bảng Khách hàng nhận thêm một cột như Related Đơn hàngs. Tên mặc định này đổi được, và có thể khác tuỳ tên bảng của bạn. Về cột ảo nói chung, bạn có thể đọc bài về virtual column trong AppSheet, trong đó nêu cả cái giá về tốc độ.
Công thức của cột này dùng REF_ROWS(); bên trong là một phép SELECT() phức tạp mà bạn không phải tự viết. Giá trị của cột là danh sách key của các đơn liên quan, ví dụ DH001, DH004 cho Cửa hàng Minh An. Ba công dụng chính:
- Điều hướng từ khách sang mọi đơn liên quan.
- Hiện đơn ngay dưới trang chi tiết của khách (inline view, dạng danh sách lồng).
- Tính tổng hợp, như số đơn hay tổng tiền đã mua của khách.

Bấm vào Ref thì app mở ra đâu: ref view
Khi bạn chọn một dòng hoặc sửa dòng, AppSheet không mở view trên menu mà mở «ref view», một view ẩn. Hệ thống tự sinh cho mỗi bảng: Khách hàng_Detail, Khách hàng_Form (nếu bảng cho thêm/sửa) và Đơn hàng_Inline (khi bảng có Ref, để hiện lồng trong bảng khác). Tên cụ thể phụ thuộc tên bảng.
Muốn đổi cách hiện dòng được trỏ tới, chẳng hạn hiện đơn của khách dạng biểu đồ, hãy tạo view mới với Position = ref. View bạn tự tạo được ưu tiên hơn view hệ thống. Chi tiết xem tại tài liệu về ref view.
Lấy thông tin qua Ref: dereference
Sau khi có Ref, bạn lấy cột của bảng kia bằng cú pháp dereference (truy cập qua tham chiếu): [Khách hàng].[Số điện thoại] trong bảng Đơn hàng, hay [Sản phẩm].[Giá bán] trong bảng Chi tiết đơn. Nhờ vậy sheet Đơn hàng không cần lưu lại số điện thoại của khách ở từng dòng; sửa ở bảng Khách hàng một lần là mọi đơn thấy số mới.
Reference trong AppSheet Database khác gì Ref với Google Sheet?
Về ý tưởng là một, khác ở cách thiết lập. Với Google Sheet, bạn tự chọn cột key rồi đặt Type = Ref trong app editor. Với AppSheet Database, mỗi dòng có sẵn Row ID làm key để nối bảng, và bạn thêm cột kiểu Reference ngay trong database editor.
| Điểm | Google Sheet | AppSheet Database |
|---|---|---|
| Key nối bảng | Cột bạn chọn (Mã KH…) | Row ID |
| Nơi tạo quan hệ | Data → cột → Type = Ref | Database editor, cột kiểu Reference |
| Chọn dòng được trỏ | Dropdown trong app | Bấm đúp ô để chọn dòng |
| Phạm vi | Bất kỳ bảng nào trong app | Chỉ trong cùng một database |
Một số lưu ý riêng khi dùng AppSheet Database, theo tài liệu AppSheet Database:
- Giá trị trong ô Reference hiện theo cột label của bảng được trỏ.
- Cột Lookup lấy thêm thông tin qua một Reference đã có, ví dụ Tỉnh/Thành của khách vào bảng Đơn hàng; vào app thì đổi thành kiểu của cột gốc.
- Thêm Reference sẽ tự cấp quyền đọc cho bảng được trỏ; xem và chỉnh ở Table-to-Table permissions.
- Nếu đổi key khác Row ID thì Reference cũ hỏng, và cột trong database không được để kiểu Reference nữa.
Muốn so sánh chung giữa hai kiểu nguồn dữ liệu, đọc AppSheet Database là gì.
Tóm tắt và bước tiếp theo
Ref lưu key chứ không lưu tên; tên hiện ra nhờ Label. Chuyển cột Khách hàng thành Ref bằng Type = Ref và Source table = Khách hàng, đổi dữ liệu cũ sang mã trước. Mỗi Ref tự sinh reverse reference để trang khách liệt kê đơn, và ref view quyết định bấm vào Ref thì mở gì. Nếu dữ liệu nằm trong AppSheet Database, hãy dùng Reference và Row ID.
Bạn tự làm thử theo thứ tự này: kiểm tra mã KH ở cả hai sheet, đổi cột Khách hàng thành Ref, thêm một đơn bằng dropdown, rồi mở trang khách xem mục Related. Nếu muốn học theo lộ trình có bài tập, các lớp AppSheet ở trang khoá học có phần dựng app bán hàng.
Xem thêm
- Key AppSheet: chọn khoá chính đúng và dùng UNIQUEID()
- AppSheet Database là gì? So sánh với Google Sheet làm dữ liệu
Tài liệu gốc của Google về Ref: Ref columns trong AppSheet.
Câu hỏi thường gặp
›Cột Ref trong AppSheet lưu tên hay mã?
Cột Ref luôn lưu giá trị key của dòng được trỏ tới, thường là mã như KH001, không lưu tên. App hiện tên cho người dùng nhờ cột Label của bảng được trỏ. Vì vậy khi chuyển cột đang gõ tên sang Ref, hãy đổi dữ liệu cũ sang mã trước.
›Làm sao để chọn khách hàng từ danh sách khi tạo đơn?
Vào Data → Đơn hàng → cột Khách hàng, đặt Type = Ref và Source table = Khách hàng, rồi Done và Save. Trong Type Details, chọn Input mode là Dropdown nếu muốn hiện dạng danh sách thả xuống. Khi thêm đơn, ô Khách hàng sẽ cho chọn từ bảng Khách hàng.
›Cột «Related …» trong bảng Khách hàng từ đâu ra?
Đó là reverse reference, một virtual column AppSheet tự sinh cho mỗi cột Ref, ví dụ Related Đơn hàngs. Giá trị là danh sách key các đơn liên quan, công thức dùng REF_ROWS(). Tên mặc định đổi được.
›Bấm vào một khách thì app mở view nào?
App mở ref view, một view ẩn do hệ thống tự sinh, thường là Khách hàng_Detail (tên phụ thuộc tên bảng). Nếu muốn đổi cách hiện, tạo view mới với Position = ref; view tự tạo được ưu tiên hơn view hệ thống.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



