câu trả lời Teylyn của làm việc rất lớn đối với tôi, nhưng tôi đã phải sửa đổi nó một chút để có được kết quả chính xác. Tôi muốn cung cấp một lời giải thích mở rộng cho bất cứ ai sẽ cần nó.
thiết lập của tôi là như sau:
- Sheet1: dữ liệu đầy đủ năm 2014
- Sheet2: hàng được cập nhật cho năm 2015 A1: D50, được sắp xếp theo cột đầu tiên
- Sheet3: sáp nhập hàng
- Dữ liệu của tôi không có hàng tiêu đề
Tôi đặt công thức sau vào ô A1 của trang tính3:
=iferror(vlookup(Sheet1!A$1;Sheet2!$A$1:$D$50;column(A1);false);Sheet1!A1)
Đọc như sau: Lấy giá trị của cột đầu tiên trong Sheet1 (dữ liệu cũ). Tra cứu trong Sheet2 (các hàng được cập nhật). Nếu có, xuất giá trị từ cột được chỉ ra trong Sheet2. Lỗi, xuất ra giá trị cho cột hiện tại của Sheet1.
Ghi chú:
Trong phiên bản của tôi về công thức, ";" được sử dụng làm dấu tách tham số thay vì ",". Đó là bởi vì tôi sống ở châu Âu và chúng tôi sử dụng dấu "," làm dấu phân cách thập phân. Thay đổi ";" quay lại "," nếu bạn sống ở một quốc gia có "." là dấu tách thập phân.
A $ 1: có nghĩa là luôn lấy cột 1 khi sao chép công thức vào ô trong cột khác. $ A $ 1 có nghĩa là: luôn lấy chính xác ô A1, ngay cả khi sao chép công thức sang một hàng hoặc cột khác.
Sau khi dán công thức trong A1, tôi mở rộng phạm vi sang cột B, C, v.v. cho đến khi đạt được chiều rộng toàn bộ bảng. Bởi vì $ -signs sử dụng, điều này mang lại công thức sau trong tế bào B1, C1, v.v .:
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(B1);FALSE);'Sheet1'!B1)
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(C1);FALSE);'Sheet1'!C1)
và vân vân. Lưu ý rằng tra cứu vẫn được thực hiện trong cột đầu tiên. Điều này là do VLOOKUP cần dữ liệu tra cứu được sắp xếp trên cột nơi tra cứu được thực hiện. Tuy nhiên, cột đầu ra là cột nơi công thức được dán.
Tiếp theo, chọn hình chữ nhật trong Bảng 3 bắt đầu từ A1 và có kích thước của dữ liệu trong Sheet1 (cùng số hàng và cột). Nhấn Ctrl-D để sao chép các công thức của hàng đầu tiên vào tất cả các ô đã chọn.
tế bào A2, A3, vv sẽ có được những công thức:
=IFERROR(VLOOKUP('Sheet1'!$A2;'Sheet2'!$A$1:$D$50;COLUMN(A2);FALSE);'Sheet1'!A2)
=IFERROR(VLOOKUP('Sheet1'!$A3;'Sheet2'!$A$1:$D$50;COLUMN(A3);FALSE);'Sheet1'!A3)
Bởi vì việc sử dụng $ -signs, khu vực tra cứu là không đổi, nhưng dữ liệu đầu vào được sử dụng từ hàng hiện tại.
chuyển đổi cả hai thành bảng và sử dụng các hàm so khớp và chỉ mục. –