我正在尝试对几千行天气数据进行排序。每行代表一个日期(列 C,DATE),我唯一关心的另一列是降水量(列 D,PRCP)。
我的目标是找出日历年内最不下雨的日期。
日期采用 8 个字符格式(即 19800111 = 1980 年 1 月 11 日),如果 PRCP 列 (D) 为 0,我需要计算日历日期,同时忽略前四位数字(年份)。这(我假设)将记录该日期的干燥天数。在函数结束时,计数最高的一天将是该年历史上最干燥的一天。
这有道理吗?有没有更好的方法?如何编写脚本?
附上 csv 列的屏幕截图。我使用的是 Excel for Mac v 15.25 感谢您的见解!
答案1
截断日期的前四位数字(例如,RIGHT(A1, 4)),然后按截断的日期排序。然后只需在每个唯一日期后执行 SUM() 即可。
答案2
在新列中写入正确的 4 位数字(月份和日期)
在 S1 中写入=RIGHT(C1,4)
并向下拖动选择 S 列并删除重复项
Column S Column T
0101 =Sumproduct(--Right($C$1:$C$9999,4)=S1)*(--$D$1:$D$9999))
0102
0103
=SUMPRODUCT(--(RIGHT($C$1:$C$9999,4)=S1)*(--$D$1:$D$9999=0))
其中 C1:C9999 是日期列
D1:D9999 是 PRCP 列
将其更改为与您的数据相对应并保留 $
您可以拖动公式来计算每一天的计数
然后按降序对 365 天进行排序
结果 0in T 表示 PRCP >0
仅当 PRCP 为 0 时,公式才计数
答案3
假设范围B7:B9999
存储日期和降水量值C7:C9999
(以一些随机 PRCP 数据为例)
,D7:D9999
使用公式填写一年中的某一天 (DOY) 数字
=DATE(MID(B7,1,4),MID(B7,5,2),MID(B7,7,2))-DATE(MID(B7,1,4),1,1)+1
F7
然后输入数组公式
(要输入公式,请按++Ctrl而 不是仅按标量公式)ShiftEnterEnter
=MIN(SUMIF($D$7:$D$9999,ROW($A$1:$A$365),$C$7:$C$9999)/COUNTIF($D$7:$D$9999,ROW($A$1:$A$365)))
,它将显示每日降水量的最小平均值。另一个数组公式
=MATCH(F7,SUMIF($D$7:$D$9999,ROW($A$1:$A$365),$C$7:$C$9999)/COUNTIF($D$7:$D$9999,ROW($A$1:$A$365)),0)
将G7
显示相应的 DOY 和公式
=TEXT(DATE(2001,1,1)+G7-1,"d-MMM")
将以H7
DOY 格式显示d-MMM
。