You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算不含起始日的两日期工作日数(Excel/PowerBI/Python)

不含起始日的工作日天数计算方案

Excel 解决方案

核心思路:将起始日期向后偏移1天,再用工作日统计函数排除起始日。

  • 英文Excel版本:=NETWORKDAYS.INTL(initial_date+1, final_date, 1)
  • 西班牙语Excel版本(对应你使用的DIAWORKALHOTAL.INTL):=DIAWORKALHOTAL.INTL(fecha_inicial+1, fecha_final, 1)

用你的示例验证:15/08/2024+1=16/08/2024,统计16日到20日的工作日,结果为3天(16、19、20日),符合预期。

PowerBI 解决方案

在DAX中同样偏移起始日期,再调用NETWORKDAYS:

基础版计算列/度量值

work_days = NETWORKDAYS(table[initial_date] + 1, table[final_date], 1)

含边界判断版(处理起始日等于结束日的情况,返回0)

work_days = 
VAR adjusted_start = table[initial_date] + 1
RETURN
IF(adjusted_start > table[final_date], 0, NETWORKDAYS(adjusted_start, table[final_date], 1))

Python 解决方案

方法1:使用 Pandas

import pandas as pd

def count_workdays_excl_start(initial_date, final_date):
    # 转换为datetime格式(适配dd/mm/yyyy输入)
    initial_dt = pd.to_datetime(initial_date, format="%d/%m/%Y")
    final_dt = pd.to_datetime(final_date, format="%d/%m/%Y")
    # 生成起始日+1到结束日的工作日序列,统计长度
    workday_range = pd.bdate_range(start=initial_dt + pd.Timedelta(days=1), end=final_dt)
    return len(workday_range)

# 测试示例
print(count_workdays_excl_start("15/08/2024", "20/08/2024"))  # 输出:3

方法2:使用 NumPy

import numpy as np
from datetime import datetime

def count_workdays_excl_start(initial_date, final_date):
    initial_dt = datetime.strptime(initial_date, "%d/%m/%Y")
    final_dt = datetime.strptime(final_date, "%d/%m/%Y")
    # np.busday_count为左闭右开区间,所以结束日需+1才能包含final_dt当天
    return np.busday_count(initial_dt + pd.Timedelta(days=1), final_dt + pd.Timedelta(days=1))

# 测试示例
print(count_workdays_excl_start("15/08/2024", "20/08/2024"))  # 输出:3

内容的提问来源于stack exchange,提问作者Helloworl888888

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:32:47