Excel 需要对跨一系列单元格复制的动态范围进行运算的公式

Excel 需要对跨一系列单元格复制的动态范围进行运算的公式,excel,excel-formula,excel-indirect,Excel,Excel Formula,Excel Indirect,我正在创建一个关联值网格,就像距离网格一样。我有一系列的单元格,每个单元格都包含一个公式,如果你知道第一个单元格的偏移量,那么这个公式的范围很容易描述,我很难确定如何指定它 在左上角的单元格(R10)中,公式是CORREL(C2:C21,C2:C21)——当然是1 在(S10)的下一列中,公式是CORREL(D2:D21,C2:C21) 在下一行(R11),公式是CORREL(C2:C21,D2:D21) 当然,S11将包含CORREL(D2:D21,D2:D21),它也是1。以此类推,大约1

我正在创建一个关联值网格,就像距离网格一样。我有一系列的单元格,每个单元格都包含一个公式,如果你知道第一个单元格的偏移量,那么这个公式的范围很容易描述,我很难确定如何指定它

  • 在左上角的单元格(R10)中,公式是
    CORREL(C2:C21,C2:C21)
    ——当然是1
  • 在(S10)的下一列中,公式是
    CORREL(D2:D21,C2:C21)
  • 在下一行(R11),公式是
    CORREL(C2:C21,D2:D21)
  • 当然,S11将包含
    CORREL(D2:D21,D2:D21)
    ,它也是1。以此类推,大约15x15的网格
以下是所涉及范围的图形表示:

C2:C21,C2:C21  C2:C21,D2:D21  C2:C21,E2:E21
D2:D21,C2:C21  D2:D21,D2:D21  D2:D21,E2:E21
E2:E21,C2:C21  E2:E21,D2:D21  E2:E21,E2:E21
每当我添加一个新的数据行时,我必须手动更新几个公式。因此,我希望动态确定最后一个非空列编号(本例中为21),例如使用
COUNTA(C:C)
。理想情况下,我希望公式也能计算行偏移量,这样我就可以在整个范围内拖动一个公式


实现这一目标的最佳方式是什么?我认为偏移量可能是解决方案中的一个组成部分,但我还没有成功地将其全部结合起来。

我发现了这个公式,虽然冗长,但达到了预期的效果。在本例中,数据位于C2:O19中。我想要构造的表计算了列对的所有排列的相关值。因为有11列,所以相关对表是11x11,从R10开始。每个单元格具有以下公式:

=CORREL(INDIRECT(ADDRESS(2,2+(ROWS($R$10:R10)),4)&":"&ADDRESS(COUNTA($C:$C),
2+(ROWS($R$10:R10)),4)),INDIRECT(ADDRESS(2,2+(COLUMNS($R$10:R10)),4)&":"&
ADDRESS(COUNTA($C:$C),2+(COLUMNS($R$10:R10)),4)))
我发现,
INDIRECT()
解析单元格引用并获取其值

让我们拿一个单元格,比如说U12,详细看一下范围公式。第一个
INDIRECT
是从R10应用行偏移量得到的列

由于第12行比第10行低2行,
ADDRESS(2,2+(rows($R$10:U12)),4)和“&ADDRESS(COUNTA($C:$C)),2+(rows($R$10:U12)),4)
应生成位于第C行右侧2行的列,即E。公式计算结果为
E2:E19

第二个
INDIRECT
是从R10应用列偏移量得到的列。类似地,由于U列是R列右侧的3列,
地址(2,2+(列($R$10:U12)),4)和“&ADDRESS(COUNTA($C:$C)),2+(列($R$10:U12)),4)
应生成C行右侧3行的列,即F。第二个公式的计算结果为
F2:F19

在中替换这些范围参考值,单元格公式将减少到
=CORREL(间接(“E2:E19”)、间接(“F2:F19”)
,并进一步减少到
=CORREL(E2:E19,F2:F19)
,这是我到目前为止一直在使用的


就像距离表一样,此表沿对角线对称,因为
=CORREL(E2:E19,F2:F19)
等于
=CORREL(F2:F19,E2:E19)
。对角线上的每个值都是1,因为相同范围的
CORREL
根据定义是100%的相关性。

使用这个简单的设置,每个corr矩阵元素也有助于:

=CORREL(间接(“风险因素”!”和“T”&G6&“T”&H6);间接(“风险因素”!”和“U”&G6&“U”&H6))

使用此函数,我参考另一张表“风险因素”中的数据,将T行和U行相互关联。我希望数据的范围是动态的,所以我在当前的工作表中使用G6和H6来参考列的长度(行数),当然我在这些G6和H6单元格中指定了这些列的长度


希望这有帮助

@pnuts,我添加了更多有关范围的图形表示。是的,没错。坐标R10是指Excel中的单元格名称,因此R10位于S10的正上方。R是字母表中的第18个字母,所以它应该是第18行。正确,只是一个常规Excel电子表格。抱歉,我一定是计算错了。我同意你的看法,那就是B3。C2在第二排,左边第三排。