【问题标题】:Is there any way to use a wildcard in order to count dates?有没有办法使用通配符来计算日期?
【发布时间】:2017-10-09 14:25:26
【问题描述】:

有没有办法使用通配符来计算日期的部分字符串?

在我的电子表格中,我想使用 COUNTIF 函数来计算某个日期。但是,日期值也包含时间。

示例:“2017 年 12 月 6 日 17:35:12”

我只想包含“12/06/2017”

这是我的公式:=COUNTIF(Pivot_Data[Created Date],"*12/06/2017*")

【问题讨论】:

    标签: excel excel-formula wildcard countif


    【解决方案1】:

    如果我没记错的话,您必须在通配符上使用“&”连接运算符,而不是将其包含在字符串的其余部分中。这是 countif 和 sumif 函数特有的:

    =COUNTIF(Pivot_Data[创建日期],"*"&"12/06/2017"&"*")

    编辑:这是日期格式而不是文本格式的解决方案:

    =COUNTIFS(Pivot_Data[创建日期],">"&DATEVALUE("12/06/2017"),Pivot_Data[创建日期],"

    之所以有效,是因为日期在 Excel 的日期编码中表示为唯一整数,而时间则为十进制值。

    【讨论】:

    • 这仍然返回 0,这是我以前尝试解决此问题的众多方法之一
    • 在这种情况下,我敢打赌它与格式有关(即单元格被格式化为日期而不是文本)。让我看看我是否可以复制这个问题。
    • 我用作范围的数据透视表是由 VSTS 中的查询生成的,如果有帮助的话。
    • 刚刚更新了我的答案,但我看到 ImaginaryHuman072889 的想法基本相同。如果它导致问题,您可能希望通过更详细的设置说明来更新您的问题。
    【解决方案2】:

    将 * 放在日期的任一侧。例如=COUNTIF(E9,"*12/06/2017*")

    这是通配符匹配。根据需要调整范围。

    【讨论】:

    • 这与 OP 公式有何不同?
    • 抱歉,星号使文本变为斜体。这将返回值 0。
    • OP 询问通配符是什么。给出的例子。
    【解决方案3】:

    我不会搜索特定文本,而是检查日期是否与 Excel 的内置序列号相同。我也更喜欢SUMPRODUCT 而不是COUNTIF

    类似:

    = SUMPRODUCT((FLOOR(Pivot_Data[Created Date],1)=DATE(2017,12,6))+0)
    

    FLOOR 函数(在这种情况下)实际上只获取日期并删除对该日期时间的任何引用。

    我认为这种方式更好,因为它不依赖单元格是特定的文本格式。

    见下文,我使用了这个公式,但用A1:A5 替换了Pivot_Data[Created Date],只是为了证明这个公式适用于样本数据。正如预期的那样,该公式返回值 2,因为数据包含 2017 年 12 月 6 日的两个日期。注意它是如何不在乎现在几点的。

    【讨论】:

    • 这个公式仍然返回一个0。奇怪的是,输入完整的字符串“12/06/2017 17:35:12”返回正确的值。
    • 不知道为什么它不起作用。再看我的回答。我编辑了答案以表明它适用于我的带有示例数据的电子表格。
    • 仍然不起作用,也许该范围是单独工作表上的数据透视表?虽然,我在使用同一个数据库时没有遇到过这样的问题。或者可能是我的工作机器引起了问题?
    • 怀疑这是特定于您的机器的东西。这可能是因为数据透视表。我一般对数据透视表不太熟悉。如果它在不同的工作表上,也许尝试在表名前面指定工作表。 (例如Sheet1!Pivot_Data[Created Date])。如果这不起作用,不确定。
    • 这仍然返回 0。我倾向于相信它是数据透视表,但奇怪的是它返回完整字符串而不是部分字符串。
    猜你喜欢
    • 2021-09-11
    • 2023-04-08
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    相关资源
    最近更新 更多