电脑教程
位置:首页>> 电脑教程>> office教程>> SUMIFS/COUNTIFS函数内的间接列引用变化

SUMIFS/COUNTIFS函数内的间接列引用变化

  发布时间:2023-07-01 11:53:23 

标签:Excel函数,excel函数公式,excel表格制作,Excel教程

使用Excel朋友都知道,将包含相对列引用的公式复制到其他列时,这些引用也会相应地更新。例如,公式:

=SUMIFS(C:C,$A:$A,”X”,$B:$B,”X”)

向右拖放时,将会变成:

=SUMIFS(D:D,$A:$A,”X”,$B:$B,”X”)

=SUMIFS(E:E,$A:$A,”X”,$B:$B,”X”)

等等。

因此,我们有一个相对简单的方法,可以从连续的列中获得条件和。

但是,如果我们希望增加的单元格区域是间接引用的,那该怎么办?例如,如果我们使用上述公式版本,但所引用的工作表是动态的:

=SUMIFS(INDIRECT(“‘”&$A$1&”‘!C:C”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

其中,A1包含要引用的工作表名称(例如“Sheet1”)。

当我们向右拖动此公式时,间接引用的单元格区域不会改变。当然,这是完全可以预料的,因为那些“单元格区域”根本不是真正的单元格区域,而只是伪装成单元格区域的文本字符串,只有通过将它们传递给INDIRECT函数才能将其解释为实际的单元格区域。

现在的问题是:我们如何修改第一个公式,以便将其向右复制后,依次获得以下等价的公式:

=SUMIFS(INDIRECT(“‘”&$A$1&”‘!D:D”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

=SUMIFS(INDIRECT(“‘”&$A$1&”‘!E:E”),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

等等。

可以使用INDEX函数来解决:

=SUMIFS(INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:C)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

注意,当省略INDEX函数的参数row_num时,会返回整列引用,对于参数column_num也是如此。

如果A1中的值是“Sheet2”,则:

INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:C))

转换为:

=INDEX(Sheet2!A:XFD,,3)

即:

Sheet2!C:C

向右复制,公式成为:

=SUMIFS(INDEX(INDIRECT(“‘”&$A$1&”‘!A:XFD”),,COLUMNS($A:D)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

转换为:

=SUMIFS(INDEX(Sheet2!A:XFD,,COLUMNS($A:D)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

转换为:

=SUMIFS(INDEX(Sheet2!A:XFD,,4),Sheet2!A:A,”X”,Sheet2!B:B,”Y”)

转换为:

=SUMIFS(Sheet2!D:D,Sheet2!A:A,”X”,Sheet2!B:B,”Y”)

……

也可以使用OFFSET函数:

=SUMIFS(OFFSET(INDIRECT(“‘”&$A$1&”‘!A:A”),,COLUMNS($A:B)),INDIRECT(“‘”&$A$1&”‘!A:A”),”X”,INDIRECT(“‘”&$A$1&”‘!B:B”),”Y”)

其中:

INDIRECT(“‘”&$A$1&”‘!A:A”)

转换为:

Sheet2!A:A

而偏移的列数等于:

COLUMNS($A:B)

即2,于是传递到OFFSET函数后得到:

Sheet2!C:C

然而,如果间接引用的不是一个工作表,而是多个工作表,如何处理?例如公式:

=SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!C:C”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

其中,“Sheets”是定义的名称,引用位置为:

={“Sheet1″,”Sheet2″,”Sheet3″,”Sheet4”}

像前面一样,我们希望向右拖拉时,公式变化为:

=SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!D:D”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

=SUMPRODUCT(SUMIFS(INDIRECT(“‘”&Sheets&”‘!E:E”),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

等等。

仍然可以使用OFFSET函数:

=SUMPRODUCT(SUMIFS(OFFSET(INDIRECT(“‘”&Sheets&”‘!A:A”),,COLUMNS($A:B)),INDIRECT(“‘”&Sheets&”‘!A:A”),”X”,INDIRECT(“‘”&Sheets&”‘!B:B”),”Y”))

其原理与上文所解的单个工作表的版本相同。

0
投稿

猜你喜欢

  • 第3行是对其上方的1、2求和,第4行为第3行的公式:A3公式=A1+A2,适用于数据较少时,可以一个一个的点击单元格进行相加;B3公式=SU
  • 在进行编辑word文档的资料的时候,会在word进行表格类型的表。插入表格之后就会需要进行对表格相关的属性进行设置,例如设置表格的行高。那么
  • excel表格怎么根据个人所得税推算工资?在知道个人所得税的情况下,想要计算工资,该怎么推算大概工资呢?下面我们就来看看详细的教程,需要的朋
  • 第1步,打开含有手动换行符的Word2010文档,在“开始”功能区的“编辑”分组中单击“替换”按钮,如图1所示。    
  • 1.选中需要调整对齐方式的行或列,接着右键选择“单元格对齐方式”然后根据自己的需求选择,这里以“水平居中”为例。    
  • 在Excel中我们可以设置超链接,当我们需要跳转到想查看的地方,只需要点击设置的超链接即可,一起来了解一下吧为了方便我们查看Excel不同地
  • 有网友问如何在word中自动生成目录页码和目录页码设置?本篇文章会帮大家解答.我们前面已经讲解了如何去自动生成目录页。大家如果对word目录
  •  MathType公式复制到Word中是代码怎么回事?1.按照自己的使用习惯打开MathType公式编辑器进入到公式编辑界面,或者
  • Word2010中的格式刷工具可以将特定文本的格式复制到其他文本中,当用户需要为不同文本重复设置相同格式时,即可使用格式刷工具提高工作效率,
  • Word2016文件怎么快速批量删除批注?Word2016文件有很多标注,现在上药删除所有的标注,该怎么删除呢?下面我们就来看看word20
  • 我们今天来看看联想笔记本上的Win10系统中的fn功能键,这个键的主要目的是为了让电脑笔记本在携带方便的同时也能支持跟更多的功能。但是fn功
  • 当我们使用win10操作系统计算机时,在某些情况下,我们的系统可能会堵塞,启动速度慢。那么,关于win10版1903如何加快计算机启动速度的
  • 在Word文档中,我们通常都会插入一些图片,表格,视频,音频等内容。有时候,如果我们插入的图片过多,或者是我们想要查看有无图片的不同效果,我
  • 拼音书写在日常工作中占比很大,PPT、自制小卷、课堂笔记……,很多地方都会用到这个看似简单,实际一点儿都不简单的小难题。到底拼音在电脑中如何
  • 一、互换段落要在word中不通过复制粘贴的方式,将两段文字的位置互换,以word2003为例,步骤如下:打开word文档,全部选 * 定的一段
  • 在Word 2007中,用户可以为Word表格中的指定单元格或整个表格设置背景颜色,使表格外观层次分明。在Word 2007文档表格中设置背
  • 热血无赖是一款非常不错的游戏,有很多的用户都在畅玩,最近有部分们的用户们反应在玩耍这款叫做热血无赖游戏的时候,发现只要一运行游戏就会闪退,导
  • Word中公式和文字不在一行该怎么调整格式?word文章中插入公式以后发现公式和文字不在一行,显得word文档排版很乱,该怎么解决这个问题呢
  • Word是一款文案文本排版软件,经常都需要修修改改,不过有的小伙伴在更改文本的时候,发现改了前面的文字后面的字却不见了,那么这是怎么回事呢?
  • 当我们在使用win10系统上网的时候却被提示0x80070002并且无法上网,这时候该如何解决呢?对于这种问题小编觉得可以尝试在命令提示符中
手机版 电脑教程 asp之家 www.aspxhome.com