Excel 将单元格引用增加x

Excel 将单元格引用增加x,excel,excel-formula,Excel,Excel Formula,我试图在Excel中平均一个大数据集,其中每个月的每一天都有30分钟的数据周期。我有一个“开始日期”和“开始时间”的标题,显示每天的00:00:00-23:30:00,右侧列中有问题的数据。我正在尝试开发一个公式,用于计算每天00:00:00-11:30:00以及每天12:00:00-23:30:00(上午:下午)的平均数据 我有一个用于AM值的标题和另一个用于PM值的标题,我希望为每月的每一天计算这两个元素的平均值 我使用了以下公式,它确实有效: =平均值(偏移量(C6,24,0,-24))

我试图在Excel中平均一个大数据集,其中每个月的每一天都有30分钟的数据周期。我有一个“开始日期”和“开始时间”的标题,显示每天的00:00:00-23:30:00,右侧列中有问题的数据。我正在尝试开发一个公式,用于计算每天00:00:00-11:30:00以及每天12:00:00-23:30:00(上午:下午)的平均数据

我有一个用于AM值的标题和另一个用于PM值的标题,我希望为每月的每一天计算这两个元素的平均值

我使用了以下公式,它确实有效:

=平均值(偏移量(C6,24,0,-24))

这个公式捕捉从00:00:00到11:30:00的范围,并按我所希望的那样对其进行平均,但是当我将公式向下拖动到下一个单元格时,C6会增加到C7,但我希望它每次增加48,这意味着C6应该变成C54。这意味着每次向下拖动时,它将平均2019年1月2日的AM值,以此类推

上述公式中的单元格引用是否有任何方式可以在每次向下拖动到另一个单元格时增加48而不是1


如果您必须使用平均(OFFSET())解决方案,我会有一个“helper”单元格(在本例中为J6),其中包含1,然后J7 have=J6+48,那么主公式可以是

=AVERAGE(OFFSET($C$6,J6,0,24))
然后,当您向下复制公式时,还需要从J7向下复制。 Rows参数是专门为您想要做的事情而构建的。改变参考单元格的努力违背了这一目的

编辑,因为我错过了AM/PM拆分:

但是,我认为AVERAGEIFS()更适合您的要求。这取C列中所有值的平均值,其中A列中的日期与G6单元格中的日期匹配(将其更改为输出所在的位置)。这将避免在您的任何日期缺少任何半小时时段时出现错误

=AVERAGEIFS($C:$C,$A:$A,G6,$B:$B,"<"&TIMEVALUE("12:00:00"))

=AVERAGEIFS($C:$C,$A:$A,G6,$B:$B,”如果您必须使用平均值(OFFSET())解决方案,我将有一个包含1的“helper”单元格(在本例中为J6),然后J7 have=J6+48,那么主公式可以是

=AVERAGE(OFFSET($C$6,J6,0,24))
然后,当您向下复制公式时,还需要从J7向下复制。 Rows参数是为您想要执行的操作而专门构建的。如果要更改引用单元格,则无法达到此目的

编辑,因为我错过了AM/PM拆分:

但是,我认为AVERAGEIFS()更适合您的要求。这将取C列中所有值的平均值,其中A列中的日期与G6单元格中的日期相匹配(将其更改为输出所在的位置)。这将避免在任何日期缺少半小时时段时出现错误

=AVERAGEIFS($C:$C,$A:$A,G6,$B:$B,"<"&TIMEVALUE("12:00:00"))

=AVERAGEIFS($C:$C,$A:$A,G6,$B:$B,”我创建了一个类似于您的数据集:

当日期为'01/01/2019'且时间为AM时,我在
F4
中使用的公式是AVERAGEIFS:

我的公式是:

=AVERAGEIFS($C$6:$C$101;$A$6:$A$101;E4;$B$6:$B$101;"<"&0,5)
希望你能根据自己的需要来调整

注意:因为您的数据位于数据透视表中(您从未提到过),如果数据透视表发生变化,您需要调整公式。解决方案是使用从第6行到最后一行的范围,因此公式将始终包含所有行。记住不要显示总行,否则可能会影响结果

选项2:如果您可以向原始数据添加一个额外的列(不在透视表中),这可能会有很大帮助

我使用了与以前相同的数据,但我添加了一个额外的列,名为
AM/PM
,上面有一个公式:


=IF(B6我创建了一个类似于您的数据集:

当日期为'01/01/2019'且时间为AM时,我在
F4
中使用的公式是AVERAGEIFS:

我的公式是:

=AVERAGEIFS($C$6:$C$101;$A$6:$A$101;E4;$B$6:$B$101;"<"&0,5)
希望你能根据自己的需要来调整

注意:因为您的数据位于数据透视表中(您从未提到过),如果数据透视表发生变化,您需要调整公式。解决方案是使用从第6行到最后一行的范围,因此公式将始终包含所有行。记住不要显示总行,否则可能会影响结果

选项2:如果您可以向原始数据添加一个额外的列(不在透视表中),这可能会有很大帮助

我使用了与以前相同的数据,但我添加了一个额外的列,名为
AM/PM
,上面有一个公式:


=IF(B6C6应该变成C54为什么?我们可以看看数据是如何存储的吗?如果你根据特定的日期和时间进行平均,也许你可以使用函数平均值,如果上面抵消C6的公式将捕获AM值并对2019年1月1日的AM值进行平均。我希望它增加到C54,因为当公式抵消C54时,它将上限设置2019年1月2日的AM值,以此类推。因此,当我向下拖动公式时,每个增量应为48,因为它将平均每月每天的AM值。这就是为什么我说可能可以使用AVERAGEIFS。此函数将允许您计算特定列的平均值,但仅当in
Start\u Date
是指定值时ic日期和
开始时间
小于0,5(小于0,5表示下午12:00之前*)。这就是我要求查看您的输入和Expectec输出(期望结果)如何的原因一个AVERAGEIFS函数也可以很好地工作。当向下拖动公式时,它会使单元格的增量超过1。如果我每次向下拖动时都能使单元格引用的增量增加48,那么使用另一个公式会使我的工作量减少C6应该变成C54为什么?我们能看看数据是如何存储的吗?如果你在做averages基于特定日期和时间,如果上面抵消C6的公式将捕获AM值并对2019年1月1日的AM值进行平均,可能您可以使用函数average。我希望它增加到C54,因为