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 会这样做,但它返回一个基于整数的引用,与我需要的相反。

是否有一个现有的函数可以执行我错过的这项功能,我是否必须使用嵌套 if 或 vlookup 之类的东西来创建更复杂的函数,或者我必须在 VBA 中编写一个函数?

感谢您的时间和帮助。

答案1

如果您可以将要比较的值放入电子表格中其他范围内,则可以使用 LOOKUP 函数。LOOKUP 在第二个参数指定的范围内查找其第一个参数,并从第三个参数的范围中返回相应的值。您必须添加一个指定所需值的范围。

例如,我在 F1:F3 和 G1:G3 中创建查找表:

    最终产物
1 亚历克斯 1
2 贝蒂 2
3 查理 3

然后要使用的函数是


1 =LOOKUP(A1,$F$1:$F$3,$G$1:$G$3)
2 =LOOKUP(A2,$F$1:$F$3,$G$1:$G$3)

在单元格 B1 中,LOOKUP 查找 A1(“Charlie”),在 F3 中找到它,然后返回 G3 中的值,即 3。在单元格 B2 中,LOOKUP 查找 A2(“Alex”),在 F1 中找到它,然后返回 G1 中的值,即 1。

如果您不想将查找表放在主工作表中,也可以将其放在工作簿的另一张工作表中。

答案2

我不能 100% 确定您的源数据是什么样的,但 MATCH 函数将查看单个值并返回其在数组中的位置。

如果 A1:A4 是

Alex
Betty
Charlie
Betty

在 B1 中输入

=MATCH(A1,$A$1:$A$4)

B1将回归

1

然后只需填充 B1 至 B4 即可得到结果。

相关内容