查找最後一次出現(倒置 VLOOKUP)

所有經典搜索和類型替換功能 VPR (VLOOKUP), GPR (查詢), 更多曝光 (匹配) 像他們這樣的人有一個重要的特點——他們從頭到尾搜索,即在源數據中從左到右或從上到下。 一旦找到第一個匹配的匹配項,搜索就會停止,只找到我們需要的元素的第一個匹配項。

如果我們需要找到的不是第一個,而是最後一個,該怎麼辦? 例如,客戶的最後一筆交易、最後一次付款、最近的訂單等?

方法 1:使用數組公式查找最後一行

如果原始表中沒有包含日期​​或行號的列(訂單、付款……),那麼我們的任務實際上是找到滿足給定條件的最後一行。 這可以通過以下數組公式來完成:

查找最後一次出現(倒置 VLOOKUP)

這裡:

  • 功能 IF (如果) 逐一檢查列中的所有單元格 客戶 如果包含我們需要的名稱,則顯示行號。 工作表上的行號由函數提供給我們 LINE (排),但是由於我們需要表中的行號,我們還必須減去 1,因為我們在表中有一個表頭。
  • 然後函數 最大 (最大) 從形成的行號集合中選擇最大值,即客戶端最近的行號。
  • 功能 INDEX (指數) 從任何其他必需的表格列返回具有找到的最後一個數字的單元格的內容 (訂購代碼).

所有這些都必須輸入為 數組公式, IE:

  • 在安裝了最新更新並支持動態數組的 Office 365 中,您只需按 Enter.
  • 在所有其他版本中,輸入公式後,您必須按鍵盤快捷鍵 按Ctrl+轉移+Enter,它將自動在公式欄中為其添加花括號。

方法 2:使用新的 LOOKUP 函數進行反向查找

我已經寫了一篇很長的文章,裡面有一個關於新功能的視頻 查看 (X查找),它出現在最新版本的 Office 中,以取代舊的 VLOOKUP (VLOOKUP). 在 BROWSE 的幫助下,我們的任務得到了相當基本的解決,因為。 對於此函數(與 VLOOKUP 不同),您可以顯式設置搜索方向:自上而下或自下而上 - 它的最後一個參數 (-1) 負責:

查找最後一次出現(倒置 VLOOKUP)

方法 3. 搜索日期最新的字符串

如果在源數據中我們有一列具有序列號或具有類似作用的日期,則修改任務——我們需要找到匹配的不是最後(最低)行,而是最新 (最大)日期。

我已經詳細討論瞭如何使用經典函數來做到這一點,現在讓我們嘗試使用新的動態數組函數的強大功能。 為了更加美觀和方便,我們還使用鍵盤快捷鍵將原始表格轉換為“智能”表格 按Ctrl+T 或命令 主頁 – 格式為表格 (首頁——表格格式).

在他們的幫助下,這對“殺手鐧”非常優雅地解決了我們的問題:

查找最後一次出現(倒置 VLOOKUP)

這裡:

  • 功能第一 過濾器 (篩選) 僅從我們的表中選擇列中的那些行 客戶 ——我們需要的名字。
  • 然後函數 年級 (種類) 按日期降序對選定的行進行排序,最近的交易位於頂部。
  • 功能 INDEX (指數) 提取第一行,即返回我們需要的最後一筆交易。
  • 最後,外部 FILTER 函數從結果中刪除額外的第 1 列和第 3 列(訂購代碼 и 客戶) 並且只留下日期和金額。 為此,使用了一個常量數組。 {0;1;0;1},定義我們想要(1)或不想要(0)顯示哪些列。

方法 4:在 Power Query 中查找最後一個匹配項

好吧,為了完整起見,讓我們看一下使用 Power Query 加載項的反向搜索問題的解決方案。 在她的幫助下,一切都很快得到了完美的解決。

1. 讓我們使用鍵盤快捷鍵將原始表格轉換為“智能”表格 按Ctrl+T 或命令 主頁 – 格式為表格 (首頁——表格格式).

2. 使用按鈕將其加載到 Power Query 從表/範圍 選項卡 數據 (數據——來自表/範圍).

3. 我們按日期的降序對錶進行排序(通過標題中過濾器的下拉列表),以便最近的交易排在最前面。

4… 在選項卡中 轉型 選擇一個團隊 通過...分組 (變換——分組依據) 並設置按客戶分組,並作為聚合功能,選擇選項 所有線路 (所有行). 您可以為新列命名任何您喜歡的名稱 - 例如 更多資訊.

查找最後一次出現(倒置 VLOOKUP)

分組後,我們將獲得客戶的唯一名稱列表,並在列中 更多資訊 – 包含每個事務的所有事務的表,其中第一行將是最新事務,這就是我們需要的:

查找最後一次出現(倒置 VLOOKUP)

5. 使用按鈕添加新的計算列 自定義列 選項卡 添加欄 (添加列 - 添加自定義列)並輸入以下公式:

查找最後一次出現(倒置 VLOOKUP)

這裡 更多資訊 – 這是我們從客戶那裡獲取表格的列,並且 0{} 是我們要提取的行號(Power Query 中的行編號從零開始)。 我們得到一個包含記錄的列(Record),其中每個條目是每個表的第一行:

查找最後一次出現(倒置 VLOOKUP)

仍然可以使用列標題中帶有雙箭頭的按鈕來擴展所有記錄的內容 最後一筆交易 選擇所需的列:

查找最後一次出現(倒置 VLOOKUP)

…然後刪除不再需要的列 更多資訊 通過右鍵單擊其標題 - 刪除列 (刪除列).

通過將結果上傳到工作表後 主頁 — 關閉並加載 — 關閉並加載 (首頁 - 關閉並加載 - 關閉並加載到...) 我們將得到一個包含最近交易列表的漂亮表格,正如我們想要的那樣:

查找最後一次出現(倒置 VLOOKUP)

更改源數據時,一定不要忘記通過右鍵單擊它們來更新結果——命令 更新並保存 (刷新) 或鍵盤快捷鍵 按Ctrl+其他+F5.


  • LOOKUP 函數是 VLOOKUP 的後代
  • 如何使用新的動態數組函數 SORT、FILTER 和 UNIC
  • 使用 LOOKUP 函數查找行或列中的最後一個非空白單元格

發表評論