我有一个包含多个列的表,其中一列是日期/时间字段。我试图使用以下
获取每天的实例数=COUNTIFS(Table4[Data],"Apple",Table4[Date],(CONCATENATE(V4,"*")))
Data Date Comp Date Count
Apple 6/12/18 1:00 PM 6/12/18 12:00 AM 0
Apple 6/12/18 7:00 AM
Orange 6/12/18 1:30 PM
Apple 6/11/18 11:23 AM
根据我对这里所有活动部件的理解,我应该检查是否" Apple"存在于数据列中,然后如果" 6/12/18"存在后的任何数量或类型的字符。如果两者都为真,那么我将得到一个计数+ 1,在上面的例子中给我一个值为2的值。
我实际得到的是0,除非我将日期的时间部分与数据完全相同然后删除通配符," *"等式。
我做错了什么,或者不能用通配符来完成我正在尝试的事情?
谢谢!
答案 0 :(得分:2)
我认为你应该正确设定你的标准。
如果在包含的日期旁边添加一个附加列,使用INT()计算日期的整数值,并将显示格式化为DATE(m / d / yyyy),那么您应该可以使用以下COUNTIFS公式
=COUNTIFS(Table4[Data], "Apple", Table4[Date], "=6/12/18")
查看其办公室的解释性视频'支持网站:https://support.office.com/en-us/article/countifs-function-dda3dc6e-f74e-4aee-88bc-aa8c2a866842
答案 1 :(得分:0)
如果您的[Date]列是datetime或smalldatetime,您可以使用CONVERT函数使用它,具体取决于您想要分组的方式。
例如,如果您不关心组的时间,可以使用下一个查询:
SELECT CONVERT(varchar,[Date],103), [Data], COUNT(*)
FROM [test_delete].[dbo].[Table1]
GROUP BY CONVERT(varchar,[Date],103), [Data]
这应该是这样的:
[Date] [Data] [Count]
11/06/2018 Apple 1
12/06/2018 Apple 2
12/06/2018 Orange 1
希望这有助于你
答案 2 :(得分:0)
如果您的日期存储为日期而不是文本,请使用以下内容:
=COUNTIFS(Table4[Data],"Apple",Table4[Date],">="&V4,Table4[Date],"<"&V4+1)