【问题标题】:Ignoring Time Value from DateTime cells - MS Excel忽略 DateTime 单元格中的时间值 - MS Excel
【发布时间】:2013-02-06 12:48:40
【问题描述】:

我在 A 列中有以下日期值(带时间)。

1/1/2012 8:50  
1/1/2012 8:45  
1/1/2012 8:55  
1/1/2012 8:59  
1/1/2012 8:12  
1/1/2012 8:30  
1/1/2012 9:50  
1/1/2012 10:00

以及单元格 B1 中的以下值。

1/1/2012

现在,当我应用公式 =COUNTIF(A:A,"=" & B1) 来计算 A 列中与单元格 B1 匹配的单元格数时,它给了我零,因为它还考虑了时间值。

有什么解决方法/技巧吗?

【问题讨论】:

    标签: excel datetime excel-formula formula formulas


    【解决方案1】:

    INT 函数将仅从日期/时间获取日期,因此请尝试 SUMPRODUCT 像这样

    =SUMPRODUCT((INT(A2:A10)=B1)+0)

    ....最好像我一样限制范围,这样您就不会将整个列与 SUMPRODUCT 一起使用(在 Excel 2003 或更早版本中是强制性的)

    ...或使用COUNTIFS 检查日期/时间是否在 B1 和 B1+1 之间(日期 B1 中的某个时间),即

    =COUNTIFS(A:A,">="&B1,A:A,"<"&B1+1)

    【讨论】:

    • 为了补充巴里的答案,excel 中的日期只是从过去任意一天开始增加的数字。例如,在任何单元格中键入 2/5/2013。 Excel 会自动将此单元格设置为日期格式。现在右键单击并格式化单元格。在数字选项卡下,选择一般,您将看到 Excel 确实将日期存储为 41310。现在 excel 对时间做同样的事情,除了时间是一天的小数部分(或小数)。这就是为什么 INT() 函数可以很好地获取日期的原因。它将时间四舍五入到最近的一天(或将小数四舍五入到最接近的整数)。
    • Int() 不会四舍五入到最接近的整数。它只是截断小数点。
    • 我忘记了类型 down。它将小数向下舍入到最接近的整数。
    • @BarryHoudini:你能看看stackoverflow.com/questions/14747689/…
    【解决方案2】:

    这样效果更好:

     =DATEVALUE(TEXT(A1,"dd/mm/yyyy"))
    

    【讨论】:

      【解决方案3】:

      我想出了一个解决方法。为 A 列的 INT 和 B 列的 INT 创建一个附加列,然后对这些列使用 match 函数。有点笨拙,但它确实有效。

              A       ||      B     ||      C     ||     D     ||        E
       --------------------------------------------------------------------------
       1/1/2012 8:50  ||  1/1/2012  ||  =INT(A2)  ||  =INT(B2) ||  =MATCH(C2, D2)
      

      【讨论】:

        猜你喜欢
        • 2018-11-20
        • 2020-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-05
        • 1970-01-01
        相关资源
        最近更新 更多