簡體   English   中英

如何計算Excel中的所有多個單元格

[英]How to count all multiple cells in Excel

我正在嘗試計算在Excel列中為一個項目分配的所有多種顏色。 我嘗試了以下公式,但是它計算了我要求的唯一值。 =COUNTIFS(C10:C17, G19, E10:E17, H19)

**Project List      Colors**
Project a           Black 
Project b           Brown 
Project c           Red 
Project d           Orange 
Project a           Yellow 
Project b           Brown 
Project c           Red 
Project e           Black 
Project f           Green

在上表中,如果選中一個包含Project a的單元格,則應顯示1 Black和1 Yellow。 如果選擇一個包含項目b的單元格,則應顯示2棕色。

編輯:顏色是其實際值或背景顏色的值。

您可以使用UDF

Function modifiedCountif(Rng1 As Range, Criteria1 As Range, Rng2 As Range)
Dim i As Long
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim Result As String

Result = ""
For i = 1 To Rng1.Count
    If Rng1.Cells(i, 1) = Criteria1 Then
    On Error Resume Next
        dict.Add Rng2.Cells(i, 1).Value, Application.WorksheetFunction.CountIfs(Rng1, Criteria1, Rng2, Rng2.Cells(i, 1))
    End If
Next

Dim key As Variant
For Each key In dict.Keys
    Result = Result & dict(key) & " " & key & ", "
Next key

modifiedCountif = Left(Result, Len(Result) - 2)
dict.RemoveAll
End Function

其中Rng1項目列表的范圍

Criteria1是您要搜索的項目。

Rng2顏色范圍

我不知道你的真實數據范圍,從而以下是我的測試設置。

  • 項目列表在C10:C18范圍內。

  • 顏色列表在E10:E18范圍內。

  • Project b這樣擁有單個值的輸入像元是I2

然后將是公式(在編輯模式下,同時按CTRL + SHIFT + ENTER可以提交公式。如果正確應用,Excel將用{}包裝公式)。

=IFERROR(INDEX($E$10:$E$18,SMALL(IF($C$10:$C$18=$I$2,IF(MATCH($C$10:$C$18&$E$10:$E$18,$C$10:$C$18&$E$10:$E$18,0)=(ROW($E$10:$E$18)-9),ROW($E$10:$E$18),2097153),2097153),ROWS($A$1:A1))-9),"")

您將不得不調整范圍以適合。 必須注意使用數字9,因為數據從第10行開始。它應該始終為(n-1),假設n是數據開始的行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM