【发布时间】:2017-08-08 12:34:37
【问题描述】:
我知道这里有很多类似的主题提出了类似的问题,但实际上找不到我在寻找什么。
现在我有一个这样的数据数组;
A列和B列分别是公司的进出时间,格式为“时间”。
C 列也被格式化为“时间”并使用以下公式计算:
IF(B1>A1,B1-A1,IF(B1<A1,B1-A1,0))
使用数组中的进入和退出小时数来计算一个人工作了多少小时。
D 列的格式为 General,包含工作人员的公司名称,我只需要。
我尝试做的是这样的表;
这里的 A 列是人们一天工作的小时数,从每天 5 小时开始。
要计算每天工作一定小时数的人数,我必须选择小时范围,例如每天 5 小时,我说“从 4:45 到 5:14 工作的人。所以任何人在这之间的时间应该算作他们每天工作 5 小时。我对其他时间采取了类似的方法。
现在我为 R4 列创建的公式是;
COUNTIFS('06.08.2017'!$C$1:$C$300,">="&TIME(4,45,0),'06.08.2017'!$C$1:$C$300,"<="&TIME(5,14,0),'06.08.2017'!$D$1:$D$300,"COMP1")
对于 T4;
COUNTIFS('06.08.2017'!$C$1:$C$300,">="&TIME(4,45,0),'06.08.2017'!$C$1:$C$300,"<="&TIME(5,14,0),'06.08.2017'!$D$1:$D$300,"COMP2")
我在每个时间间隔重复一次,然后得到一个结果。它非常相似。事实上,COMP2 的总人数是正确的。但它们不适用于 COMP1。
我检查了几乎所有想到的东西,但找不到我犯错的地方。
更新:我试图找出问题所在,并将其缩小到它不计算的值。结果是;我找到了其中一个问题,但找不到第二个问题。
以下是新图片:
和
第一个问题是第 208 行。在第 208 行,时间是 00:19,使用我在上面 C 列中提到的公式,结果类似于 #####。所以我不得不手动添加日期 01/01/1990 以使公式给我结果。我得到的结果是你可以看到的 15:52:00,这是正确的。但是我在结果页面中使用的COUNTIFS 公式不计算在内,所以我不得不手动编写这个日期以使其计数。因此,我得到了 1 个失踪者。如果您能帮我解决这个问题以自动解决它而不是先更改添加 01/01/1990 然后手动写入时间,我将不胜感激。
现在结果表中缺少另一个人。由于数据范围较小,我手动对每个时间范围进行了颜色分类,并与结果表进行了比较。
问题单元格是R10,这个数字应该是4。但是它是3。所以我手动检查了哪个没有从数据表中计算出来,它来自第222行。我的第一个想法是它是相关的随着时间的推移,所以我尝试了相同范围内的各种时间,但它没有改变。但是当我在 D222 中重写“COMP1”时,它起作用了。
但是为什么呢?那是我的问题。我有很多这样的数据范围需要处理,所以每次尝试捕捉这样的问题对我来说太费时间了,所以我需要找到根本原因。我使用宏来生成 D 列。公司中有两组人,一组名为“XYZ”,另一组为“XYZ-B”,我想将他们转换为一个名为“COMP1”的公司。这是宏:
Sub ChangeCompanies()
'
' ChangeCompanies Macro
'
'
ActiveCell.Offset(0, 0).Columns("A:A").EntireColumn.Select
Selection.Replace what:="XYZ'", replacement:="COMP1", lookat:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace what:="XYZ-B", replacement:="COMP1", lookat:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
End Sub
为什么它对其他所有单元都有效,但对这个无效?
【问题讨论】:
-
comp1 的总人数有什么问题?是不是太多了,太少了?
-
您显示了 T4 的公式。 R5中真正的公式是什么?
-
@Luuklag 似乎有人失踪了。不多,8个人。我试图按照一个模式来看看我是否能看到这 8 个人有什么特别的“东西”,但没能做到。
-
@EganWolf 是的,我修正了错字,你说得对,R5 实际上是 T4。 R5的公式是;
COUNTIFS('06.08.2017'!$C$1:$C$300,">="&TIME(5,15,0),'06.08.2017'!$C$1:$C$300,"<="&TIME(5,44,0),'06.08.2017'!$D$1:$D$300,"COMP1") -
您的数据样本仅显示 COMP1 的 7 个条目,因此要么更新数据样本以包含用于构建结果表的所有条目,要么根据数据中的条目创建一个新的结果表样本。
标签: excel excel-formula