Cách Lấy Giá Trị Từ Sheet Khác Trong Excel

Giới thiệu

Microsoft Excel là một công cụ tính toán, phân tích dữ liệu và báo cáo được sử dụng rộng rãi trong mọi lĩnh vực, từ kế toán, tài chính, marketing, đến khoa học dữ liệu và quản lý dự án. Một trong những tính năng mạnh mẽ nhất của Excel là khả năng làm việc với nhiều sheet (bảng tính) trong cùng một workbook. Khi dữ liệu đượcampo phân tán trên nhiều sheet, việc truy xuất giá trị từ sheet khác trở thành một kỹ năng thiết yếu để tạo ra curves, báo cáo tổng hợp, hay thực hiện các phép tính phức tạp.

Trong bài viết này, chúng ta sẽ đi sâu vào cách lấy giá trị từ sheet khác trong Excel, bao gồm các phương pháp đơn giản nhất, sử dụng công thức tham chiếu, hàm INDIRECT, hàm VLOOKUP, hàm INDEX/MATCH, và các kỹ thuật nâng cao như lấy giá trị động, kết hợp nhiều sheet, và xử lý lỗi. Bài viết sẽ cung cấp ví dụ thực tế, giải thích chi tiết từng bước và đưa ra những lưu ý quan trọng để tránh lỗi phổ biến.

1. Tại sao cần lấy giá trị từ sheet khác?

Khi làm việc với một workbook lớn, dữ liệu thường được chia thành nhiều sheet để:

  • Tổ chức dữ liệu: Dữ liệu gốc (các bảng dữ liệu lớn) được giữ ở một sheet, trong khi các sheet khác chứa báo cáo, bảng thống kê hay dữ liệu phân tích.
  • Tăng tính bảo mật: Bạn có thể bảo vệ một số sheet (đặt mật khẩu) và chỉ cho phép truy cập dữ liệu cần thiết từ sheet khác.
  • Tối ưu tính năng tính toán: Tránh tính toán lặp lại bằng cách trích xuất dữ liệu duy nhất từ một sheet và dùng nó trong các phép tính khác.
  • Đảm bảo tính nhất quán: Khi dữ liệu gốc được cập nhật, các sheet khác tự động cập nhật theo, tránh việc nhập dữ liệu thủ công nhiều lần.

Vì vậy, hiểu và áp dụng đúng cách lấy giá trị từ sheet khác sẽ giúp bạn quản lý dữ liệu hiệu quả hơn, giảm thiểu sai sót và tăng tính linh hoạt trong việc lập báo cáo.

2. Cách tham chiếu sheet đơn giản nhất

2.1 Cú pháp tham chiếu

Cách cơ bản nhất để lấy giá trị từ một sheet khác là viết địa chỉ cell trực tiếp trong công thức. Cú pháp:

='Tên sheet'!Địa chỉ cell

Nếu tên sheet không chứa khoảng trắng hoặc ký tự đặc biệt, bạn không cần đặt dấu '. Nếu có, bạn phải đặt tên sheet trong dấu '.

Ví dụ:

  • Tên sheet: Bán hàng
  • Địa chỉ cell: B5

Công thức tham chiếu:

='Bán hàng'!B5

Nếu tên sheet không có khoảng trắng:

=BánHàng!B5

2.2 Ví dụ thực tế

Giả sử bạn có Workbook Dự án.xlsx với hai sheet:

  1. Dữ liệu – chứa bảng dữ liệu bán hàng.
  2. Báo cáo – nơi bạn muốn trích xuất giá trị.

Bạn muốn lấy giá trị từ ô C7 trong sheet Dữ liệu và hiển thị nó trong ô A2 của sheet Báo cáo.

  • Truy cập sheet Báo cáo.
  • Nhập công thức vào ô A2:
='Dữ liệu'!C7

Bây giờ, ô A2 sẽ hiển thị giá trị trong ô C7 của sheet Dữ liệu. Khi dữ liệu trong C7 thay đổi, A2 tự động cập nhật.

3. Sử dụng hàm INDIRECT để tham chiếu động

3.1 Khi nào cần dùng INDIRECT?

  • Khi tên sheet hoặc địa chỉ cell thay đổi tùy thuộc vào dữ liệu người dùng nhập.
  • Khi bạn muốn tạo một công thức mà có thể tham chiếu đến nhiều sheet dựa vào một giá trị được nhập vào một ô.

3.2 Cú pháp cơ bản

INDIRECT("Tên sheet!Địa chỉ cell")

Hàm INDIRECT sẽ chuyển chuỗi ký tự thành tham chiếu thực tế. Vì vậy, bạn có thể xây dựng chuỗi động.

3.3 Ví dụ

Giả sử bạn có một sheet ChọnSheet với ô A1 chứa tên sheet mà bạn muốn tham chiếu (ví dụ: Dữ liệu). Bạn muốn lấy giá trị từ ô B3 trong sheet được chỉ định trong A1.

Công thức trong ô B1:

=INDIRECT("'" & A1 & "'!B3")

Giải thích:

  • A1 chứa tên sheet.
  • ' & A1 & '!B3 tạo chuỗi 'Tên sheet'!B3.
  • INDIRECT chuyển chuỗi thành tham chiếu và trả về giá trị.

Khi bạn thay đổi giá trị trong A1 thành Bán Hàng, công thức sẽ tự động lấy giá trị từ B3 của sheet Bán Hàng.

3.4 Lưu ý

  • Hàm INDIRECT không cập nhật khi sheet được đổi tên. Nếu bạn đổi tên sheet, công thức sẽ lỗi #REF!.
  • INDIRECT là hàm không tính toán động (volatile). Nó sẽ bị tính toán lại mỗi khi workbook được làm mới, có thể làm chậm hiệu suất nếu sử dụng quá nhiều.

4. Truy xuất dữ liệu bằng hàm VLOOKUP và HLOOKUP

4.1 VLOOKUP trong sheet khác

VLOOKUP (Vertical Lookup) cho phép tìm kiếm một giá trị trong cột đầu tiên của bảng dữ liệu và trả về giá trị trong cột mà bạn chỉ định. Khi dữ liệu nằm trong sheet khác, bạn chỉ cần thêm tên sheet vào phạm vi.

Cú pháp:

VLOOKUP(giá trị cần tìm, 'Tên sheet'!Phạm vi, Số cột trả về, thứ tự chính xác)

Ví dụ: Tìm giá trị 123 trong cột A của sheet Dữ liệu và trả về giá trị tương ứng trong cột C.

Công thức:

=VLOOKUP(123, 'Dữ liệu'!A:C, 3, FALSE)

4.2 HLOOKUP

HLOOKUP (Horizontal Lookup) tương tự nhưng tìm kiếm theo hàng ngang. Cú pháp:

HLOOKUP(giá trị cần tìm, 'Tên sheet'!Phạm vi, Số hàng trả về, thứ tự chính xác)

Ví dụ:

=HLOOKUP("Tháng 1", 'Dữ liệu'!A1:Z20, 3, FALSE)

5. Bổ sung: INDEX và MATCH

5.1 Lợi ích của INDEX/MATCH

  • Độ chính xác cao: MATCH có thể tìm kiếm giá trị trong cột bất kỳ, không giới hạn bởi cột đầu tiên như VLOOKUP.
  • Tối ưu hiệu suất: Khi bảng dữ liệu lớn, INDEX/MATCH thường nhanh hơn VLOOKUP.
  • Dễ mở rộng: Thích hợp khi cần tìm kiếm theo nhiều tiêu chí.

5.2 Cách sử dụng

Giả sử bạn muốn tìm giá trị trong cột D của sheet Dữ liệu dựa trên giá trị Mã sản phẩm trong cột A.

Công thức:

=INDEX('Dữ liệu'!D:D, MATCH("Mã123", 'Dữ liệu'!A:A, 0))

Giải thích:

  • MATCH("Mã123", 'Dữ liệu'!A:A, 0) trả về số dòng Neighborhood của giá trị “Mã123” trong cột A.
  • INDEX('Dữ liệu'!D:D, ...) trả về giá trị trong cột D tại dòng tìm được.

5.3 Ví dụ nâng cao: Tìm kiếm theo nhiều tiêu chí

Để tìm kiếm theo nhiều tiêu chí, bạn có thể kết hợp INDEX và MATCH với (đánh dấu) và -- (double unary) trong Excel.

Ví dụ: Tìm giá trị trong cột E khi Mã sản phẩm = “Mã123” và Tháng = “Tháng 3”.

Công thức:

=INDEX('Dữ liệu'!E:E, MATCH(1, --('Dữ liệu'!A:A="Mã123") --('Dữ liệu'!B:B="Tháng 3"), 0))

Khi nhập công thức này, bạn cần nhấn Ctrl+Shift+Enter để trở thành công thức mảng (trong Excel 365 và 2026, công thức mảng được tự động hỗ trợ).

6. Kết hợp dữ liệu từ nhiều sheet

6.1 Tổng hợp dữ liệu bằng công thức SUMIF / SUMIFS

Giả sử bạn có các sheet Bán hàng 1, Bán hàng 2, Bán hàng 3(overാക്ക 3), và bạn muốn tổng hợp doanh thu từ cột E.

Công thức:

= MUST =SUM(SUMIF('Bán hàng 1'!A:A, "Doanh Thu", 'Bán hàng 1'!E:E), SUMIF('Bán hàng 2'!A:A, "Doanh Thu", 'Bán hàng 2'!E:E), SUMIF('Bán hàng 3'!A:A, "Doanh Thu", 'Bán hàng 3'!E:E))

Nếu bạn muốn tổng hợp một cách linh hoạt hơn, hãy tạo một sheet Tổng hợp và sử dụng INDIRECT để tham chiếu tới danh sách sheet.

6.2 Dùng công cụ Power Query

Cách Lấy Giá Trị Từ Sheet Khác Trong Excel
Cách Lấy Giá Trị Từ Sheet Khác Trong Excel

Power Query là một công cụ mạnh mẽOLVE để trích xuất, biến đổi và nạp dữ liệu (ETL). Bạn có thể:

  1. Mở Power Query Editor.
  2. Chọn “Get Data” > “From Workbook”.
  3. Chọn các sheet cần lấy dữ liệu.
  4. Kết hợp (Merge) các bảng dữ liệu vào một bảng duy nhất.
  5. Lưu và nạp vào Excel.

Power Query rất hữu ích khi bạn cần làm sạch dữ liệu, loại bỏ trùng lặp, hoặc tạo các bảng dữ liệu thô từ nhiều sheet.

6.3 Dùng hàm SUMPRODUCT

Nếu bạn muốn tính tổng các giá trị trên nhiều sheet mà không cần viết nhiều công thức, bạn có thể dùng SUMPRODUCT với INDIRECT.

Ví dụ: Tính tổng giá trị trong ô C5 асп trên các sheet A, B, C.

=SUMPRODUCT(INDIRECT("'" & {"A","B","C"} & "'!C5"))

Kết quả trả về tổng của ba giá trị.

7. Xử lý lỗi khi lấy giá trị từ sheet khác

7.1 Lỗi #REF!

  • Nguyên nhân: Sheet đã bị xóa, hoặc tham chiếu tới ô không tồn tại.
  • Giải pháp: Kiểm tra tên sheet, đảm bảo không có lỗi chính tả. Nếu tên sheet thay đổi (đổi tên), cập nhật lại công thức hoặc sử dụng hàm INDIRECT (nhưng nhớ rằng INDIRECT cần tên chính xác).

7.2 Lỗi #NAME?

  • Nguyên nhân تغییر: Nhập sai cú pháp, hoặc tên sheet chứa ký tự đặc biệt mà chưa đặt trong dấu '.
  • Giải pháp: Đặt tên sheet trong dấu ' khi có khoảng trắng hoặc ký tự đặc biệt.

7.3 Lỗi #VALUE! khi dùng INDIRECT

  • Nguyên nhân: Hàm INDIRECT không nhận được chuỗi hợp lệ (định dạng sai).
  • Giải pháp Places: Kiểm tra chuỗi trong công thức, đảm bảo có dấu ' và !.

7.4 Lỗi #N/A khi dùng VLOOKUP hoặc INDEX/MATCH

  • Nguyên nhân: Giá trị không tồn tại trong phạm vi tìm kiếm.
  • Giải pháp: Kiểm tra dữ liệu, sử dụng IFERROR để xử lý lỗi.

Ví dụ:

=IFERROR(VLOOKUP(123, 'Dữ liệu'!A:C, 3, FALSE), "Không tìm thấy")

8. Kỹ thuật nâng cao: Truy xuất dữ liệu động theo thời gian thực

8.1 Sử dụng hàm NOW, TODAY

Bạn muốn hiển thị giá trị ngày tháng hiện tại trong ווערט sheet khác? Bạn có thể dùng:

='Báo cáo'!NOW()

Tuy nhiên, NOW() và TODAY() là hàm volatile (tính toán lại mỗi lần làm mới workbook). Nếu bạn muốn giá trị cố định, hãy sao chép và dán giá trị (Ctrl+Shift+V).

8.2 Kết hợp với hàm OFFSET

OFFSET cho phép tham chiếu tới ô hoặc vùng dữ liệu dựa trên ô gốc và số dòng/ cột dịch chuyển. Khi lấy dữ liệu từ sheet khác, bạn có thể dùng:

=OFFSET('Dữ liệu'!A1冬, Db, Dc, 1, 1)

Trong đó Db và Dc là số dòng và cột dịch chuyển.

8.3 Tính toán dữ liệu theo ngày trong nhiều sheet

Giả sử bạn có sheet Bán hàng Jan, Bán hàng Feb, Bán hàng Mar… Bạn muốn tổng doanh thu trong tháng hiện tại mà không cần nhập tên sheet thủ công.

Công thức:

=SUMPRODUCT(INDIRECT("'" & TEXT(NOW(),"mmm") & "'!E:E"))

Giải thích:

  • TEXT(NOW(),"mmm") trả về chuỗi “Jan”, “Feb”, … tùy theo tháng hiện tại.
  • INDIRECT tạo tham chiếu tới sheet tương ứng.
  • SUMPRODUCT cộng dồn giá trị trong cột E.

9. Thực hành: Một ví dụ chi tiết

9.1 Mô tả bài toán

Bạn là quản lý dự án và có một workbook Dự án.xlsx gồm ba sheet:

  • Dữ liệu – chứa dữ liệu gốc: Mã dự án, Tên dự án, Ngày bắt đầu, Ngày kết thúc, Ngân sách.
  • Báo cáo celebra – nơi bạn muốn tính tổng ngân sách, số dự án, và thống kê dự án theo tháng.
  • Nghĩa vụ – một sheet riêng biệt mà bạn muốn trích xuất dữ liệu động.

Bạn cần thực hiện các bước sau:

  1. Lấy tổng ngân החs từ sheet Dữ liệu và hiển thị trong Báo cáo.
  2. Tính số dự án hiện có.
  3. Đưa ra thống kê dự án theo tháng (số dự án bắt đầu trong mỗi tháng).

9.2 Thực hiện

9.2.1 Tổng ngân sách

Trong ô B2 của sheet Báo cáo:

=SUM('Dữ liệu'!E:E)

Giải thích: E:E là cột ngân sách.

9.2.2 Số dự án

Trong ô B3:

=COUNTA('Dữ liệu'!A:A)-1

Giải thích: COUNTA đếm số ô có dữ liệu (không rỗng) trong cột A (Mã dự án). Trừ 1 để loại bỏ tiêu đề.

9.2.3 Thống kê dự án theo tháng

Giả sử cột D trong Dữ liệu chứa ngày bắt đầu, và ta muốn đếm số dự án bắt đầu trong mỗi tháng. Tạo bảng trong Báo cáoiegs:

ThángSố dự án
1
2
3
…

Trong ô C2 (đối với Tháng 1 werfen), nhập:

=COUNTIFS('Dữ liệu'!D:D, ">=" & DATE(YEAR(TODAY()), 1, 1), 'Dữ liệu'!D:D, "<=" & DATE(YEAR(TODAY()), 1, 31))

Kéo công thức xuống cho các tháng khác, thay đổi số tháng tương ứng.

9.3 Sử dụng INDIRECT để lấy dữ liệu từ sheet Nghĩa vụ

Nếu sheet Nghĩa vụ có tên được nhập vào ô A1 của sheet Báo cáo, và bạn muốn lấy giá trị từ ô B5 của sheet đó, nhập vào ô D2:

=INDIRECT("'" & A1 & "'!B5")

Nếu A1 chứa Nghĩa vụ, công thức sẽ trả về giá trị trong B5 của sheet Nghĩa vụ.

10. Lưu ý khi làm việc với workbook lớn

10.1 Hiệu suất

  • lovable: Tránh tạo quá nhiều công thức INDIRECT vì nó là volatile.
  • Optim: Dùng tham chiếu trực tiếp hoặc INDEX/MATCH khi có thể.
  • Thời gian tính: Khi workbook có hàng triệu ô, tính toán cóдів.

10.2 Bảo mật

  • Nếu dữ liệu nhạy cảm, hãy bảo vệ sheet (Review > Protect Sheet) và chỉ cho phép những ô cần thiết không bị khóa.
  • Khi dùng INDIRECT với tên sheet được nhập vào ô, hạn chế người dùng thay đổi nội dung ô đó để tránh lỗi.

10.3 Định dạng

  • Khi tham chiếu tới một ô có định dạng số, ngày, hoặc văn bản, hãy chắc chắn rằng công thức nhận dữ liệu đúng kiểu. Sử dụng TEXT, DATE, VALUE khi cần.

11. Kết luận

Lấy giá trị từ sheet khác trong Excel là một kỹ năng cốt lõi giúp bạn tận dụng tối đa tính năng của công cụ, tổ chức dữ liệu hợp lý và tự động hoá báo cáo. Bằng cách kết hợp các công thức cơ bản, hàm nâng cao, và công cụ ETL như Power Query, bạn có thể trích xuất, biến đổi và tổng hợp dữ liệu một cách chính xác và hiệuTO.

Nhớ làm quen với các phương pháp tham chiếu, kiểm tra lỗi thường gặp và tối ưu hiệu suất khi làm việc với workbook lớn. Khi đã hiểu và thực hành, việc lấy giá trị từ sheet khác sẽ trở thành công cụ vô giá trong công việc hàng ngày của bạn.

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận