根据颜色和其他标准计算单元格
我正在使用Excel中的一些清单function,其基础是我们有一定数量的人员需要进行工作,包括多个站点的轮class
在规划花名册时,我们使用一组简单的彩色单元格填写,以便人们在日间,夜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 1和Site 2分配了一个class次。 我所追求的基本上是统计行上的彩色单元格的数量,如果符合条件的个人名称是针对这些单元格的 。 对于这个例子,如果将
=COUNTIFS(C8:AQ8, "Joe Bloggs 4", C12:AQ12, *Cell is Coloured*)
单元格的颜色并不重要(因此,第一个函数ISFILLED更好,因为我不需要用于填充的参考单元格),因为它只是一个感觉检查。
欣赏任何帮助/指针,因为它,我卡住了!
您将无法使用SUMIFS
和COUNTIFS
。 您需要沿着这些线路:
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公式(而整个范围仍然被选中),然后按下Ctrl – Shift – Enter键 。 然后你可以对返回的数组进行操作,例如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
你寻求帮助/指针; 这应该有足够的理由让你脱身。 您可以调整这种方法来满足您确切的需求。