【问题标题】:Count number of records by year between two ranges in excel and dealing with null dates按年份计算excel中两个范围之间的记录数并处理空日期
【发布时间】:2021-04-13 17:01:53
【问题描述】:

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

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

  • 企业必须在当年或之前开始运营(开始日期列)。
  • 企业必须在当年之后结束其运营(结束日期列)。
  • 如果企业仍处于活动状态(意味着 enddate 列为 null 或“ - - ”),则仍计入当年。

我想将计数放在 F 列中,从 1973 年开始到 2020 年。

例如:1990年的企业数量为7

  • ABC:1990 年之前的起始日期和结束日期为空
  • GHI:stardate 早于 1990 年,enddate 为空
  • JKL:stardate 早于 1990 年,enddate 为空
  • MNO:起始日期在 1990 年之前,结束日期在 1990 年之后
  • PQR:开始日期在 1990 年之前,结束日期在 1990 年之后
  • STU:开始日期在 1990 年之前,结束日期在 1990 年之后
  • 大众:1990 年(年底前)的起始日期和 1990 年之后的结束日期

【问题讨论】:

  • 您想要 PowerQuery 解决方案吗?
  • @AnilGoyal 不,只是一个简单的 excel 公式

标签: excel date excel-formula


【解决方案1】:

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

=SUM((YEAR($B$2:$B$10)<=E2)*(YEAR(IF(ISNUMBER($C$2:$C$10),$C$2:$C$10,TODAY()))>E2))

编辑后的数组公式按ctrl + shift + enter确认

【讨论】:

  • 我没有得到相同的结果:1973 年为 0,1974 年为 0,1975 年为 1,依此类推。你为那个公式做了什么特殊的配置吗?顺便说一句,我正在将所有函数翻译成西班牙语。
  • @Juank 你输入的是数组公式吗?
  • 看来一组括号是问题所在。非常感谢,您的回答对我很有帮助。
  • @Juank 很高兴你发现了问题。
【解决方案2】:

使用 SUMPRODUCT:

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

【讨论】:

  • 我多年来都得到 0。此外,在 ISNUMBER 公式中,必须将范围更正为 $C$2:$C$10,因为 excel 会抛出错误。
  • 那么您的日期有可能是看起来像日期而不是真实日期的文本。
  • 单元格数据类型表示这些是日期(不是数字、一般或其他类型)。还有其他方法可以检查这些值是否为真实日期?
猜你喜欢
  • 1970-01-01
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2021-05-25
  • 2019-02-14
相关资源
最近更新 更多