【问题标题】:Excel Countif - Need no. of cells in a row that have a date greater than specific dateExcel Countif - 不需要。日期大于特定日期的行中的单元格数
【发布时间】:2016-01-31 18:53:12
【问题描述】:

我有一个这样的表,我想在 B 列中插入公式以得出指示值。

逻辑是这样的 - 我想计算该特定行中的每个备用单元格,从 C 列到 AA 列,并获取包含大于或等于目标日期的日期值的单元格数。

Cols/Rows      A        B     C      D     E         F      G
  1       Target Date   X   X Date   Y    Y Date     Z    Z Date
  2       13-12-2015    2               13-12-2015       13-01-2016
  3       24-11-2015    1               25-11-2015       20-10-2015
  4       23-01-2016    0                   
  5       30-01-2016    0               06-06-2016       14-04-2015

首先,在我将条件放在日期之前,我首先尝试使用数组公式=IF(MOD(COLUMN($C4:$AA4),2)=0,COLUMNS($C4:$AA4))获取此范围内的备用列数

但由于某种原因,这会返回FALSE。只有当它返回一个数值时,我才能继续为日期添加条件。

如何修改公式?任何帮助表示赞赏!

【问题讨论】:

    标签: excel date excel-formula excel-2007 countif


    【解决方案1】:

    您想使用 SUMPRODUCT():

    =SUMPRODUCT((MOD(COLUMN($C4:$AA4),2)=0)*($C4:$AA4>=DATEVALUE"13/1/2015")*($C4:$AA4<=DATEVALUE"13/1/2016"))
    

    这将返回日期在 2015 年 13 月 1 日到 2016 年 13 月 1 日之间的所有其他列的计数

    【讨论】:

    • 谢谢!假设我想将范围设为 $A4:$AA4,有什么方法可以只排除我输入公式的当前单元格,以避免循环引用?
    • @user3164272 我不知道,您可以在第一个 sumproduct 上添加第二个 sumproduct 以获得左侧和右侧的单元格。
    • 谢谢,那种帮助。我会试一试。
    • 不过,在某些单元格中,我有诸如“到期”之类的文本值。这些也被视为大于指定日期。例如,在单元格 E4 中,如果我键入一些文本,则 B4 将值设为 1 而不是 0。我该如何解决这个问题?
    【解决方案2】:

    我目前无法访问 Excel 进行检查,但我怀疑问题在于您使用参数调用 COLUMN。我认为,如果您删除范围并执行=IF(MOD(COLUMN(), 2)=0, COLUMNS($C4:$AA4),则 if 至少会在偶数列上成立。 COLUMN 返回当前列的数字索引,因此您可能需要摆弄一些东西才能使其正常工作。

    【讨论】:

      【解决方案3】:

      蛮力方法,根据需要编写尽可能多的这些, =1*(C5>A5) + 1*(E5>A5) + 1*(G5>A5) + 1*(I5>A5) 等等。

      【讨论】:

      • 蛮力在这里帮不了我,因为每次添加包含数据的新列时我都需要修改公式。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      相关资源
      最近更新 更多