=Func(A1, "Alex, "Betty", "Charlie")
我需要一個傳回匹配條目索引的函數。若將此功能放入B1:B13,則會顯示
"Charlie" 3
"Alex" 1
"Alex" 1
"Alex" 1
"Charlie" 3
"Charlie" 3
"Betty" 2
"Charlie" 3
"Charlie" 3
"Betty" 2
"Betty" 2
"Betty" 2
"Alex" 1
乍一看,我以為 CHOOSE 會執行此操作,但它會傳回基於整數的引用,這與我需要的相反。
是否有一個現有的函數可以執行此操作,但我錯過了,我是否必須使用嵌套 ifs 或 vlookup 之類的函數創建一個更複雜的函數,或者我是否必須在 VBA 中編寫一個函數?
感謝您的時間和幫助。
答案1
如果您可以將要比較的值放入電子表格中其他位置的範圍內,則可以使用 LOOKUP 函數。 LOOKUP 在第二個參數指定的範圍內尋找第一個參數,並從第三個參數的範圍傳回對應的值。您必須新增一個範圍來指定所需的值。
例如,我在 F1:F3 和 G1:G3 中建立查找表:
FG 1 亞歷克斯 1 2 貝蒂 2 3 查理 3
那麼要使用的函數是
乙 1 =查找(A1,$F$1:$F$3,$G$1:$G$3) 2 =查找(A2,$F$1:$F$3,$G$1:$G$3)
在儲存格B1 中,LOOKUP 尋找A1(「Charlie」),在F3 中找到它,並傳回G3 中的值,即3。它,然後傳回傳回 G1 的值,即 1。
如果您不希望將查找表放在主工作表中,也可以將其放在工作簿的另一個工作表中。
答案2
我不能 100% 確定您的來源資料是什麼樣子,但 MATCH 函數將查看單一值並返回其在陣列中的位置。
如果 A1:A4 是
Alex
Betty
Charlie
Betty
在 B1 中你輸入
=MATCH(A1,$A$1:$A$4)
B1將返回
1
然後只需填寫 B1 到 B4,您就會得到結果。