我有一张包含以下输入的工作表:
0900-1800
0900-1800
DAYOFF
0900-1800
0900-1800
我的问题是如何仅计算具有时间的范围?例如,上面的数据应该计数 4,因为它只有 4 天有数字。
答案1
您可以添加第二列,其公式形式如下
=IF(ISNUMBER(VALUE(LEFT(A1,1))),1,0)
这将确定单元格的第一个字符是否A1
为数字字符,在您的示例中,这对应于工作日。工作日将1
在新列中表示为,其他日子将表示为0
。请注意,此公式假设您的工作日总是用数字开始字段,免费日永远不会这样!
然后,您可以对这个新列求和以获得总工作日数。
选项 2
正如评论中提到的,您可以尝试使用该函数COUNTIF
,该函数原则上允许计算具有某些特征的单元格,而无需临时列。问题是,据我所知,您无法充分利用单个公式的灵活性,因此我无法提出一个明确检查以数字字符开头的单元格的版本。不过,我找到了一个适用于您的示例的解决方案:
=COUNTIF(A1:A7;"<A")
我认为它统计了第一个字符的 ASCII 码小于字母“A”的单元格。请注意,这包括许多非字母字符,尤其是space
!
选项 3包括使用数组公式,灵感来自MrExcel.com 上的每日提示:
=SUM((A1:A5>="0")*(A1:A5<="9")*1)
这需要作为数组公式,即按下Ctrl+Shift+Enter
而不是直接按 Enter。这个解决方案与我给出的第一个解决方案相同,但避免了多余的列。请注意,额外的列仍然具有优点,您可以单独手动验证每一天是否被正确分类。