如何使用括号和“!”符号在Excel中SUMIF函数的作品

我在我的Excel中有一个macros,这个macros将公式写入Excel工作表中的一个单元格。 我的macros代码如下:

Range("F10").Select ActiveCell.FormulaR1C1 = "=SUMIF('1'!C2,C7,'1'!C[2])" 

并为F10单元格生成的公式如下所示:

 =SUMIF('1'!$B:$B,$G:$G,'1'!H:H) 

有人可以帮我理解这个代码吗? 什么是'1',! ,[…]和…完全一样吗? 一般来说,我想知道“ =SUMIF('1'!$B:$B,$G:$G,'1'!H:H) ”的输出是什么,为什么macros产生这个公式?

你select了不幸的表名。

"=SUMIF('1'!C2,C7,'1'!C[2])"

'1'是表格名称。 工作表名称可以用单引号括起来,但是如果工作表名称包含空格,则只需要这样做。

! 是工作表名称和单元格引用之间的分隔符。

C2表示第2列,即列B.您正在使用公式R1C1语法,因此C将以下数字标识为与列相关。

C7表示第7列,所以列G

'1'! 再次表示工作表名称和分隔符。

C[2]表示从当前列(C)右移2。 如果公式返回H列,则意味着当前单元格必须在F列中。

目前R1C1引用在工作表中并未广泛使用,但在VBA中,相对单元引用非常容易。 括号表示“相对于当前位置”,R或C将决定是否需要遍历一行或一列。

R1C1是第1行,第1列,换句话说,单元格A1。 这是一个绝对的参考。

R[4]C[-2]是一个相对参考。 它将根据当前单元格进行评估,并从该位置添加4行(正值为4行),减2列(负值为2列)。 因此,如果当前单元格是H4,则转换为R4C8,则对R[4]C[-2]的引用表示F2。

所以我假设你知道什么

 =sum($B:$B) 

呢? 如果没有,那么在进行这个问题之前,你需要先学习一个基本的Excel教程。

我公式中的$B:$B是范围。 它指的是当前工作表上的列名为B的范围。 如果您想在不同的工作表上总结B列,那么您可以指定worksheetname!$B$B表名称worksheetname!$B$B或工作表名称中包含空格,然后使用'worksheet name'!$B$B等引号。

因此'1'!$B$B引用名为'1'的工作表上的列B

[]

那么方形面包是做什么的? 这是从R1C1表示法 。 所以通常你绝对参考一个范围。 所以当你使用范围如$B$B ,无论你从哪里调用该函数(即不pipe你的函数在哪个单元格中),都在引用B列。 R1C1表示法是Excel允许相对引用单元格的方式,或者换句话说,是指它们相对于公式所在的单元格的位置.R1C1表示法中的c2实际上仍然是绝对的,它表示第二列(即B )。 c[2]现在是相对的, [2]意味着公式所在单元右边的两列。

SUMIF

SUMIF是一个优秀的公式,只能总结符合一定条件的范围部分。 在你的情况下,我们不能说它会输出什么,因为我们不知道你的表中是什么。 但基本上是

 =SUMIF('1'!$B:$B,$G:$G,'1'!H:H) 

'1'!$B:$B是你想testing你的条件的值的范围, $G:$G是你的条件(我认为应该指向单个单元而不是范围btw … ),最后是'1'!H:H是你想要求和的值的范围。

所以,如果只想在列B中的值大于10,而您的工作表1看起来像是在列H求和值

  BGH ________________ 1 | 5 '>10 1 2 | 12 2 3 | 13 3 

结果=SUMIF('1'!$B:$B,$G:$G,'1'!H:H)将会是5 (即从列H23 ,因为B1213列大于10但不是5 ,因此不符合作为总和的一部分的标准。