1. > 智能数码 >

indirect函数的详细用法(indirect函数运用)

本文目录一览:

indirect函数使用方法和应用实例

INDIRECT(ref_text,[a1]):

ref_text :对单元格的引用,此单元格可以包含A1-样式的引用、R1C1-样式的引用、定义为引用的名称或者对文本字符串单元格的引用。如果ref_text是对另外一个工作部的引用(外部引用),则那个工作簿必须被打开。

[a1] :一逻辑值,指明包含在单元格ref_text中的引用类型。如果[a1]为TRUE或者省略,ref_text被解释为A1-样式的引用;如果[a1]为FALSE,ref_text被解释为R1C1-样式的引用。

注:我们常用的为A1-样式。

A1-样式:

这里的A就是列号,即A列;

这里的1表示行号,即第1行;

所以在A1引用样式下,第1行第1列,用A1来表示,就是我们通常说的A1单元格。

R1C1-样式:

这里的R就是Row的第一个字母,R1就是表示第1行;

这里的C就是Column的第一个字母,C1就是表示第1列;

所以在R1C1引用样式下,第1行第1列就是用R1C1来表示。

看下图,使用indirect函数在C2、C3引用A1单元格的内容。

1——=INDIRECT("A1"),结果为C3。这种使用,简单的讲,就是将这些引用地址套上双引号,然后再传递给INDIRECT函数。

2——=INDIRECT(C1),结果为C2。解释:因为C1的值就是"A1",在公式编辑栏,选中“C1”,然后按下F9键,计算值,可以看到变为“"A1"”,本质没变,都是对单元格引用。

上面两者的区别在于:前者是A1单元格内文本的引用,后者是引用的C1单元格内的地址引用的单元格的内容。

如下图所示:

如果需要在“二班”工作表,计算“一班”工作表B2:B5的成绩总和。可以使用这样的 公式:=SUM(INDIRECT("一班!B2:B5"))。【解释:indirect("工作表名!单元格区域")】

注:另外一种情况是当工作表名称直接是数字的,在工作表名称两边必须添加上一对单引号。

如果需要在“2”工作表,计算“1”工作表B2:B5的成绩总和。可以使用这样的 公式:=SUM(INDIRECT("'1'!B2:B5"))。解释:indirect(" '工作表名'!单元格区域")

总结:如果工作表名为汉字,工作表名前后可以加上一对单引号,也可以不加。但是数字和一些特殊字符时,必须加单引号,否则不能得到正确结果。

我们在工作表命名时形成习惯尽量不要有空格和符号,这样可以不怕indirect引用忘记加单引号括起来。要么形成习惯所有indirect带工作表名引用时都用单引号将代表工作表名的字符串括起来。

=INDIRECT("[工作簿名.xls]工作表表名!单元格地址")

INDIRECT函数,如果是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!。

数据有效性课程提到过,可查看课程回顾。

公式:=INDIRECT(B$1"!B"ROW())

公式说明:

B$1"!B"ROW(),根据ROW函数产生的行号,生成单元格地址。例公式在第2行时,ROW()结果是2,B$1"!B"ROW()的结果就是:1号!B2

当往下拖动时是1号!B3、1号!B4、1号!B5…………

当往右拖动时是2号!B2、3号!B2、4号!B2、5号!B2…………

工资表模板中,每个部门一个表。在查询表中,要求根据提供的姓名,从财务部、人事部、销售部3个工作表中查询该员工的基本工资。

你可以去用vlookup函数结合if函数一个表一个表查找,但是你可以想象会繁琐。这才三张表,更不用去想假如有30张了…………

==IFERROR(VLOOKUP(查询!A2,财务部!A:B,2,0),IFERROR(VLOOKUP(查询!A2,人事部!A:B,2,0),IFERROR(VLOOKUP(查询!A2,销售部!A:B,2,0),"查无此人")))

分析:

如果,我们知道A3是财务部的,那么公式可以写为:

=VLOOKUP(查询!A2,财务部!A:B,2,0)

如果,我们知道A3可能在财务部或人事部这2个表中,公式可以写为:

=IFERROR(VLOOKUP(查询!A2,财务部!A:B,2,0), VLOOKUP(查询!A2,人事部!A:B,2,0))

意思是,如果在财务部表中查找不到(用iferror函数判断),查询不到则去人事部表中再查找。

如果,我们知道A3只能能在财务部、人事部或销售部中,否则“查无此人”,公式可以再次改为:

=IFERROR(VLOOKUP(查询!A2,财务部!A:B,2,0),IFERROR(VLOOKUP(查询!A2,人事部!A:B,2,0),IFERROR(VLOOKUP(查询!A2,销售部!A:B,2,0),"查无此人")))

意思是,如果在财务部表中查找不到(用iferror函数判断),查询不到则依次去人事部、销售部表中再查找,三张表都没有那就是“查无此人”。

如果,有更多的表,本例中仅有3个表,那就一层层的套用下去。假设有20-30张表你能想想么?【实际上如果看不明白建议直接通过方方格子、哈德门工具箱等外部插件直接合并工作表到一起,缺陷就是数据更新时都需要重新合并查找一次】

我们结合indirect函数和vlookup配合其他来一步实现,简化公式,以适合在更多的表中查询【学会修改公式嵌套使用】:

=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"财务部","人事部","销售部"}"!a:a"),A2),{"财务部","人事部","销售部"})"!A:B"),2,0)

注:

COUNTIF(INDIRECT({"财务部","人事部","销售部"}"!a:a"),A2)

1——确定员工是在哪个表中。这里利用countif函数可以多表统计计算各个表中该员工存在的个数;

2——利用lookup(1,0/(数组),数组) 结构取得工作表的名称;

3——利用indirec函数把字符串转换成单元格引用;

4——利用vlookup查找即可。

关键部分:

A2: 查找的内容

{""} :大括号内是要查找的多个工作表名称,用英文状态下逗号分隔;

a:a : 本例是姓名在各个表中的A列,如果在B列则为b:b;

A:B : vlookup查找的区域

2: 是vlookup第3个参数,相对应的列数。你懂的!【找什么;在哪儿找; 查找区域第几列 ;精确还是模糊查找】

如下图所示,有1日~5日这5个列相同、行数不同的明细表,要求汇总出每个产品的销量之和。

汇总求和公式:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)"日!b:b"),A2,INDIRECT(ROW($1:$5)"日!c:c")))

注:

如果只有一个表,我们只需要用sumif函数直接求和:

=SUMIF('1日'!B:B,合计!A2,'1日'!C:C)

对于多个表,除了用sumif()+sumif+sumif()...外【和上例iferror和vlookup结合一个个查找相似】,Sumif函数支持多表同时求和,但必须用indirect函数生成对多个表的引用,即:

INDIRECT(ROW($1:$5)"日!B:B")和INDIRECT(ROW($1:$5)"日!C:C")

用sumif组合起来,即:

=SUMIF(INDIRECT(ROW($1:$5)"日!b:b"),A2,INDIRECT(ROW($1:$5)"日!c:c"))

但是上述的公式返回的每个表的求和结果,是一组数,我们需要把他们汇总起来,最后还需要用sumrpoduct函数进行求和,即:

=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)"日!b:b"),A2,INDIRECT(ROW($1:$5)"日!c:c")))

或者最后用sum函数进行求和,注意这时候需要使用数组公式哦,按ctrl+shift+enter运行【{}】,即:

{=SUM(SUMIF(INDIRECT(ROW($1:$5)"日!b:b"),A2,INDIRECT(ROW($1:$5)"日!c:c")))}

                                                                                                                                                                           by:wehfouh

                                                                                                                                                                           2018-10-7    18:06

excel中INDIRECT函数的用法

INDIRECT()函数的功能:返回由文本字符串所指定的引用。

=INDIRECT("'"$S27"'!AC20") 的意思是:引用以单元格S27的内容为工作表名称的AC20单元格的内容。

工作表名称是由数字、括号等特殊字符命名时工作表名称要用单引号括起来,所以要在$S27前后再串接一个单引号。$符号表示绝对引用,单元格名称的行号或列号前加一个$,就可以将行号或列号锁定起来,公式在上下或左右拖动填充时,保持行号或列号不发生变化。

excel 能详细讲解下这个indirect函数的用法吗?

INDIRECT函数返回文本字符串所指定的引用,就是用文本描述单元格(或单元格区域)的名称.

它有两个参数,第一个为引用,第二个为类型.其中第二个参数可省(此时为A1样式引用).

INDIRECT("a"5*(ROW()-1)+COLUMN()-1)

公式先用ROW()得到当前单元格的行号,用COLUMN()函数得到当前单元格的列号,再用5*(ROW()-1)+COLUMN()-1得到一个数值与字符"A"连接成一个单元格地址.

假定当前单元格为C5,公式结果:

=INDIRECT("a"5*(5-1)+3-1)

=INDIRECT("a"22)

=A22

indirect函数的使用方法

一般indirect数据的用法有两种一种直接引用所在单元格内的数据,另一种就是直接全部引用表格的全部格式。一种只引用对应单元格的数据,不进行二次计算。就是直接获得数值或文本的表示方法。这时就可以采用=indirect单元格。这样获得的就是一个数值。而不是一个运算公式得出的结果。第一步输入=indirect,随之也会弹出来一个联想出来的额公式以及对应的函数的几个参数。第二步找到你要引用的单元格,这时就可以键入对应的单元格。但是在这时就需要输,这样得出的结果才是不包含运算公式直接得出的结果第二种就是不但引用数据,如果引用的数据进行计算,如果引用的表格中的数据还有公式,还要对公式进行二次计算。第一步也是输入=indirectexcel表格中的公式后面就会随之弹出对应的参数,以方便你进行下一步的数据的输入。第二步也是输入对应的单元格,这时输入的单元格就不需要加上双引号了。和之前的意义也是不一样的这里就不是简单的只引用目标单元格的数据了

Excel INDIRECT公式使用方法

1.indirect函数的含义

引用,并显示其内容

2.indirect函数的语法格式

=INDIRECT(ref_text,[a1])

3.indirect函数的引用的两中形式。

一种加引号,一种不加引号。

=INDIRECT("A1")——加引号,文本引用——即引用A1单元格所在的文本(B2)。

=INDIRECT(A1)——不加引号,地址引用——因为A1的值为B2,B2又=11,所以返回。

4.地址引用如图所示,

输入公式=INDIRECT(A3)

不加引号——A3=baidu,不存在baidu这样的赋值项(B2又=11),所以出错

5.只能通过输入公式=INDIRECT("A3")

来实现对A3单元格内容引用。

indirect函数的使用方法是什么?

Indirect函数的语法:INDIRECT(ref_text,[a1])

Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。

a1为一逻辑值,指明包含在单元格ref_text 中的引用的类型。

如果a1为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。

如果a1为 FALSE,ref_text 被解释为 R1C1-样式的引用。

扩展资料:

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

如果 ref_text 是对另一个工作簿的引用(外部引用),则工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值#REF!。

参考资料来源:百度百科-INDIRECT函数

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, website.service08@gmail.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息