【问题标题】:COUNTIFS formula to count unique records where range contains dates within specified year criteriaCOUNTIFS 公式计算范围包含指定年份条件内的日期的唯一记录
【发布时间】:2014-10-27 15:19:44
【问题描述】:

我已经在谷歌上搜索了几个小时,试图创建一个 COUNTIFS 公式:

  1. 统计一个表范围内的唯一记录
  2. 日期在 4 年后
  3. 引用单元格中的一年

这是我目前所拥有的:=COUNTIFS(dte_degr_conferred2,"<="&YEAR('Student Success and Progress'!$G$1)+4),但它不正确,我尝试了几种变体

请注意:dte_degr_conferred2 列包含日期,'Student Success and Progress'!$G$1 包含 4 位数年份

非常感谢

【问题讨论】:

  • 它必须是 COUNTIFS 还是您正在探索不同的替代方案,例如VBA?
  • 我曾与 vba 合作过,希望有任何见解,但请注意,此计算的结果计数将与生成图表数据的其他公式计算值一起使用...在如果这对您提出的解决方案有威慑作用。
  • 如果您有两个日期是 2000 年 1 月 1 日,而另一张表的 G1 包含 2002 年的某个日期,您想仅根据这些日期计算 2(2 个相同日期)吗?

标签: excel date


【解决方案1】:

也许你的意思是这个数组公式**

=SUM(IF(FREQUENCY(IF(dte_degr_conferred2<>"",IF(YEAR(dte_degr_conferred2)='Student Success and Progress'!G1,dte_degr_conferred2)),dte_degr_conferred2),1))

问候

**数组公式的输入方式与“标准”公式不同。不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 在公式周围放置了大括号 {}(尽管不要尝试自己手动插入)。

【讨论】:

    【解决方案2】:

    尝试准确地找出您需要的东西(您可能过于复杂)。这是使用COUNTIFS 公式比较日期的示例。这个公式被输入到单元格E6中,设置如下:

    =COUNTIFS($B$2:$B$6,"<="&E3+4,$B$2:$B$6,">="&E3)
    

    【讨论】:

    • 如果 OP 为 dte_degr_conferred2 添加了年份列,则此方法有效。要满足“4 年内”标准,您可能需要将“
    • B 列中的数据将是日期而不是年份。
    【解决方案3】:

    我有一个更简单的解释:

    =COUNTIF(dte_degr_conferred2,">="&DATE('Student Success and Progress'!$G$1+4,1,1))
    

    【讨论】:

    • 计算晚于 4 年的日期,但我认为 OP 想要 4 年内的日期总和。
    • 不错,查看实际数据会有所帮助。
    • 需要在“学生成功与进步”中引用的 4 年内所有 UNIQUE 记录的计数(以 mm/dd/yyyy 格式)!$G$1。
    • 这是我现在正在尝试使用的,但它返回的记录太多。我怀疑它并没有只给我 id_num2 范围内唯一的记录计数。
    • =SUM(COUNTIFS(dte_degr_conferred2,""&"")),0)
    【解决方案4】:

    “计数唯一”要求使这个问题变得有趣。

    这是我想出的:

    =SUM(
      IF(
       FREQUENCY(
        IF((YEAR(ddc)>=ssp!$G$1) + (YEAR(ddc)<ssp!$G$1+4) = 2, ddc, ""),
        IF((YEAR(ddc)>=ssp!$G$1) + (YEAR(ddc)<ssp!$G$1+4) = 2, ddc, "")
       )>0,
       1
      )
     )
    

    ...其中ddcdte_degr_conferred2ssp'Student Success and Progress'(在 SO 上发帖时,将问题简化为基本内容会很有帮助,因为这样更容易回复,也更普遍有用。)

    作为数组公式输入:Ctrl + Shift + Enter

    示例

    在本例中,有三个不同的日期符合条件:05/12/2014、09/12/2014 和 05/26/2012。

    工作原理:

    在创建数组公式时,在将它们加入数组之前分别进行计算会很有用。我已经这样做了:

    C 列是=(YEAR(A1)&gt;=$B$1) + (YEAR(A1)&lt;$B$1+4)(复制下来)。在 Excel 中,TRUE 为 1,FALSE 为 0,因此您可以将布尔值相加。如果A1 介于B1B1+4 之间,则两个操作数都是TRUE,并且TRUE + TRUE = 2。

    D 列是=IF(C1=2,A1,"")(复制下来)。这会抓取符合条件的数据。 (我格式化为数字以突出 Excel 将日期存储为数字这一事实。)

    E 列是=SUM(IF(FREQUENCY(D1:D10,D1:D10)&gt;0,1))。有关此方法的说明,请参阅http://office.microsoft.com/en-us/excel-help/count-occurrences-of-values-or-unique-values-in-a-data-range-HP003056118.aspx

    我在顶部的解决方案将所有这些组合成一个数组公式。

    【讨论】:

      猜你喜欢
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      • 1970-01-01
      • 2019-12-04
      相关资源
      最近更新 更多