簡體   English   中英

Excel VLOOKUP或INDEX MATCH

[英]Excel VLOOKUP or INDEX MATCH

假設我有3列數據

AMOUNT(A)  AMOUNT(B)     INVOICE(C)
55          49           4541
47          47           1515
42          47           4478
86          12           9993
12          100          1224
5           44           1452
            100          4287
            99           4444

我需要檢查以查看列A中的值是否與列B中的值匹配。如果匹配,它將從列D中的列C返回值。現在這很容易使用VLOOKUP然而我正在處理700多行,有多個匹配的金額。 INDEX(MATCH)可以工作但它只返回一個值。 這是VB唯一的問題嗎?

IE值47存在於B列兩次,因此D列將返回兩個發票號(1515 - 4478)

在VBA中,問題將是微不足道的,因為您已經使用問題語句本身正確描述了邏輯。

僅使用Excel功能,沒有VBA是一個有趣的問題。 您需要執行以下步驟才能獲得如下所示的輸出...

在此輸入圖像描述

步驟如下:

  1. 數據透視表:從列(B)(C)一個數據透視表,其中行字段為(B)(C) ,最小值為AMOUNT(B)為值字段。 (見下圖)
  2. 輔助列:在數據透視表的一側創建一個列,例如(Q) ,它與列(P)所有內容完全相同
  3. Contd ...:在列(R) (遺憾的是恰好位於工作表的列Q中,對不起那里的混淆),如圖所示,對於單元格Q20 ,例如放入公式中

    =IF(P21=P20,Q21&","&M20,M20)

  4. 這將導致創建類似下表的內容:

表:

(P) (Q)

12  9993
44  1452
47  4478,1515
47  4478
49  4541
99  4444
100 4287,1224
100 4287

現在努力工作已經完成。 您需要做的就是使用此輔助表(P)(Q) VLOOKUP鍵值對進行查找 - 它將非常快,因為數據透視表始終對其進行排序,因此不需要精確的LOOKUP - 下面顯示了數據透視表以及最終VLOOKUP公式的屏幕截圖

數據透視表和助手表:

在此輸入圖像描述

最終公式:

在此輸入圖像描述

所以我使用Countif來查看是否有基於A列的重復。在D列類型中, =IF(COUNTIF($A$2:$A$9,B2)>0,C2,"")

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM