Excel - 是否有一個函數可以根據儲存格中的字串傳回數字,例如 CHOOSE 但不是?

Excel - 是否有一個函數可以根據儲存格中的字串傳回數字,例如 CHOOSE 但不是?

=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,您就會得到結果。

相關內容