Om jag läser det rätt så summerar ju UDF:en (CountCellsCyColor) cellerna. I Antal.OMF vill du ju titta i varje cell för att se om villkoret uppfylls. Så det går inte.
En variant är att skapa en egen UDF som returnerar matrisen istället för summan. Ett sunk-exempel:
Public Function ÄrGul(rMittOmråde As Range) As Integer()
Dim rCell As Range
Dim svar() As Integer
Dim Gul As Integer
Dim i As Integer
Dim iRader As Integer
Gul = 6
iRader = rMittOmråde.Rows.Count
ReDim svar(iRader - 1, 0)
i = 0
For Each rCell In rMittOmråde
If rCell.Interior.ColorIndex = Gul Then
svar(i, 0) = 1
End If
i = i + 1
Next rCell
ÄrGul = svar
End Function
Men det hade ju varit för enkelt om det hade fungerat direkt...
Om du kör på en cell så blir det som man vill:
=ÄrGul(G20)
Om du lägger in den i en summa för ett område så kan du se att den går igenom alla gula.
=SUMMA(ÄrGul(G5:G20))
Om du trycke på Fx-knappen så ser du att summa får varje värde för sig som en prydlig radda med 1/0. Tyvärr funkar den inte med Antal.om. Det här borde ge samma svar som summan. Men Icke sa nicke.
=ANTAL.OM(ÄrGul(G5:G20);1)
Bahhhhh. Du blir tvungen att använda produktsumma eller Liknande och då funkar inte dina wildcard. Men det här borde ge svaret du vill ha
=PRODUKTSUMMA(ÄrGul(G5:G20)*ÄRTEXT(G5:G20))
Alternativt om man vill hitta ifyllda celler och struntar i om det är siffror eller text:
=PRODUKTSUMMA(ÄrGul(G5:G20)*(G5:G20<>""))
PS om du inte litar på attt 6 = gult (jag tror att det är ett färgcheme-nummer som råkar vara gult på min dator) så får du lägga till färghämtningen från CountCellsCyColor
Public Function ÄrGul2(rMittOmråde As Range, rFärgexempelcell As Range) As Integer()
....
Gul = rFärgexempelcell.Interior.ColorIndex
'istället för Gul = 6
...
ÄrGul2 = svar
End Function
PPS
rMittOmråde.Rows.Count
Bör inte bytas mot
rMittOmråde.cells.Count
eftersom jag låste arrayen till en kolumn. Om du vill lösa upp den spärren måste du hålla tungan i rätt mun.