Công thức Excel: Nối các bảng với INDEX và MATCH -

Mục lục

Công thức chung

=INDEX(data,MATCH(lookup,ids,0),2)

Tóm lược

Để nối hoặc hợp nhất các bảng có một id chung, bạn có thể sử dụng hàm INDEX và MATCH. Trong ví dụ được hiển thị, công thức trong E5 là:

=INDEX(data,MATCH($C5,ids,0),2)

trong đó "dữ liệu" là dải ô được đặt tên H5: J8 và "id" là dải ô được đặt tên H5: H8.

Giải trình

Công thức này kéo tên và trạng thái của khách hàng từ bảng khách hàng vào bảng đơn hàng. Hàm MATCH được sử dụng để định vị đúng khách hàng và hàm INDEX được sử dụng để lấy dữ liệu.

Truy xuất tên khách hàng

Làm việc từ trong ra ngoài, hàm MATCH được sử dụng để lấy một số hàng như sau:

MATCH($C5,ids,0)

  • Giá trị tra cứu đi kèm với id khách hàng trong C5, là một tham chiếu hỗn hợp, với cột bị khóa, do đó, công thức có thể dễ dàng sao chép.
  • Mảng tra cứu là id dải ô đã đặt tên (H5: H8), cột đầu tiên trong bảng khách hàng.
  • Loại đối sánh được đặt thành 0 để bắt buộc đối sánh chính xác.

Trong trường hợp này, hàm MATCH trả về 2, chuyển vào INDEX dưới dạng số hàng:

=INDEX(data,2,2)

Với số cột được mã hóa cứng là 2 (tên khách hàng nằm trong cột 2) và mảng được đặt thành phạm vi được đặt tên "dữ liệu" (H5: J8) INDEX trả về: Amy Chang.

Truy xuất trạng thái khách hàng

Công thức truy xuất trạng thái khách hàng gần như giống hệt nhau. Sự khác biệt duy nhất là số cột được mã hóa cứng là 3, vì thông tin trạng thái xuất hiện trong cột thứ 3:

=INDEX(data,MATCH($C5,ids,0),2) // get name =INDEX(data,MATCH($C5,ids,0),3) // get state

Kết hợp hai chiều động

Bằng cách thêm một hàm MATCH khác vào công thức, bạn có thể thiết lập đối sánh hai chiều động. Ví dụ: với dải ô được đặt tên là "tiêu đề" cho H4: J4, bạn có thể sử dụng công thức như sau:

=INDEX(data,MATCH($C5,ids,0),MATCH(E$4,headers,0))

Ở đây, một hàm MATCH thứ hai đã được thêm vào để lấy đúng số cột. MATCH sử dụng tiêu đề cột hiện tại trong bảng đầu tiên để định vị số cột chính xác trong bảng thứ hai và tự động trả về số này thành INDEX.

thú vị bài viết...