恩光汽车新闻网

您现在的位置是: 首页 > 汽车新闻

文章内容

indirect函数跨表引用返回value_indirect函数跨表引用

tamoadmin 2024-09-06
1.excel SUMPRODUCT函数里引用其他工作簿的问题 谢谢2.EXCEL中如何跳列引用顺延的数据,跨列数据引用公式?3.INDIRECT函数教你如何跨

1.excel SUMPRODUCT函数里引用其他工作簿的问题 谢谢

2.EXCEL中如何跳列引用顺延的数据,跨列数据引用公式?

3.INDIRECT函数教你如何跨表查询

4.Excel中跨多表引用,Vlookup+indirect函数!

5.Excel中如何将一个单元格中的值作为另一个单元格引用地址呢?

indirect函数跨表引用返回value_indirect函数跨表引用

领导发来一个表格,每个工作子表记录了当前月份的工资发放明细数据,现在我们需要汇总每个月发放的总金额是多少

像这种跨表进行汇总计算,如果表格很少,那么手动的输入公式:

=SUM('1'!B:B)

然后重复的输入6次公式得到结果:

工作表少的时候,我们还可以这么折腾,如果单独的工作表很多的时候,我们就需要使用捷径了,使用Indirect函数,简单搞定!

因为每次都只是表名发现了变化,而我们的A列里面正好有对应的表名,

所以我们只需要把单元格数据替换掉我们公式里面的变化,

如果我们直接用单元格链接的话,是没有办法进行正常的计算的

我们需要加一个间接引用的函数,使用的公式:

=SUM(INDIRECT(A2&"!B:B"))

如果需要体现各个员工的数据汇总呢?

首先我们输入一个的公式是什么:

然后联想间接引用公式,我们使用的公式是:

=INDIRECT(B$1&"!B"&ROW())

上面公式适用于各个子表的格式都是对应的,如果格式不对就的情况下,如下计算就会出错

同样,如果是一个的公式是:

然后我们修改间接引用的区域,公式更改成:

=VLOOKUP($A2,INDIRECT(B$1&"!A:B"),2,0)

下次再碰到跨表汇表汇总的时候,Indirect函数用起来吧,你学会了么?

excel SUMPRODUCT函数里引用其他工作簿的问题 谢谢

C2

=INDIRECT("sheet2!R2C"&COLUMN(A:A)*4-2,0)

用INDIRECT的R1C1引用格式(第二参数为0),改变C后面的数字,引用的列就改变了。

数字用COLUMN(A:A)*4(列号乘4)来实现,起始位置是B列,所以要再减2.

EXCEL中如何跳列引用顺延的数据,跨列数据引用公式?

使用INDIRECT函数。如你的工作簿1的单元格A1里面是“工作簿2”,公式:

=SUMPRODUCT((INDIRECT("["&A1&".xlsx]Sheet1!A1:A10000")="香蕉")*1)

INDIRECT函数教你如何跨表查询

在表1的B3单元格中:

如果你直接引用表2的B3,那么公式是简单的:

excel复制代码

=Sheet2!B3

但这不是使用INDIRECT的示例。为了使用INDIRECT,并且考虑到你的需求(虽然对于B3直接引用即可),我们可以这样写(虽然不绝对必要):

excel复制代码

=INDIRECT("Sheet2!B" & ROW(B3))

这里ROW(B3)返回3,但实际上对于B3来说,这个ROW函数是多余的,因为我们直接引用了行号。

在表1的F3单元格中:

为了引用表2的C3,并且使这个引用能够随着你填充到其他列而自动调整,你可以使用:

excel复制代码

=INDIRECT("Sheet2!" & CHAR(COLUMN(B3)+3) & ROW(F3))

这里,COLUMN(B3)返回2,+3是因为从B到C是第三列(基于Excel的列计数从A开始),CHAR函数将列号转换为列字母(但这里其实不适用,因为INDIRECT期望的是列字母,而不是数字对应的ASCII字符),所以我们需要使用SUBSTITUTE或者ADDRESS函数来正确构建引用。正确的方式是:

excel复制代码

=INDIRECT("Sheet2!" & CELL("address", INDEX(Sheet2!B:B, ROW(F3))) & CHAR(COLUMN(F3)-COLUMN(B3)+1))

但上面的公式依然复杂且不完全正确(因为它会返回整个地址如$B$3),更简洁且正确的方法是使用COLUMN函数和字母的ASCII码转换:

excel复制代码

=INDIRECT("Sheet2!" & CHAR(66+COLUMN(F3)-COLUMN(B3)) & ROW(F3))

这里66是字母'B'在ASCII表中的值,COLUMN(F3)-COLUMN(B3)计算从B到F的列差(即3),从而得到'E'(C的ASCII码),但因为我们要引用C,所以实际上是'C'的ASCII码67减去'B'的ASCII码65再加1。但直接加偏移量3更简单。

简化并通用化:

考虑到上面的复杂性,我们可以稍微简化公式,特别是如果你只关心列偏移而不关心行偏移(因为行偏移通常是固定的):

excel复制代码

=INDIRECT("Sheet2!" & CHAR(65+COLUMN(A1)+INT((COLUMN(当前单元格)-COLUMN(A1))/4)) & ROW(当前单元格))

在这个公式中,COLUMN(A1)是一个起点(你可以根据需要调整),INT((COLUMN(当前单元格)-COLUMN(A1))/4)计算当前单元格与A1之间的列差除以4的整数部分(因为你是每4列引用一次表2的新列),然后加上'A'的ASCII码65来得到正确的列字母。注意替换当前单元格为你实际使用的单元格引用,比如F3。

但更简单且直观的方法是,对于每4列引用一次,直接在每4列的起始列(B, F, J等)中输入相应的公式,然后向右拖动填充柄,Excel会自动调整列引用。

Excel中跨多表引用,Vlookup+indirect函数!

上一篇文章,我们讲述了INDIRECT的跨表引用,但是对于型号序列不一样的,我们如何进行查找操作呢?

例如:查询每种型号的销量数据,但是型号的顺序不一致,应该如何处理呢?

思路:

① 说道查找,首先我们想到的是VLOOKUP函数;

② 需要每个月的销量,查询的区域在不同的表中,只是表的名称不一样,可以考虑INDIRECT函数。

具体操作如下:

Step1:首先我们查找1月份的销量数据,在汇总表的B2单元格中输入:

Step2:然后用INDIRECT函数修改引用的单元格区域,使其实现1月份的数据在1月份的工作表中查询,2月的数据再月的工作表中查询..........,我们把引用的数据区域更改一下如下:

然后分别向下和向右填充;

PS:写公式的时候,一定要注意单元格的引用,否则拖拉公式的时候会出错!

谢谢大家的观看,我们下一期再见,如果有什么问题欢迎评论区留言或私信我们

想学习更多的函数知识,欢迎关注转发

Excel中如何将一个单元格中的值作为另一个单元格引用地址呢?

例如,现在我们要在总表中,汇总每位员工各个月份的工资情况

但每个月的工资都分别存放在每一个工作表中,如1月的数据如下:

2月的数据工资表如下所示:

每个子表中员工的姓名排列顺序都是不一样的。

1月份中员工的顺序是吕布、小乔、大乔

而2月份中员工的顺序是大乔、吕布、小乔、程咬金,后面每个月份表格顺序都不一样。

=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充

现在要快速的汇总总表的数据:

用普通的方法,就是在B2中输入:

=VLOOKUP(B$1,'1月'!$A:$C,3,0),向右填充

然后B3,把公式里面的1月改成2月,....依次做10次,这种方法效率太低。今天教大家vlookup搭配indirect函数,一个公式搞定。

首先我们了解下Indirect函数的用法:

D3的公式是:=INDIRECT(A2),A2没有加双引号,所以会对A2计算结果是B4,然后引用的是B4单元格的值,返回结果为3

E3的公式是:=INDIRECT("A2"),A2加了双引号,所以直接返回的是A2的值,返回的结果是B4

我们现在要做的是就是实现向下填充的时候,'1月'!$A:$C,会自动变成2月,3月....

用INDIRECT($A2&"!A:C")替换掉

所以整体的公式是:=VLOOKUP(C$1,INDIRECT($A2&"!A:C"),3,0),向下填充,向右填充,得到了所有的汇总结果。

你学会了么?动手试试吧,私信回复素材获取源文件

一、这可以用INDIRECT函数来完成。

二、INDIRECT函数的定义:

返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。当需要更改公式中单元格的引用,而不更改公式本身,请使用函数 INDIRECT。

语法

INDIRECT(ref_text,a1)

Ref_text 为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文本字符串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!。

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

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

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

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

三、举例

(1)设在A1单元格中写入或由公式得出“B100”这样的数据,想在B1单元格得出B100单元格的内容(即A1单元格写入文本单元格地址,在B1单元格得出这个单元格的内容),则B1单元格写入公式:

=INDIRECT(A1)

(2)设在A1单元格中写入数字50,想在B1单元格得出C50单元格的内容(即A1单元格写入行数,在B1单元格得出C列该行单元格的内容),则B1单元格写入公式:

=INDIRECT("C"&A1)

(3)设在A1单元格中写入字母"H",想在B1单元格得出H20单元格的内容(即A1单元格写入列名,在B1单元格得出第20行该列单元格的内容),则B1单元格写入公式:

=INDIRECT(A1&20)

(4)设在A1单元格中写入字母"G",在B1单元格写入数字40,想在C1单元格得出G40单元格的内容(即A1单元格写入列名,B1单元格写入行数,要得出列名和行数组成的单元格的内容),则C1单元格写入公式:

=INDIRECT(A1&B1)

四、单元格地址

表格的顶上是一排字母A,B,C,.......这个就是列标

表格的左边是一竖列的数字1,2,3,.......这个就是行号

列标加上行号就是就是单元格的名称,单元格名称也叫做单元格地址,如A列的第三行,为A3单元格,C列的第18行为C18单元格,第五列的第七行就是E7单元格,这样形成了一个个的坐标,标明了每个单元格的位置.