gpt4 book ai didi

vba - 将行更改的公式向下拖动除一个间隔之外的另一个间隔

转载 作者:行者123 更新时间:2023-12-02 10:42:54 24 4
gpt4 key购买 nike

几个小时以来我一直在试图解决这个问题。我有这个公式:

 =PROMEDIO.SI.CONJUNTO(Flankers!C15:C54;Flankers!D15:D54;1)

我已经手动完成了这个。我的数据在侧翼表中,现在我正在第二张表上计算我的 react 时间和准确度得分的平均值。每个参与者的数据都是相同的(每个参与者 93 行),我想做的是向下拖动这个公式以自动填充每个参与者(我在一列中有 29 个参与者)。当然,每个引用仅更改 1 个数字。例如,我在C2中有公式,所以当我将其向下拖动到C3时,公式变为

=AVERAGEIFS(Flankers!C16:C55;Flankers!D16:D55;1)

我需要所有行都增加 93 并保持范围相同(40 个单元格),以便 C3 的单元格应为 =AVERAGEIFS(Flankers!C108:C147;Flankers!D108:D147;1),然后C4 的单元格应该是

 =AVERAGEIFS(Flankers!C201:C240;Flankers!D201:D240;1)

等。手动操作非常繁琐(总共 2698 行)。有人可以阐明这一点并解释一下我可以在哪里修改它以供将来的分析吗?

最佳答案

几乎将其标记为 Duplicated cells skip 10 rows 的重复项但事实上却恰恰相反。但是,解决方案是相同的。使用INDEX function只需一点数学就能实现交错。

最简单的方法是使用 OFFSET function但该函数被认为是 volatile 的,并且每当工作簿中的任何内容发生变化时都会重新计算。每次在任何单元格中输入内容时,大量此类都会导致计算滞后。

随着不稳定的 1 OFFSET ,

=AVERAGEIFS(OFFSET(Flankers!$C$15, (ROW(1:1)-1)*93, 0, 40, 1),
OFFSET(Flankers!$C$15, (ROW(1:1)-1)*93, 1, 40, 1), 1)

具有非 volatile INDEX ,

=AVERAGEIFS(INDEX(Flankers!C:C, 15+(ROW(1:1)-1)*93):INDEX(Flankers!C:C, 54+(ROW(1:1)-1)*93),
INDEX(Flankers!D:D, 15+(ROW(1:1)-1)*93):INDEX(Flankers!D:D, 54+(ROW(1:1)-1)*93), 1)

第二个公式可能看起来更复杂,但它实际上所做的只是为 AVERAGEIFS function 中的每个范围提供起始单元格和结束单元格。 。 INDEX 引用整个列,其余的由一些基本数学完成。

在 ES-ES 公式语言中(使用分号列表分隔符)为,

=PROMEDIO.SI.CONJUNTO(DESREF(Flankers!$C$15; (FILA(1:1)-1)*93; 0; 40; 1);
DESREF(Flankers!$C$15; (FILA(1:1)-1)*93; 1; 40; 1); 1)

=PROMEDIO.SI.CONJUNTO(INDICE(Flankers!C:C; 15+(FILA(1:1)-1)*93):INDICE(Flankers!C:C; 54+(FILA(1:1)-1)*93);
INDICE(Flankers!D:D; 15+(FILA(1:1)-1)*93):INDICE(Flankers!D:D; 54+(FILA(1:1)-1)*93); 1)
<小时/>

1 每当整个工作簿中的任何内容发生变化时, volatile 函数都会重新计算,而不仅仅是影响其结果的内容发生变化时。 volatile 函数的示例有 INDIRECT , OFFSET , TODAY , NOW , RANDRANDBETWEENCELL的一些子功能和 INFO工作表函数也会使它们不稳定。

关于vba - 将行更改的公式向下拖动除一个间隔之外的另一个间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com