Excel 复杂排序

Excel 复杂排序

我正在尝试对几千行天气数据进行排序。每行代表一个日期(列 C,DATE),我唯一关心的另一列是降水量(列 D,PRCP)。

我的目标是找出日历年内最不下雨的日期。

日期采用 8 个字符格式(即 19800111 = 1980 年 1 月 11 日),如果 PRCP 列 (D) 为 0,我需要计算日历日期,同时忽略前四位数字(年份)。这(我假设)将记录该日期的干燥天数。在函数结束时,计数最高的一天将是该年历史上最干燥的一天。

这有道理吗?有没有更好的方法?如何编写脚本?

附上 csv 列的屏幕截图。我使用的是 Excel for Mac v 15.25 感谢您的见解!

CSV 截图

答案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")

将以H7DOY 格式显示d-MMM

相关内容