按年份统计excel中两个范围之间的记录数并处理空日期

按年份统计excel中两个范围之间的记录数并处理空日期,excel,date,excel-formula,Excel,Date,Excel Formula,我有一个Excel表格,里面有关于不同本地业务的信息,包括他们开始运营的日期和业务结束的日期。您可以在下面看到简化版本: 我需要的是统计每年的业务活动数量,这意味着: 企业必须在本年度之前或本年度内开始运营(startdate列) 业务必须在当前年度之后结束运营(enddate列) 如果业务仍处于活动状态(即enddate列为null或“--”),则该业务仍计入当前年度 我想把计数放在F栏,从1973年开始,到2020年 例如:1990年的业务数量为7家: ABC:1990年之前的开始日

我有一个Excel表格,里面有关于不同本地业务的信息,包括他们开始运营的日期和业务结束的日期。您可以在下面看到简化版本:

我需要的是统计每年的业务活动数量,这意味着:

  • 企业必须在本年度之前或本年度内开始运营(startdate列)
  • 业务必须在当前年度之后结束运营(enddate列)
  • 如果业务仍处于活动状态(即enddate列为null或“--”),则该业务仍计入当前年度
我想把计数放在F栏,从1973年开始,到2020年

例如:1990年的业务数量为7家:

  • ABC:1990年之前的开始日期和结束日期空
  • GHI:1990年之前的开始日期和结束日期空
  • JKL:1990年之前的开始日期和结束日期为空
  • MNO:1990年之前的开始日期和1990年之后的结束日期
  • PQR:1990年之前的开始日期和1990年之后的结束日期
  • STU:1990年之前的开始日期和1990年之后的结束日期
  • 大众:1990年开始日期(年底前)和1990年后结束日期
使用SUMPRODUCT:

=SUMPRODUCT(($B$2:$B$10<=DATE(E2,1,1))*(IF(ISNUMBER($C$:$C$10),$C$:$C$10,TODAY())>=DATE(E2,12,31)))
=SUMPRODUCT($B$2:$B$10=日期(E2,12,31)))

您可以使用以下数组公式:

=SUM((YEAR($B$2:$B$10)<=E2)*(YEAR(IF(ISNUMBER($C$2:$C$10),$C$2:$C$10,TODAY()))>E2))
=总额((年度($B$2:$B$10)E2))
编辑后的数组公式通过按ctrl键确认


我没有得到相同的结果:1973年是0,1974年是0,1975年是1,依此类推。你为这个公式做了什么特别的配置?顺便说一句,我正在把所有函数翻译成西班牙语的等价形式。@Juank你是以数组公式的形式输入的吗?看来是一组括号出了问题。非常感谢,你的回答真的帮了我的忙。@Juank很高兴你发现了这个问题。我多年来一直得0分。此外,在ISNUMBER公式中,必须将范围更正为$C$2:$C$10,因为excel会抛出错误。然后,您的日期可能是看起来像日期而不是真实日期的文本。单元格数据类型表示这些是日期(不是数字、常规或其他类型)。是否有其他方法检查这些值是否为真实日期?是否需要PowerQuery解决方案?@AnilGoyal否,只是一个简单的excel公式