我需要一个返回匹配条目索引的函数=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 即可得到结果。