
Công thức chung
=XLOOKUP(neworder,oldorder,XLOOKUP(val,lookup,results))
Tóm lược
XLOOKUP có thể được sử dụng để sắp xếp lại các cột, bằng cách lồng một XLOOKUP vào trong một XLOOKUP khác. Trong ví dụ được hiển thị, Công thức trong G9 là:
=XLOOKUP(G8:J8,B4:E4,XLOOKUP(G5,E5:E15,B5:E15))
Giá trị này trả về giá trị khớp trong G5, với tất cả 4 trường trong một chuỗi khác.
Giải trình
Công thức này sử dụng XLOOKUP hai lần, bằng cách lồng một XLOOKUP bên trong một XLOOKUP khác. XLOOKUP đầu tiên (bên trong) được sử dụng để thực hiện tra cứu đối sánh chính xác về giá trị trong G5:
XLOOKUP(G5,E5:E15,B5:E15)
- Lookup_value đến từ ô G5
- Lookup_array là E5: E15 (mã)
- Return_array là B5: E15 (tất cả các trường)
- Match_mode không được cung cấp và mặc định là 1 (khớp chính xác)
- Chế độ tìm kiếm không được cung cấp và mặc định là 1 (đầu tiên đến cuối cùng)
Kết quả là một kết quả phù hợp trên "AX-160", được trả về dưới dạng một mảng của tất cả bốn trường theo thứ tự ban đầu:
(160,130,60,"AX-160")
Kết quả này được gửi trực tiếp đến XLOOKUP thứ hai (bên ngoài) làm đối số mảng trả về. Giá trị tra cứu được cung cấp dưới dạng phạm vi đại diện cho thứ tự mới của các trường và mảng tra cứu là phạm vi chứa thứ tự tên trường ban đầu.
=XLOOKUP(G8:J8,B4:E4,(160,130,60,"AX-160"))
- Lookup_value là phạm vi G8: J8 (thứ tự trường mới)
- Lookup_array là phạm vi B4: E4 (thứ tự trường cũ)
- Return_array là kết quả từ XLOOKUP đầu tiên
Đây là một chút khó khăn. Chúng tôi đang chuyển nhiều giá trị tra cứu, vì vậy XLOOKUP nội bộ sẽ tính toán nhiều vị trí khớp. Đối với mỗi giá trị trong phạm vi thứ tự trường mới, XLOOKUP sẽ tìm một vị trí bên trong phạm vi thứ tự trường cũ và sử dụng vị trí này để tìm nạp một giá trị từ mảng trả về (các giá trị được trả về bởi hàm XLOOKUP đầu tiên). Kết quả là kết quả tra cứu ban đầu với các trường được sắp xếp theo thứ tự mới.