|
本帖收录到《Excel函数与公式实战技巧精粹》
解题思路 by Excelhome gouweicao78
1、 辅助列
若在原数据区域要取得连续时段降雨的内存数组比较困难,且有的月份没31天。
因此,辅助列是非常必要的,做成2列是为了方便阅读,其实只需要O列。
2、 辅助列中用日、月份在原数据表中查出每天的降水量,不难理解
3、 以3天连续降雨量为例
=MAX(SUBTOTAL(9,OFFSET($O$2,ROW(INDIRECT("1:"&366-F38)),,F38)))
ROW(INDIRECT("1:"&366-F38)产生1~363的序列
使得Offset从O2单元格开始偏移1~363次,高度为3(天数)
见O3右边绿色的小方块示意
Row部分也可以用Row($1:$363),增加的运算量不多。
Subtotal(9,Offset利用Subtotal函数支持三维引用的特性,产生363个连续3天降雨量的和
最后再用Max在这363个和中取最大值
TEXT($N$2+MATCH(F39,SUBTOTAL(9,OFFSET($O$2,ROW(INDIRECT("1:"&366-F38)),,F38)),0),"m月d日")
其中,Match在Subtotal得到的363个和之中,查找F39最大值第一次出现的位置
再用1月1日开始加上这个位置得到开始日期。
最后用Text将其显示为m月d日的格式,以便文本合并。 |
|