[英]Counting cells based on their colour and other criteria
我正在使用Excel中的一些排班功能,其依據是我們的工作人員數量有限,涉及多個站點的班次
在規划花名冊時,我們使用一組簡單的彩色單元格來填充人們白天上班,夜班,不安排名冊,年假等情況。鑒於我們計划有多個地點,我需要快速公式,用於檢查該個人是否已在多個地點同時輪班(顯然不可能),因此我們可以輕松地確定計划階段何時存在沖突。 公式需要返回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樣式功能結合使用,以僅在該人的姓名出現針對該分配的情況下才計算彩色單元格的數量。
如果您從名單中查看示例圖片,則可以看到2014年5月21日在站點1和站點2上為Joe Bloggs 4分配了班次。 我所追求的基本上是,如果符合條件的個人名字與那些單元格相對,則對行中彩色單元格的數量進行計數 。 對於此示例,如果
=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可以稱為數組公式,即選擇一個單元格范圍,在左上角的單元格中鍵入公式(同時仍選擇整個范圍),然后按Ctrl - Shift - Enter 。 然后,您可以對返回的數組進行操作,例如對它SUM
。
用法示例:
其中--
雙負布爾值TRUE / FALSE的值(未累加)轉換成1和0(這是)。
我將讓您對其進行調整以適合您的特定要求。
編輯:您想要更多:
計算C列中的填充單元數,其中B列中有一個相鄰的填充單元-在這種情況下,C4是唯一滿足該條件的單元。
這個公式可以解決問題(作為數組公式輸入):
=SUM(IF(IsFilledArr(B2:B7)+IsFilledArr(C2:C7)>1,1))
注意使用SUM(IF(...,1))
模仿COUNT
。 處理數組公式時,這就是這樣做的方法。
在此處閱讀更多信息: http : //www.cpearson.com/excel/ArrayFormulas.aspx
您要求幫助/指針; 希望這足以使您擺脫困境。 您可以采用這種方法來滿足您的確切需求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.