使用方法
indirect函数的引用的两中形式。
一种加引号,一种不加引号。

=INDIRECT(“A1”)——加引号,文本引用——即引用A1单元格内的文本。

=INDIRECT(A1)——不加引号,地址引用——把A1单元格内文本作为地址,获得此地址的文本。
例如:

       A    B

1    B1    2

=INDIRECT(“A1”) 返回值为B1

=INDIRECT(A1) 返回值为2

=INDIRECT(B1),由于找不到2这个地址,所以返回值为#REF


再举个例子:

excel中制作二级联动菜单和indirect函数_excel


直接指定单元格地址:=INDIRECT(“A4”),这时会返回值”A3”。因为参数给定的既是字符串也符合单元格地址格式,所以直接对参数代表的单元格进取引用取值。

隐式指定单元格地址:=INDIRECT(A4),这个时候会返回值”3”,也就是A3单元格的值。因为参数指定的是A4,在这里A4是一个单元格的地址而非字符串,所以要取出单元格A4的值(也就是字符串”A3”),然后对拿到的地址(A3)进行取值得到”3”。为了加深理解可以将公式改为=INDIRECT(A2),这个时候公式就会返回#REF!错误,因为单元格A2的值是”2”,而不存在一个地址为2的单元格,所以会报错。

通过公式或者连接符得到单元格地址:=INDIRECT(B1&A3),这时会返回值”3”。虽然公式中参数有&链接,但参数仍不是字符串,更不是单元格地址或者名称,首先要做的就是将参数转化成字符串格式的地址或者名称。B1的值是”A”,A3的值是”3”,通过&连接后得到字符串”A3”,因此公式也就转化成了=INDIRECT(“A3”),这样就会得到A3单元格的值。同样也可以在指定参数的时候指定单元格的列标或者行标,如:=INDIRECT(“A”&A3),=INDIRECT(B1&”3”),=INDIRECT(B1&”$3”),=INDIRECT(“$A”&A3)都是要读取A3单元格的值,也都会返回”3”。

使用单元格名称:=INDIRECT(A5),会返回”B”,也就是B2单元格的内容。与前面一样,将A5转换成单元格名称的字符串”TEST”,然后取得”TEST”所代表的单元格的值,即”B”。与=INDIRECT(“TEST”)等价。

 

---------------------------------------------------------------------------------------------------------------------------------------
做下拉菜单:
参考:

​https://jingyan.baidu.com/article/fdffd1f861c181f3e88ca143.html​