如果您掌握了組合不同公式的竅門,Excel 函數會非常強大。原本看似不可能的事情會突然變得像孩子們的遊戲。
一個這樣的示例是在 Excel 的數據集中查找最接近值。
Excel 中有幾個有用的查找函數(例如 VLOOKUP 和 INDEX MATCH),它們可以在一些簡單的情況下找到最接近的值(如下面的示例所示)。
但最好的部分是您可以將這些查找函數與其他 Excel 函數結合起來做更多的事情(包括在未排序的列表中查找查找值的最接近匹配項)。
在本教程中,我將向您展示如何使用查找公式在 Excel 中找到查找值的最接近匹配項。
在許多不同的場景中,您需要尋找最接近的匹配(或最接近的匹配值)。
以下是我將在本文中介紹的示例:
- 根據銷售額查找佣金率
- 尋找最佳人選(根據最接近的經驗)
- 尋找下一個活動日期
讓我們開始吧!
查找佣金率(尋找最接近的銷售價值)
假設您有一個如下所示的數據集,您想在其中找到所有銷售人員的佣金率。
佣金是根據銷售價值分配的。這是使用右側的表格計算的。
例如,如果銷售人員的總銷售額為 5000,則佣金為 0%,如果他/她的總銷售額為 15000,則佣金為 5%。
要獲得佣金率,您需要找到剛好低於銷售價值的最近銷售範圍。例如,對於 15000 的銷售額,佣金為 10,000(即 5%),而對於 25000 的銷售額,佣金率為 20,000(即 7%)。
要找到最接近的銷售價值並獲得佣金率,您可以使用 VLOOKUP 中的近似匹配。
下面的公式可以做到這一點:
=VLOOKUP(B2,$E$2:$F$6,2,1)
請注意,在此公式中,最後一個參數是 1,它告訴公式使用近似查找。這意味著該公式將遍歷 E 列中的銷售值並找到剛好低於查找值的值。
然後 VLOOKUP 公式將給出該值的佣金率。
注意:為此,您需要將數據按升序排序。
尋找最佳人選(根據最接近的經驗)
在上面的例子中,數據需要按升序排序。但可能存在數據未排序的情況。
因此,讓我們舉一個例子,看看我們如何使用公式組合在 Excel 中找到最接近的匹配項。
下面是一個示例數據集,我需要在其中找到工作經驗最接近所需值的員工姓名。在這種情況下的期望值是 2.5 年。
請注意,數據未排序。此外,最接近的體驗可以少於或多於給定體驗。例如,2 年和 3 年都同樣接近(相差 0.5 年)。
下面是給我們結果的公式:
=INDEX($A$2:$A$15,MATCH(MIN(ABS(D2-B2:B15)),ABS(D2-$B$2:$B$15),0))
此公式中的技巧是更改查找數組和查找值以找到所需值和實際值的最小經驗差異。
讓我們首先了解您將如何手動進行(然後我將解釋此公式的工作原理)。
手動執行此操作時,您將瀏覽 B 列中的每個單元格,並找到所需體驗與一個人擁有的體驗之間的差異。一旦你有了所有的差異,你會找到最小的那個並獲取那個人的名字。
這正是我們用這個公式所做的。
讓我解釋。
MATCH 公式中的查找值為 MIN(ABS(D2-B2:B15))。
這部分為您提供給定經驗(即 2.5 年)與所有其他經驗之間的最小差異。在本例中,它返回 0.3
請注意,我使用 ABS 來確保我正在尋找最接近的(可能比給定的經驗更多或更少)。
現在,這個最小值成為我們的查找值。
MATCH 函數中的查找數組是 ABS(D2-$B$2:$B$15)。
這為我們提供了一個數字數組,從中減去了 2.5(所需經驗)。
所以現在我們有一個查找值 (0.3) 和一個查找數組 ({6.8;0.8;19.5;21.8;14.5;11.2;0.3;9.2;2;9.8;14.8;0.4;23.8;2.9})
MATCH函數在這個數組中找到0.3的位置,也就是經驗最接近的人的名字的位置。
然後,INDEX 函數使用該職位編號來返回人員的姓名。
注意:如果有多個候選人具有相同的最低經驗,上述公式將給出第一個匹配員工的姓名。
查找下一個活動日期
這是另一個示例,您可以使用查找公式根據當前日期查找事件的下一個日期。
下面是我有事件名稱和事件日期的數據集。
我想要的是下一個事件的名稱和這個即將發生的事件的事件日期。
下面是給出即將到來的事件名稱的公式:
=INDEX($A$2:$A$11,MATCH(E1,$B$2:$B$11,1)+1)
下面的公式將給出即將到來的活動日期:
=INDEX($B$2:$B$11,MATCH(E1,$B$2:$B$11,1)+1)
讓我解釋一下這個公式是如何工作的。
為了獲取事件日期,MATCH 函數在 B 列中查找當前日期。在這種情況下,我們不是在尋找精確匹配,而是近似匹配。因此,MATCH 函數的最後一個參數是 1(它找到小於或等於查找值的最大值)。
因此 MATCH 函數將返回日期恰好小於或等於當前日期的單元格的位置。因此,在這種情況下,下一個事件將在下一個單元格中(因為列表按升序排序)。
因此,要獲得即將到來的事件日期,只需將 MATCH 函數返回的單元格位置加一,它就會為您提供下一個事件日期的單元格位置。
該值隨後由 INDEX 函數給出。
要獲取事件名稱,使用相同的公式,並將 INDEX 函數中的範圍從 B 列更改為 A 列。
當一位朋友提出請求時,我想到了這個例子。他在列中列出了所有朋友/親戚的生日,並想知道下一個生日即將到來(以及此人的姓名)。
以上三個示例展示何使用查找公式在 Excel 中查找最接近的值。