excel 返回引用单元格的地址

例如:
A
1 1
2 2
3 3(为公式返回值"=A1+A2)
4 A3(求公式,返回A3的地址在A4里显示)

    如图,A1:D4是一个二维表。需要根据A6和B6单元格指定的内容返回数据。

    根据A6和B6单元格内容,可以看到要取的值是A1:D4中第三行第四列的内容。利用INDEX()函数可以提取出相应内容。双击C6单元格,输入公式:

    =INDEX(A1:D4,3,4)

    该函数的意思是从A1:D4中取第3行第4列的内容。第二参数代表行,第三参数代表列。

    如果利用INDEX()函数,首先就需要定位行数和列数。下一步看下INDEX()所需的第二和第三参数如何自动生成。

    判断行数和列数可以用MATCH()函数。双击C6单元格,输入公式:

    =MATCH(A6,A1:A4,0)

    结果返回3,也就是A6单元格的“北京”在A1:A4中是第3个数。

    知识点说明:

    MATCH()函数返回第一参数在第二参数所在的位置。如下图,“北京”在第二参数的数组中是第3个值,因此函数返回3。

    同样,利用MATCH()函数返回B6单元格内容所在列数。双击C6单元格,输入公式:

    =MATCH(B6,A1:D1,0),结果返回4。

    最后,将两个MATCH()函数和INDEX()函数合并在一起,修改为:

    =INDEX(A1:D4,MATCH(A6,A1:A4,0),MATCH(B6,A1:D1,0))

    回车后就可以得到行列交叉处的值了。


温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-18
excel里没有这样的函数,如果你要做就用"自定义函数吧":
在工作表界面作如下操作:
按alt+F11打开vixual basic编辑器
在打开的vixual basic编辑器窗口作如下操作:
标题栏->视图->工程资源管理器(单击打开)
标题栏->插入->模块
双击插入的“模块1“,
右边出现一大片空白区域
将下述代码复制->粘贴进去:
Function Hasf(rng As Range)
If rng.HasFormula Then
Hasf = rng.Formula
Else
Hasf = ""
End If
End Function
则已自定义了涵数hasf,这个函数就可以在工作表中使用了
A4输入:=hasf(A3) ,确定即可本回答被提问者采纳