Thật ra chưa có tài liệu nào nói về khái niệm này một cách chính tắc. Từ "động" ở đây bao hàm ý
nghĩa là sự tương ứng so với những thay đổi của nguồn dữ liệu được liên kết tới một Workbook bên
ngoài. Đây là phương thức liên kết với một Workbook thực sự tồn tại, được lưu trữ tại bất cứ ở đâu,
miễn sao khi cần cập nhật liên kết thì Workbook đó phải được mở.
Nghe có vẻ chẳng có tác dụng gì vì lấy thông tin từ một Workbook đang mở thì có nhất thiết phải
liên kết?
Câu trả lời là "Có"!
Một ứng dụng rất hữu ích mà mình vẫn đang làm đó là tạo ra mối liên kết giữa Workbook bảng cân
đối phát sinh (CDPS) với Workbook sổ nhật ký (SNK). Chúng ta hiểu mối quan hệ giữa 2
Workbook này: SNK được xem là Workbook nguồn (Workbook được liên kết) và CDPS là
Workbook liên kết. Vì rất nhiều lý do, sổ nhật ký thường bị di chuyển, đổi tên dẫn đến CDPS không
tìm đọc được số liệu từ SNK. Mặt khác SNK là bảng dữ liệu thường xuyên được mở để cập nhật
còn CDPS chỉ được mở khi có nhu cầu xem báo cáo. Việc tách biệt giữa số liệu và báo cáo sẽ cải
thiện đáng kể tốc độ cập nhật và tính toán trên SNK. Một lý do khác nữa khiến bạn có ý tưởng về
"liên kết động" là bạn muốn chỉ cần một CDPS để xem số phát sinh các tài khoản với nhiều kỳ khác
nhau, mỗi kỳ được tổ chức trên một Workbook nhật ký, có cấu trúc giống nhau. Nếu bạn cung cấp
cho liên kết biết bạn có ý định tham chiếu đến SNK nào thì liên kết đó thực sự có hiệu lực và đáp
ứng cho bạn theo tham số kỳ kế toán mà bạn đưa vào.
Có lẽ chúng ta không mất thời gian để xây dựng khái niệm "Liên kết động" là gì nữa. Hi vọng rằng
bạn đã hiểu được nhu cầu về việc liên kết với một Workbook bên ngoài mà nguồn dữ liệu đó không
cố định.
Bây giờ bạn sẽ hỏi: liên kết theo dạng đó như thế nào?
Nào, hãy định nghĩa một Name để thể hiện rằng chúng ta muốn liên kết đến các SNK của các kỳ:
năm 2004, 2005, 2006, 2007... được lưu trữ trong các Workbook: SNK_2004.xls, SNK_2005.xls,
SNK_2006.xls, SNK_2007.xls...
Chúng ta nhận thấy tham số ở đây là các kỳ kế toán và tham số này được truyền vào khi người dùng
lựa chọn kỳ kế toán (được thiết kế trên sheet). Giả sử Sheet1!$A$1 của Workbook hiện hành chứa
giá trị tham số kỳ kế toán, chúng ta sẽ có một Name:
SNK:= "SNK_" & Sheet1!$A$1 & ".xls"
Với Name này, bạn chưa thể tạo ra một bảng CDPS với những con số sống động. Một Name khác
sẽ cho phép bạn tham chiếu đến vùng dữ liệu NHATKY_Range trên SNK:
Như đã đề cập, bạn có thể "mượn" Name của một Workbook này để sử dụng cho một Workbook
khác: bảng danh mục khác hàng (KHACHHANG) có thể được sử dụng cho nhiều SNK mà bất cứ
một thông tin nào của khách hàng bị thay đổi thì thông tin ở tất cả các SNK được cập nhật theo.
Đây là ưu điểm chính giúp bạn quản lý dữ liệu trên Excel tập trung và đồng bộ hơn.
Kỹ thuật không có gì mới mẻ, bạn dễ dàng tạo ra liên kết giữa CDPS với SNK thông qua sử dụng
Name NHATKY_Range đã được định nghĩa trong Workbook nhật ký bằng việc sử dụng kết hợp
hàm INDIRECT. Công thức sau sẽ liên kết thông tin từ SNK sang CDPS ở mức Worksheet:
NHATKY_Range:= INDIRECT(SNK & "!NHATKY_Range" )
trong đó SNK là Name đã được định nghĩa như ở trên
Tất nhiên bạn có thể kết hợp để tham chiếu thẳng đến vùng dữ liệu NHATKY_Range trên sổ nhật
ký bằng công thức cải tiến trong reference to của name NHATKY_Range trên CDPS như sau:
NHATKY_Range:=INDIRECT("SNK_" & Sheet1!$A$1 & ".xls!NHATKY_Range")
Tuy vậy mình khuyến nghị các bạn nên sử dụng name SNK để thuận tiện cho việc bảo trì các tham
chiếu có sử dụng SNK sau này!
Công thức trên được diễn giải như sau: chúng ta cần tham chiếu đến Name SNK trong Workbook