如何计算指定日期范围内任务完成时长的中位数?
计算指定日期范围内任务时长的中位数
Excel 操作方法
- 假设日期时间列为A列,任务时长列为B列,指定起始日期为
2022/9/1、结束日期为2022/10/31 - 使用
MEDIANIFS函数实现,公式如下:
该公式会先筛选出A列中落在指定日期区间的记录,再计算对应B列时长数据的中位数。如果日期列包含具体时间,公式依然有效——DATE函数生成的日期默认时间为00:00:00,=MEDIANIFS(B:B, A:A, ">="&DATE(2022,9,1), A:A, "<="&DATE(2022,10,31))>=起始日期会包含当天所有时间点的数据,<=结束日期会包含结束当天23:59:59之前的所有数据。 - 若需通过单元格动态指定日期范围(比如起始日期存于D1、结束日期存于D2),可修改公式为:
=MEDIANIFS(B:B, A:A, ">="&D1, A:A, "<="&D2)
Python(Pandas库)操作方法
- 先导入库并读取、预处理数据:
import pandas as pd # 读取数据(支持excel/csv等格式,替换为你的文件路径) df = pd.read_excel("你的数据文件.xlsx") # 确保日期列转为datetime格式(若原始数据格式不符) df["日期时间列"] = pd.to_datetime(df["日期时间列"]) - 筛选指定日期范围的数据并计算中位数:
Pandas的# 定义目标日期范围 start_date = "2022-09-01" end_date = "2022-10-31" # 筛选区间内的数据 filtered_data = df[(df["日期时间列"] >= start_date) & (df["日期时间列"] <= end_date)] # 计算中位数 median_duration = filtered_data["任务时长列"].median() print(f"指定日期范围内的时长中位数:{median_duration}")median()方法会自动忽略空值,直接输出筛选后数据集的中位数。
内容的提问来源于stack exchange,提问作者Grishin Gopalkrishnan
相关产品推荐
相关产品推荐

