根据颜色和其他标准计算单元格

我正在使用Excel中的一些清单function,其基础是我们有一定数量的人员需要进行工作,包括多个站点的轮class

名册冲突 -  Joe Bloggs 4 @二个站点在21/5/2014

在规划花名册时,我们使用一组简单的彩色单元格填写,以便人们在日间,夜class,不花名册,年假等情况下进行填充。鉴于我们计划有多个网站,我需要快速公式,检查是否已经在多个地点同时轮class(显然不可能),这个人是否已经被列入名单,所以我们可以很容易地确定计划阶段何时发生冲突。 该公式需要返回TRUE或值(例如count> 1表示对该人员有多个赋值),以便我可以使用条件格式化或VBA来突出显示单元格/行,并提请注意冲突

我试过的是用几个VBA方法来加和/计数单元格:

Function ISFILLED(MyCell As Range) If MyCell.Interior.colorIndex > 0 Then Result = True Else Result = False End If ISFILLED = Result End Function 

和/或:

 Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean) Dim rCell As Range Dim lCol As Long Dim vResult lCol = rColor.Interior.ColorIndex If SUM = True Then For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = WorksheetFunction.SUM(rCell, vResult) End If Next rCell Else For Each rCell In rRange If rCell.Interior.ColorIndex = lCol Then vResult = 1 + vResult End If Next rCell End If ColorFunction = vResult End Function 

这两种方法都可以正常工作,但是我无法将它与SUMIFS / COUNTIFS样式函数结合起来,只计算当该个人的名字出现在该分配上时被着色的单元格的数量。

如果您查看名单中的示例图片,可以看到Joe Bloggs 4已在2014年5月21日在Site 1Site 2分配了一个class次。 我所追求的基本上是统计行上的彩色单元格的数量,如果符合条件的个人名称是针对这些单元格的 。 对于这个例子,如果将

 =COUNTIFS(C8:AQ8, "Joe Bloggs 4", C12:AQ12, *Cell is Coloured*) 

单元格的颜色并不重要(因此,第一个函数ISFILLED更好,因为我不需要用于填充的参考单元格),因为它只是一个感觉检查。

欣赏任何帮助/指针,因为它,我卡住了!

您将无法使用SUMIFSCOUNTIFS 。 您需要沿着这些线路:

 Function IsFilledArr(rng As Range) As Variant Dim i As Long, j As Long Dim v As Variant ReDim v(1 To rng.Rows.Count, 1 To rng.Columns.Count) For i = 1 To rng.Rows.Count For j = 1 To rng.Columns.Count v(i, j) = rng.Cells(i, j).Interior.ColorIndex > 0 Next j Next i IsFilledArr = v End Function 

这个UDF可以被称为数组公式,也就是select一个单元格范围,在左上angular单元格中input公式(而整个范围仍然被选中),然后按下CtrlShiftEnter键 。 然后你可以对返回的数组进行操作,例如SUM

用法示例:

在这里输入图像说明

其中-- double减法将布尔TRUE / FALSE值(不可加和)转换为1和0(即)。

我会让你适应这个,以适应你的特殊要求。

编辑:你想要更多:

计算列C中已填充单元格的数量,B列中有一个相邻的填充单元格 – 在这种情况下,C4将是满足该条件的唯一单元格。

这个公式会做的(作为数组公式input):

 =SUM(IF(IsFilledArr(B2:B7)+IsFilledArr(C2:C7)>1,1)) 

注意使用SUM(IF(...,1))来模仿COUNT 。 这是处理数组公式时的方法。

在这里阅读更多信息: http : //www.cpearson.com/excel/ArrayFormulas.aspx

你寻求帮助/指针; 这应该有足够的理由让你脱身。 您可以调整这种方法来满足您确切的需求。