Lấy dữ liệu từ bảng này sang bảng khác trong Excel từ A-Z
Lấy dữ liệu từ bảng này sang bảng khác trong Excel cùng trang tính, khác trang tính và bằng Power Query.
Contents
Lấy dữ liệu từ bảng này sang bảng khác trong Excel cùng trang tính
Để lấy dữ liệu từ bảng này sang bảng khác trong Excel ở cùng một trang tính, bạn có thể sử dụng một trong những hàm dưới đây. Bạn đừng quá lo lắng nếu thấy phần hướng dẫn sử dụng các hàm này khá dài nhé, tuy vậy khi áp dụng vào thực hành bạn sẽ thấy chúng không phức tạp lắm đâu.
Sử dụng hàm VLOOKUP
Đây là hàm được nhiều người ưu tiên khi cần lấy dữ liệu từ bảng này sang bảng khác trong Excel ở cùng một trang tính vì chỉ cần dựa vào một cột để làm tham số đối chiếu.
Công thức hàm Vlookup là: =VLOOKUP(value;table;col_index;[range_lookup])
Trong đó:
- value: là giá trị cần tìm để đối chiếu trong cột đầu tiên của bảng cần lấy giá trị.
- table: là bảng dùng để lấy dữ liệu.
- col_index: là vị trí số cột trong bảng cần lấy dữ liệu.
- range_lookup [tùy chọn có hoặc không]: nếu dùng TRUE đối chiếu sẽ là gần đúng, còn nếu dùng FALSE đối chiếu sẽ là chính xác.
Để lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng hàm Vlookup, hãy tưởng tượng rằng các cột trong bảng dữ liệu đều được đánh số từ trái qua phải.
Khi đó, để nhận giá trị từ một cột nào đó, hãy gán số thích hợp làm “chỉ mục cột”. Bạn có thể nhìn vào ví dụ bên dưới, chỉ mục cột để truy xuất ra tên nằm ở cột số 2 của bảng dữ liệu.
Kết quả khi lấy dữ liệu từ bảng này sang bảng khác trong Excel lúc này sẽ được giải thích cụ thể như dưới đây:
Ở bảng bên phải, khi bạn muốn lấy dữ liệu là tên từ người có mã ID là 622, thì hàm Vlookup sẽ dùng giá trị trong ô H3 là “622” để đem sang bảng bên trái (B4:E13), sau đó đối chiếu với cột đầu tiên của của bảng bên phải (cột ID), tìm đến hàng có giá trị trùng với “622” (chính là ô B8).
Sau khi đã xác định được hàng có chứa giá trị đối chiếu tương ứng rồi, theo kiểu so sánh chính xác, hàm Vlookup sẽ lấy dữ liệu từ cột thứ 2 trong bảng (chính là cột First) ở bên phải ô chứa giá trị 622 là “Jonathan”.
Phần Last và Email sẽ được truy xuất theo công thức tương tự như trên, nhưng cột lấy dữ liệu sẽ cần thay bằng cột 3 và cột 4 để cho tương ứng.
Một điều bạn cần chú ý là hàm Vlookup trong Excel cũng có một số hạn chế, đặc biệt là không thể kéo dữ liệu từ cột phía trái cột tra cứu, đồng thời số cột có thể sẽ bị thay đổi khi bạn thêm/xóa các cột trong bảng tra cứu đã sử dụng trong công thức Vlookup.
Bên cạnh đó, bạn chỉ cần thay đổi số trong phần đối số col_index là bạn đã có thể dễ dàng sắp xếp lại các cột được trả về rồi.
Sử dụng hàm HLOOKUP
Hàm Hlookup chuyên dùng để lấy dữ liệu từ bảng này sang bảng khác trong Excel đối với những bảng dữ liệu nằm ngang. Các bước thực hiện gần như tương tự với hàm Vlookup.
Công thức hàm Hlookup là: =HLOOKUP(value;table;row_index;[range_lookup])
Trong đó:
- value: là giá trị cần đối chiếu để lấy dữ liệu.
- table: là bảng dữ liệu cần truy xuất.
- row_index: là số hàng để lấy dữ liệu.
- range_lookup [tùy chọn có hoặc không]: giá trị TRUE hoặc FALSE tương ứng với đối chiếu gần đúng hoặc chính xác. Mặc định nếu bạn không nhập trường này thì sẽ là TRUE.
Do có nhiều đặc điểm tương ứng với Vlookup nên việc thực hiện lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng hàm Hlookup cũng có những hạn chế nhất định: bạn sẽ không thể kéo được hàng ở trên hàng đầu tiên của bảng dữ liệu, khi bạn xóa đi một hàng nào đó trong bảng trích xuất dữ liệu thì công thức của nó sẽ bị phá vỡ.
Sử dụng kết hợp hàm INDEX và hàm MATCH
Như bạn có thể thấy, cách lấy dữ liệu từ bảng này sang bảng khác trong Excel với hàm Vlookup và Hlookup có một số hạn chế nhất định nên không được linh hoạt. Do đó tốt nhất bạn nên sử dụng kết hợp hàm Index và Match để tiện lợi hơn trong quá trình sử dụng Excel.
Dưới đây là những hướng dẫn cụ thể cách sử dụng các công thức này để lấy dữ liệu từ bảng này sang bảng khác trong Excel và tra cứu từ phải qua trái (Vlookup không làm được điều này).
Tuy nhiên trước hết, hãy điểm qua về công thức và cách sử dụng của hai hàm này để hiểu rõ hơn về cách chúng “hoạt động”.
Hàm INDEX – Hàm trích xuất dữ liệu trong Excel
Trong Excel, hàm INDEX có chức năng trả về một giá trị trong một mảng, dựa trên số hàng và số cột mà bạn chỉ định.
Công thức của hàm INDEX: =INDEX(array,row_num,[column_num])
Trong đó:
- array: là một dải ô mà bạn muốn trả về giá trị.
- row_num: là số hàng trong mảng mà bạn muốn trả về một giá trị. Nếu bỏ qua row_num thì column_num là bắt buộc.
- column_num: số cột trong mảng mà bạn muốn trả về một giá trị. Nếu bỏ qua column_num thì row_num là bắt buộc.
Hãy cùng phân tích một ví dụ về công thức INDEX rất đơn giản sau đây: =INDEX(A1:C10,2,3)
Nhìn vào công thức này, ta thấy Index đang tìm kiếm trong các ô từ A1 đến C10 và trả về một giá trị của ô ở hàng thứ 2 và cột thứ 3 (tức là ô C2).
Với công thức này bạn có thể thấy việc ứng dụng hàm Index không quá khó. Tuy nhiên với lượng dữ liệu lớn thì việc xác định hàng và cột mong muốn lại trở nên phức tạp hơn. Khi đó bạn có thể sử dụng hàm Match.
Hàm MATCH – Hàm Lấy dữ liệu trong Excel
Trong Excel, hàm MATCH có chức năng tìm kiếm giá trị tra cứu trong một phạm vi ô, sau đó trả về vị trí tương đối của giá trị đó trong phạm vi.
Công thức hàm MATCH như sau: =MATCH(lookup_value,lookup_array,[match_type])
Trong đó:
- lookup_value: là số hoặc giá trị văn bản đang tìm kiếm.
- lookup_array: là một dải ô đang được tìm kiếm.
- match_type: chỉ định trả về một kết quả khớp chính xác hoặc một kết quả khớp gần nhất.
o 1 hoặc bị bỏ qua – tìm giá trị lớn nhất nhỏ hơn hoặc bằng giá trị tra cứu. Yêu cầu sắp xếp mảng tra cứu theo thứ tự tăng dần.
o 0 – tìm giá trị đầu tiên chính xác bằng giá trị tra cứu. Trong kết hợp INDEX / MATCH, hầu như bạn luôn cần một kết hợp chính xác, vì vậy bạn đặt đối số thứ ba của hàm MATCH thành 0.
o -1 – tìm giá trị nhỏ nhất lớn hơn hoặc bằng giá trị lookup_value. Bạn cần sắp xếp mảng tra cứu theo thứ tự giảm dần.
Ví dụ minh họa: nếu phạm vi B1: B3 chứa các giá trị “New-York”, “Paris”, “London”, công thức dưới đây sẽ trả về số 3, vì “London” là mục nhập thứ ba trong phạm vi:
=MATCH(“London”,B1:B3,0)
Khi nhìn vào công thức và ví dụ hàm Match, bạn có thể thắc mắc vì sao cần quan tâm đến vị trí của một giá trị trong một phạm vi? Thực ra những gì chúng ta cần tìm chính là giá trị của chính nó.
Chúng mình cần nhắc lại rằng vị trí tương đối của số hàng và số cột (hay chính là giá trị tra cứu) chính là những gì bạn cần cung cấp cho các đối số hàng và cột (row_num và column_num) của hàm Index.
Hàm Index có thể tìm được giá trị tại điểm nối của một hàng và một cột xác định, nhưng nó lại không thể tìm được chính xác hàng và cột bạn cần.
Cách kết hợp hàm Index và hàm Match
Vừa rồi bạn đã tìm hiểu những điều cơ bản nhất về hàm Index và Match. Tổng kết lại, hàm Index giúp tìm giá trị tra cứu theo số hàng và số cột, còn hàm Match thì giúp tìm ra các con số đó. Đó là những kiến thức bạn cần nắm được để lấy dữ liệu từ bảng này sang bảng khác trong Excel một cách nhanh chóng nhất.
Đối với việc tra cứu theo chiều dọc, chúng ta chỉ cần khai thác hàm match để tìm ra số hàng và cung cấp phạm vi cột trực tiếp cho hàm Index.
Cụ thể là: =INDEX(cột để trả về giá trị từ;MATCH(giá trị tra cứu;cột để tra cứu;0)
Ví dụ minh họa:
Trong bảng tính Excel có cho một danh sách thủ đô và dân số của các quốc gia.
Để tìm ra dân số của một thủ đô nào đó, ví dụ Japan, bạn chỉ cần sử dụng công thức:
=INDEX(C2:C10, MATCH(“Japan”, A2:A10, 0))
Giải thích công thức:
- Hàm Match tìm giá trị tra cứu là “Japan” trong phạm vi A2:A10 rồi sau đó trả về số 3, vì “Japan” đứng thứ ba trong mảng tra cứu A2:A10.
- Số hàng được chuyển trực tiếp đến đối số row_num của Index để hướng dẫn nó trả về giá trị từ hàng đó.
Như vậy, công thức trên biến thành một công thức đơn giản hơn là INDEX(C2:C10,3) cho biết tìm kiếm trong các ô từ C2 đến C10 và kéo giá trị từ ô thứ 3 trong phạm vi đó, tức là C4 do chúng ta bắt đầu đếm từ hàng thứ hai.
Ngoài ra, nếu bạn cần tra cứu dân số theo các thành phố mà không cần muốn thay đổi công thức? hãy nhập nó vào một ô, chẳng hạn như ô F1, sau đó hãy cung cấp tham chiếu ô cho Match để nhận được công thức tra cứu như sau:
=INDEX(C2:C10, MATCH(F1,A2:A10,0))
Chú ý quan trọng:
Số hàng trong đối số mảng của hàm Index cần đảm bảo phải khớp với số hàng trong đối số lookup_array của hàm Match. Nếu không khớp, công thức chắc chắn sẽ cho ra một kết quả không chính xác.
Tại đây chúng ta không nên sử dụng công thức của hàm Vlookup. Lý do là bởi theo kết quả nghiên cứu và thử nghiệm của hầu hết các chuyên gia Excel, việc sử dụng kết hợp hàm INDEX và MATCH hiệu quả hơn nhiều so với sử dụng hàm VLOOKUP.
Tuy vậy thực tế vẫn có nhiều người thích sử dụng hàm VLOOKUP hơn vì nó khá đơn giản hơn và không quá phức tạp như khi sử dụng công thức kết hợp INDEX MATCH trong Excel. Dù nếu biết rằng cách sử dụng kết hợp hai hàm này hữu ích hơn, vẫn rất ít người tình nguyện bỏ nhiều thời gian ra để học cách sử dụng.
Sau đây, chúng mình sẽ chỉ ra những ưu điểm chính của sự kết hợp MATCH INDEX so với chỉ sử dụng hàm VLOOKUP để bạn có cái nhìn rõ nét nhất. Tuy vậy, việc quyết định sử dụng cách dữ liệu từ bảng này sang bảng khác trong Excel nào vẫn hoàn toàn phụ thuộc vào bạn.
- Tra cứu từ phải sang trái
- Nếu thông thạo trong việc sử dụng các hàm Excel, bạn có thể nhận thấy không thể lấy dữ liệu sang bên trái với hàm VLOOKUP. Điều này có nghĩa là giá trị tra cứu của bạn bắt buộc phải nằm ở cột ngoài cùng bên trái của bảng thì mới sử dụng hàm VLOOKUP được.
- Với hàm kết hợp INDEX MATCH, bạn hoàn toàn có thể thực hiện tra cứu bên trái một cách đơn giản.
- Chèn hoặc xóa cột một cách an toàn
- Công thức VLOOKUP sẽ cung cấp một kết quả không chính xác/không đưa ra được kết quả khi một cột mới bị xóa đi hoặc được thêm vào bảng tra cứu. Lý do là vì cú pháp của hàm VLOOKUP yêu cầu phải chỉ định số chỉ mục của cột mà bạn muốn lấy dữ liệu từ đó.
- Với hàm kết hợp INDEX MATCH, bạn chỉ định phạm vi cột trả về chứ không phải là số chỉ mục. Vì vậy, bạn hoàn toàn có thể tự do chèn và xóa bao nhiêu cột tùy thích mà không cần bận tâm đến việc cập nhật các công thức liên quan.
- Không có giới hạn cho kích thước của giá trị tra cứu
- Với hàm Vlookup, tổng độ dài của tiêu chí tra cứu của bạn không được vượt quá 255 ký tự, nếu không bạn sẽ thấy hiện ra lỗi #VALUE! lỗi. Do đó nếu tập dữ liệu của bạn chứa các chuỗi dài thì hàm kết hợp INDEX MATCH chính là sự lựa chọn tối ưu nhất.
- Tốc độ xử lý cao hơn
- Nếu các bảng dữ liệu trong trang tính tương đối nhỏ thì hầu như không có bất kỳ sự khác biệt đáng kể nào về hiệu suất giữa hai cách này.
- Nhưng nếu trang tính có chứa dữ liệu lớn lên đến hàng trăm hoặc hàng nghìn hàng, tức là theo đó sẽ có hàng trăm hoặc hàng nghìn công thức, thì hàm kết hợp MATCH INDEX sẽ hoạt động hiệu quả hơn hàm VLOOKUP rất nhiều.
Ngoài ra, tác động của VLOOKUP đối với hiệu suất làm việc của Excel có thể cần chú ý nếu trang tính Excel của bạn có chứa các công thức mảng tương đối phức tạp như là VLOOKUP và SUM .
Tuy nhiên vấn đề là: việc kiểm tra từng giá trị trong mảng yêu cầu một lệnh gọi riêng của hàm VLOOKUP. Do đó, nếu mảng của bạn càng chứa nhiều giá trị và càng có nhiều công thức mảng trong sổ làm việc, thì Excel sẽ càng hoạt động kém hiệu quả.
Lấy dữ liệu từ bảng này sang bảng khác trong Excel khác trang tính
Trong một số trường hợp khi làm việc, một bảng tính Excel có thể gồm rất nhiều các trang tính khác nhau. Để lấy dữ liệu từ bảng này sang bảng khác trong Excel khác trang tính, bạn cần thực hiện một số thao tác hơn là áp dụng các công thức ở trên, cộng với sử dụng một hàm trích xuất dữ liệu trong Excel là ‘Tên trang tính’! kèm theo sau đó là địa chỉ dải ô bạn muốn lấy dữ liệu.
Ví dụ bạn có hai bảng nằm trong hai trang tính khác nhau. Bảng chính chứa tên người bán (Seller) và sản phẩm (Product), và bảng tra cứu chứa tên (Seller) và số tiền (Amount).
Nếu muốn lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng hàm, bạn có thể làm như dưới đây:
Như có thể thấy ở trên, thứ tự của các tên ở bảng chính là không tương ứng với thứ tự trong bảng tra cứu, vì vậy mà một thao tác sao chép và dán đơn giản sẽ không cho ra kết quả.
Do đó để kết hợp hai bảng theo một cột phù hợp là Seller, hãy nhập công thức dưới đây vào ô C2 trong bảng chính (Main table):
=VLOOKUP($A2,‘Lookup table’!$A$2:$B$10,2,FALSE)
Trong đó:
- $A2 chính là giá trị mà bạn cần tìm kiếm.
- ‘Lookup table’!$A$2:$B$10 chính là bảng để tìm kiếm.
- 2 chính là số cột mà từ đó bạn muốn lấy giá trị.
Khi sao chép công thức xuống cột, chúng ta sẽ nhận được một bảng kết quả đã hợp nhất bao gồm bảng chính và dữ liệu phù hợp với yêu cầu được lấy từ bảng tra cứu:
Như vậy là bạn đã tìm hiểu xong cách lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng các hàm rồi đấy.
Lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng Power Query
Trong một số trường hợp, bạn cần kết hợp hai hoặc nhiều bảng lại với nhau, nhưng chúng lại có số lượng hàng và cột khác nhau. Điều này nghe có vẻ rất rắc rối, nhưng đừng lo vì Power Query sẽ giúp bạn.
Tuy vậy chúng mình vẫn cần lưu ý với bạn rằng việc tham gia các bảng với Power Query không thể được thực hiện nhanh chóng và đơn giản chỉ với một vài thao tác. Dưới đây là tóm tắt các tính năng chính:
- Power Query có thể hợp nhất hai bảng trong Excel bằng cách khớp một hoặc một số cột.
- Các bảng nguồn hoàn toàn có thể nằm trên cùng/không cùng một trang tính.
- Chú ý không được thay đổi các bảng ban đầu. Dữ liệu được kết hợp thành một bảng mới có thể được nhập vào một trang tính hiện có hoặc một trang tính mới.
- Trong Excel 2016 và Excel 2019, Power Query vốn là một tính năng có sẵn. Tuy vậy trong Excel 2010 và Excel 2013, bạn có thể tải nó xuống dưới dạng bổ trợ.
Ví dụ minh họa:
Với nguồn dữ liệu này, nhiệm vụ của bạn là trích xuất dữ liệu ở bảng 1 với các bản ghi có liên quan từ hai bảng còn lại, sau đó kết hợp tất cả dữ liệu vào cùng một bảng mới như bên dưới.
Tạo kết nối Power Query
Để không làm lộn xộn các trang tính làm việc của bạn với quá nhiều các bản sao của bản gốc, chúng mình sẽ chuyển đổi chúng thành các kết nối và thực hiện phối trong Trình soạn thảo Power Query. Cuối cùng bạn chỉ cần tải bảng kết quả.
Để lưu bảng dưới dạng kết nối trong Power Query, hãy làm theo các bước sau:
- Chọn bảng đầu tiên của bạn Orders hoặc bất kỳ ô nào trong bảng đó.
- Chọn tab Data > chọn nhóm Get & Transform Data => chọn From Table/Range.
- Khi Power Query mở ra, nhấp chuột vào Close & Load (mũi tên thả xuống) và bấm chọn tùy chọn Close & Load… để mở hộp thoại mới.
- Trong hộp thoại Import Data được mở ra, bấm chọn tùy chọn Only Create Connection và bấm Ok.
Tiếp theo, đối với các thực thể khác mà bạn muốn hợp nhất, bạn chỉ cần lặp lại các bước trên (thêm hai bảng, Products và Commissions, trong trường hợp ví dụ trên).
Sau khi hoàn thành, bạn sẽ thấy tất cả các kết nối trên ngăn:
Hợp nhất hai kết nối vào một bảng
Dưới đây là hướng dẫn cách kết nối hai bảng thành một:
Trên tab Data, chọn Get Data => chọn Combine Queries trong danh sách được thả xuống => chọn Merge.
Tiếp theo, trong hộp thoại Phối, bạn cần:
- Chọn bảng đầu tiên (Đơn đặt hàng) từ menu thả xuống đầu tiên.
- Chọn bảng thứ 2 (Sản phẩm) từ menu thả xuống thứ hai.
- Ở cả hai bản xem trước, hãy nhấp chuột vào cột phù hợp (ID đơn hàng) để chọn cột đó.
- Trong danh sách Join Kind được thả xuống, để lại tùy chọn mặc định: Left Outer (all from first, matching from second).
- Cuối cùng bấm OK.
Sau khi kết thúc các bước trên, Power Query sẽ hiển thị bảng đầu tiên (Orders) với một cột bổ sung có tên như bảng thứ hai (Products) được thêm vào cuối. Cột bổ sung này khi đó chưa hề có bất kỳ giá trị nào, thay vào đó nó chỉ có từ “Table” trong tất cả các ô. Tuy vậy đừng lo lắng. Bạn vẫn đang làm đúng và chỉ cần một bước nữa để khắc phục điều này.
Chọn các cột cần thêm từ bảng thứ hai
Sau khi thực hiện chuẩn xác các bước trên, bạn sẽ có một bảng giống như bảng trong ảnh bên dưới đây. Để hoàn thành quá trình hợp nhất, hãy thực hiện thêm một số bước sau trong Power Query.
Trong cột đã thêm (Products), nhấp chuột vào mũi tên hai mặt trong phần tiêu đề.
Trong hộp thoại mở ra, hãy:
- Bỏ chọn tất cả các cột, rồi chỉ chọn (các) cột mà bạn muốn sao chép từ bảng thứ hai. Trong ví dụ này, chúng ta chỉ chọn cột Products vì thực thể đầu tiên đã có Seller và Order ID rồi.
- Sau đó, bỏ chọn hộp Use original column name as prefix.
- Nhấp OK.
Cuối cùng, bạn sẽ nhận được thành quả là một bảng mới chứa mọi bản ghi từ bảng đầu tiên của bạn và (các) cột bổ sung từ bảng thứ hai. Vậy là đã hoàn thành xong cách lấy dữ liệu từ bảng này sang bảng khác trong Excel bằng Power Query.
Nếu bạn chỉ muốn hợp nhất hai bảng, bạn chỉ cần tải bảng kết quả trong Excel về là xong.
Trên đây chúng mình đã giới thiệu đến bạn toàn bộ các cách lấy dữ liệu từ bảng này sang bảng khác trong Excel mà một người sử dụng Excel thành thạo nhất có thể biết. Dù lượng kiến thức là khá lớn nhưng vẫn rất đáng để bạn bỏ thời gian tìm hiểu và thực hành đấy. Cuối cùng, để cập nhật thêm nhiều thủ thuật hữu ích khác, đừng quên bấm theo dõi trang ngay nhé!
Microsoft Office -Cách khắc phục lỗi giãn chữ trong Word 2010 cần chưa đến 10s
Cách căn lề trong Excel chỉ với vài bước nhanh gọn
Cách in 2 mặt trong Excel ai cũng làm được
Chèn ảnh vào Excel nhanh chóng với 4 cách cực đơn giản
Cách tạo dấu mũi tên trong Word với 4 cách đơn giản nhất
Cách xóa Header and Footer trong 1 trang Word 2010 nhanh nhất
Cách chèn Symbol trong Word hữu ích ai cũng nên biết