0

问题:我表中 的时间列是文本值,而不是时间值。我需要将其转换为 countifs() 函数中的时间值。就像是:

=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] 格式。

4

1 回答 1

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

于 2018-01-24T15:01:35.567 回答