问题: 我表格中的时间列是文本值,而不是时间值。我需要将它转换为countifs()函数中的Time值。类似的东西:
=COUNTIFS(TIMEVALUE(Table[Time]),">7:00:00 AM",TIMEVALUE(Table[Time]),"<=8:00:00 AM")
显然我不能将TIMEVALUE函数应用于数组,但我想。我该如何做到这一点?下面的完整场景......
要点: 我正在跟踪呼叫卷并使用SharePoint 2016来存储我的值。我有一个链接到SharePoint的Excel电子表格,另一个在转换值的同一个电子表格中。该表具有以下列值:
还有一些。此表中的每个条目都是一个呼叫摘要。例如,日期是呼叫的日期,时间是呼叫发生的时间等。我使用countifs()函数来计算呼叫,部门,代理和它们中的3个频率(混合) 。这是它的主要问题:我从SharePoint获得的时间值是文本值而不是时间;因此,当我尝试将其与另一个时间值进行比较时,它会比较两者的字符串值而不是时间。
这是我到目前为止所尝试的内容:我知道最简单的解决方案是将每个时间值转换为SharePoint本身的DateTime列(这是未来的目标),但我需要一个临时的解决方案,直到我可以筛选2000条记录。我目前正在使用帮助器表来转换时间值,但它要求我用所有值填充它,这似乎是多余的,所以我试图摆脱它。
我在上面提出了我的问题以供快速参考,但我的问题仍然是:如何将一个TIMEVALUE函数应用于countifs函数中的数组?如果不可能,有人可以提供替代解决方案吗?我想保持宏免费,所以最好没有宏或VBA,但如果它是唯一的解决方案,那么我会考虑它。
供参考,我在Office 365上使用Excel 2016和SharePoint 2016.我要转换为的时间值采用[hh:mm AM / PM]格式。
答案 0 :(得分:0)
COUNTIFS
函数只能处理范围,而不能处理数组,因此您无法使用COUNTIFS
中的任何函数或操作(无论如何都不要修改范围)
您应该能够使用+0等数学运算将文本值转换为SUMPRODUCT
公式中的实际值,只要该范围内没有不可转换的文本值,例如
=SUMPRODUCT((Table[Time]+0>="7:00"+0)*(Table[Time]+0<"8:00"+0))
或者如果您想要计算一小时,您可以使用HOUR
这样的功能:
=SUMPRODUCT((HOUR(Table[Time])=7)+0)
您可以为其中任何一个添加更多条件,但它会比使用COUNTIFS