C1单元格公式:=NETWORKDAYS(A1,B1,$F$2:$F$10)+COUNTIFS($I$2:$I$3,">="&A1,$I$2:$I$3,"<="&B1),如下图所示

解析:

1、使用NETWORKDAYS函数计算2个日期之间的工作日(去除了周末,但是没有处理调休)

2、使用 countifs 函数加上调休补班的日期

=====================================================================

用到2个函数:

1)NETWORKDAYS

2)COUNTIFS

***********************************************NETWORKDAYS******************************************

NETWORKDAYS(start_date,end_date,holidays)

参数说明:

start_date:表示开始日期。

end_date:表示结束日期。

holidays:在工作日中排除的特定日期。

公式 =NETWORKDAYS(A1,B1,$F$2:$F$10)

表示计算A1,B1这2个日期之间去除周末(周六、周日)以及F2-F10这些日期的天数

*********************************************** CountIfs *************************************************

一、CountIfs函数语法

1、表达式:COUNTIFS(Criteria_Range1, Criteria1, [Criteria_Range2, Criteria2], …)

中文表达式:COUNTIFS(条件区域1, 条件1, [条件区域2, 条件2], …)

2、说明:

A、条件区域和条件组成一个条件区域/条件对,至少包含一个条件区域/条件对,最多只能有 127 个条件区域/条件对。

B、如果有多个条件区域,每个条件区域必须有相同的行数和列数,它们可以不相邻。

C、如果单元格为空,CountIfs 将它的值视为 0。

D、在条件中可以使用通配符问号(?)和星号(*),问号表示任意一个字符,星号表示一个或一串字符;如果要查找问号或星号,需要在它们前面加转义字符~,例如查找问号,表达式可以这样写 ~?。

二、CountIfs函数的使用方法及实例

(一)只有一个条件区域/条件对

1、假如要统计“销售地区”为“广州”的个数。选中 D13 单元格,输入公式 =COUNTIFS(D2:D12,"广州"),按回车,返回统计结果 4;操作过程步骤,如图1所示:

图1

2、公式说明:公式 =COUNTIFS(D2:D12,"广州") 只有一个条件区域/条件对,条件区域为 D2:D12,条件为“广州”,是用文字作条件,并且可以在文字前面加等号,即 =COUNTIFS(D2:D12,"=广州");另外,仅数值也可以作条件。

(二)有两个条件区域/条件对

1、假如要统计“销售地区”为“广州”且销量大于等于 500 的服装件数。把公式 =COUNTIFS(D2:D12,"广州",F2:F12,">=500") 复制到 F13 单元格,按回车,返回统计结果为 3,操作过程步骤,如图2所示:

图2

2、公式中第一个条件区域/条件对为 D2:D12,"广州",第二个条件区域/条件对为 F2:F12,">=500",即先统计 D2:D12 中为“广州”的个数,再统计 F2:F12 中销量大于等于 500 的个数;条件2 ">=500" 也可以用 ">="&500。

(三)用通配符问号与星号组合条件

1、假如要统计以“T恤”结尾、以“白”字开头、仅有三个字的服装件数;把公式 =COUNTIFS(B2:B12,"*T恤",B2:B12,"白*",B2:B12,"???") 复制到 B13 单元格,如图3所示:

图3

2、按回车,返回结果 1,如图4所示:

图4

3、如果要统计以一个指定字(或词)开头且以另一个指定字(或词)结果的服装件数,例如统计以“粉”字开头且以“衬衫”结尾的服装件数,公式可以这样写:=COUNTIFS(B2:B12,"粉*衬衫")。

(四)条件为空、不为空和不等于

1、假如要统计“分类”不等于“衬衫”且“销量”为空的服装件数。把公式 =COUNTIFS(C2:C12,"<>衬衫",F2:F12,"") 复制到 F13 单元格,按回车,返回统计结果 2,操作过程步骤,如图5所示:

图5

2、如果要统计“分类”不等于“衬衫”且“销量”不为空的服装件数,则公式可以这样写:=COUNTIFS(C2:C12,"<>衬衫",F2:F12,"<>"&""),如图6所示:

图6

(五)CountIfs 与 Average 组合使用

1、假如要统计“分类”为“T恤”、销售地区为“杭州”且大于平均销量的服装件数。把公式 =COUNTIFS(C2:C12,"T恤",D2:D12,"杭州",F2:F12,">"&AVERAGE(F2:F12)) 复制到 F13 单元格,按回车,返回结果 2,操作过程步骤,如图7所示:

 

2、在条件中,只需用 & 连接 > 与求平均值的函数 Average,如果要用其它函数也是一样的连接方法。

三、CountIfs函数与CountIf函数用多条件的比较

1、CountIfs函数可轻松组合多个条件,而CountIf函数需要用数组才能组合多个条件。假如要统计销量大于等于 500 且小于等于 800 的服装件数。用 CountIfs函数公式可这样写:=COUNTIFS(F2:F12,">=500",F2:F12,"<=800"),而用 CountIf函数,公式需要这样写:=SUM(COUNTIF(F2:F12,{">=500",">800"})*{1,-1}),两个公式统计结果都为 4;操作过程步骤,如图8所示:

图8

2、用CountIfs函数写要简单得多,且它们的计算顺序是一样的,都先统计满足第一个条件的个数,再统计满足第二个条件的件数,因此遇到多个条件的情况,可以先选用CountIfs函数。

******************************************* END *********************************************

excel2007灵活计算2个日期之间的工作日的更多相关文章

  1. 用VBA计算两个日期之间的工作日(去掉周末两天)

    最近公司HR和Finance想算员工的工作天数,想让我帮忙写些VBA,自己从网上找了下代码,自己再改改,以下来自网络. 计算两个日期之间的工作日,用VBA,因量大,最好用数组做 Sub kk() Di ...

  2. mysql 计算两个日期之间的工作日天数

    创建透视表t500 建表 CREATE TABLE `t500` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE ...

  3. java中计算两个日期之间天数的程序设计。

    //用java编写出一个以下方法计算两个日期之间天数的程序设计. import java.util.regex.Matcher; import java.util.regex.Pattern; pub ...

  4. java计算两个日期之间相隔的天数

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  5. java计算两个日期之间相隔的月份(向下取整)

    最近需求里面有个需要计算两个日期之间相隔的月份,写起来还挺繁琐,需要将各种情况都要考虑到,写了一个作为以后自己的工具吧. //获取哪一天 public static int getDay(Date d ...

  6. JS计算两个日期之间的天数

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 计算两个日期之间相差的年数月数天数(JS实现)

    前言 如何计算年龄?我的第一直觉做法:(当前时间戳 - 出生时的时间戳)/ (365*86400)  所得结果向下取整.后来发现这种做法获得的结果不准确,不是多了一岁就是少了一岁,不能简单粗暴的这么处 ...

  8. c#后台计算2个日期之间的天数差

    / 计算2个日期之间的天数差 DateTime dt1 = Convert.DateTime("2007-8-1");  DateTime dt2 = Convert.DateTi ...

  9. 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd和YYYY-mm-dd HH:mm:ss

    /** * 计算两个日期之间相差的天数(带带负数) 支持格式YYYY-mm-dd比较 * @param higDate 减数 * @param lowDate 被减数 * @returns 差值天数 ...

随机推荐

  1. OpenWrt-19.07.2 For HC5861(极路由3) /HiWiFi/Gee最新固件,极路由3刷openwrt

    OpenWrt For HiWiFi(HC5861) 自编译精减固件,极路由3自用固件 HC5861-uboot.bin v19.07.2 下载 支持 NTFS 读写 支持 Wi-Fi 5G 驱动 默 ...

  2. 美国在线CEO:雅虎被Verizon收购或导致裁员

    北京时间9月13日消息,据外媒报道,AOL首席执行官蒂姆·阿姆斯特朗(Tim Armstrong)称,雅虎.AOL和Verizon整合业务,将导致"部分工作岗位的变化". 阿姆斯特 ...

  3. TreeMap分析(中)

    通过上篇文章,大家已经能够理解红黑树的基础数据结构,那么这篇文章就来分析下,在红黑树中插入一个结点后,内部数据结构发生了哪些变化. TreeMap插入某个结点的源码分析 /** * 插入节点,并平衡红 ...

  4. Arduino编程基础1.1

    Arduino编程语言是建立在C/C++语言基础上的,即以C/C++语言为基础,把AVR单片机(微控制器)相关的一些寄存器参数设置等进行函数化,以利于开发者更加快速地使用.其主要使用的函数包括数字I/ ...

  5. RabbitMQ的使用(一)- RabbitMQ服务安装

    RabbitMQ的使用(一)- RabbitMQ服务安装 作者:markjiang7m2 原文地址:https://www.cnblogs.com/markjiang7m2/p/12769627.ht ...

  6. xml出现Exception in thread "main" java.lang.NullPointerException

    运行代码出现Exception in thread "main" java.lang.NullPointerException 可以看下这个链接:https://ask.csdn. ...

  7. K. Road Widening

    \(考虑每个区域可行的区间\) \(x[1]=s[1]\ \ y[1]=s[1]+g[1]\) \(x[i]=max(x[i-1]-1,s[i]),y[i]=min(y[i-1]+1,s[i]+g[i ...

  8. (2).mybatis单元测试(junit测试)

    一.Junit使用步骤:1.创建测试目录,(src.测试目录是test)2.在测试目录test中创建与src中相同的包名3.为需要测试的类创建测试类,例如:UsersMapper,测试类是UsersM ...

  9. Oracle的三种循环

    一.loop循环 语法:声明循环变量loop判断循环条件 ,如果循环条件不成立,跳出循环if 条件表达式 thenexit;end if;语句块;改变循环变量的值end loop; 举例:输出1到10 ...

  10. java读源码 之 queue源码分析(PriorityQueue,附图)

    今天要介绍的是基础容器类(为了与并发容器类区分开来而命名的名字)中的另一个成员--PriorityQueue,它的大名叫做优先级队列,想必即使没有用过也该有所耳闻吧,什么?没..没听过?emmm... ...