向下迭代Excel公式单元格范围24

时间:2019-06-05 17:21:43

标签: excel excel-formula

我有一个带有4列的Excel工作表:小时,日期,预测和实际。我试图首先找到对应于当天最高aActual值的Hour。我已经通过以下方式做到了:

=MATCH(MAX(D2:D25),D2:D25,0)

接下来,我试图找到与当天最高预测值相对应的小时,以及与一天中第二,第三,第四和第五高小时相对应的小时。我已经完成了第一步:

=MATCH(MAX(C2:C25),C2:C25,0)

第二步/第三步/第四步/第五步(例如第二步):

=MATCH(LARGE(C2:C25,2),C2:C25,0)

我的问题是我想在数据集范围内每天重复一次,这需要将公式中的范围向下迭代/下移24,而我不太确定如何完成此操作。我试过只使用除单元格值之外的值,但这没有用(不用说我不是excel最好的)。任何帮助表示赞赏!我已经附上了电子表格的屏幕截图,以供参考。

enter image description here

1 个答案:

答案 0 :(得分:0)

您应该利用INDIRECT()公式选择范围。在第一天将以下公式替换为以下公式,然后将其复制下来:

=MATCH(MAX(INDIRECT("D"&(row(a1)-1)*24+2&":D"&row(a1)*24+1)),INDIRECT("D"&(row(a1)-1)*24+2&":D"&row(a1)*24+1),0)

=MATCH(MAX(INDIRECT("C"&(row(a1)-1)*24+2&":C"&row(a1)*24+1)),INDIRECT("C"&(row(a1)-1)*24+2&":C"&row(a1)*24+1),0)

=MATCH(LARGE(INDIRECT("C"&(row(a1)-1)*24+2&":C"&row(a1)*24+1),2),INDIRECT("C"&(row(a1)-1)*24+2&":C"&row(a1)*24+1),0)

例如,对于第3天,C50:C73的创建方式如下(第三行):

INDIRECT("C"&(row(a3)-1)*24+2&":C"&row(a3)*24+1)

参考行(a3)= 3,则:

INDIRECT("C"&(3-1)*24+2&":C"&3*24+1)
INDIRECT("C"&50&":C"&73)
INDIRECT("C50:C73")