Tra cứu bảng Excel với các chỉ mục trong nhiều cột


2

Tôi có một Bảng trong Excel trông giống như thế này:

Test1   100 test2   200
Test3   110 test4   210
Test5   120 test6   220

Tôi muốn một hàm, cho thử nghiệm 1 làm đầu vào, sẽ trả về 100 VÀ thử nghiệm đã cho 2 sẽ trả về 200

LOOKUP, (V / H) LOOKUP và INDEX đều nhấn mạnh vào một mảng liền kề duy nhất cho cột chỉ mục.


2
Bạn đang tìm kiếm một chức năng excel 'tiêu chuẩn', hay vba OK? Đề xuất đầu tiên của tôi sẽ là viết một hàm vba nhỏ sử dụng find để tìm ô 'testN' của bạn và trả cột 1 ô bên phải.
DaveParillo

1
Tôi khuyên bạn nên luôn luôn xem xét cấu trúc dữ liệu của mình. Có vẻ như bạn nên có một cột định danh kiểm tra và sau đó là cột với mỗi giá trị số được chỉ định của kiểm tra. Bất kỳ cách nào bạn có thể thay đổi cách tạo bảng của bạn? Có vẻ như sẽ làm việc tốt hơn là cố gắng chứa bảng hiện tại của bạn. Hoặc nhìn vào câu trả lời dưới đây tất nhiên.
mindless.panda

Rắc rối với vba là tôi chưa bao giờ sử dụng nó. Làm thế nào là khó để tích hợp với các chức năng được xây dựng?
Matthew Scouten 17/03/2016

Test2 có thể xuất hiện trong cột đầu tiên .. hoặc tất cả các giá trị tra cứu là duy nhất?
Đánh dấu Nold

Giá trị tra cứu phải là duy nhất.
Matthew Scouten

Câu trả lời:


1

Giả sử các giá trị bạn muốn trả về luôn là số Tôi nghĩ rằng điều này sẽ hoạt động:

=IFERROR(VLOOKUP(INPUTCELL,$A$1:$B$3,2,0),0)+IFERROR(VLOOKUP(INPUTCELL,$C$1:$D$3,2,0),0)

Điều này sẽ chỉ hoạt động trong Excel 2007, nhưng có thể được sửa đổi cho năm 2003. Có thể có một cách hấp dẫn hơn, nhưng đó là cách đầu tiên tôi nghĩ đến. Lưu ý rằng nếu 'Kiểm tra 1' ở cả hai cột, làm ví dụ, thì nó sẽ thêm cả hai giá trị tương ứng.


Câu trả lời cập nhật: Như các nhà bình luận khác đã đề xuất, tôi sẽ đánh giá lại bố cục của bảng tính của bạn. Giả sử bạn không thể thay đổi nó, giải pháp duy nhất có thể mở rộng mà tôi thấy là thông qua VBA. Tôi không phải là chuyên gia về VBA, vì vậy có nhiều cách hiệu quả hơn để mã hóa giải pháp này, nhưng đây là những gì tôi nhận được:

  1. Nhấn Alt + F11 để mở trình soạn thảo VBA.
  2. Từ trong trình soạn thảo VBA, nhấp vào Chèn> Mô-đun.
  3. Dán đoạn mã sau:
 Hàm công khai GetValue (rngSearch As Range, rngInput As Range) As Biến thể
      Dim cell As Biến thể
      Đối với mỗi ô trong rngSearch
        Nếu ô.Value = rngInput.Value Then
          GetValue = cell. Offerset (0, 1)
          Thoát cho
        Kết thúc nếu
      Kế tiếp
 Chức năng kết thúc

4 Để sử dụng loại chức năng "= GetValue (SearchRange, InputCell)" (sans trích dẫn) vào ô mong muốn với InputCell là ô có nội dung 'Kiểm tra 1', 'Kiểm tra 2', v.v. và SearchRange là khu vực bạn đang tìm kiếm trong.

Bạn sẽ cần phải bật macro để làm việc này.


Nếu đó thực sự là 2 cột sẽ hoạt động, nhưng dữ liệu thực tế có 12 hoặc hơn. một chút khó khăn.
Matthew Scouten 17/03

1

Nếu bạn sử dụng hàm IF () thì đó là một nhiệm vụ tầm thường để có được những gì bạn đang yêu cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.