Clever-Excel-Forum

Normale Version: Addition von Zellen mit vorgegebener Farbe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Kann mir jemand die Formel nennen, welche ich bei "D4" einsetzen muss, damit er mir das Total der Kopien von "Olaf" der "dunkelblau" ist für Montag aus "D11 : D19") zusammenzählt? Wichtig: Die Farben-Codes soll er aus der Spalte 2 herauslesen und dürfen nicht in der Formel eingebunden sein.

Besten Dank für eure Hilfe!

Grüsse
Gerri
Hallo Gerri,

es hätte schon geholfen, wenn du anstelle der PDF-Datei die Exceldatei eingestellt hättest. Ganz abgesehen davon, dass man keine Auswertungen nach Zellformaten machen sollte.
Hallo Klaus-Dieter

Danke für deine Antwort. Warum sollte man keine Auswertung nach Zellformaten machen?
Hallo, wahrscheinlich, weils zu einfach wäre...
Hi,

Obwohl ich da was geschrieben habe.... selber verwende ich das nicht! :)
Nach Farben etwas auszuwerten ist nicht empfehlenswert, da die mögliche Fehlerquelle sehr hoch ist!
[attachment=16995]

Code:
Option Explicit
Public Function sumFarb(ParamArray rng()) As Double
 
'###################################
'by Kaiser 01/2008 'im Tabellenblatt kann =sumfarb(B1:B25;E1;E2;E3;1)
'der erste Bereich ist der Summenbereich und die Zellen dahinter,
'sollten die Zellen beinhalten die eine Hintergrundfarbe aufweisen
'falls auch die Schriftfarbe berücksichtigt werden sollte
'geben sie als letzten Parameter 1 ein
'soll nur die Schriftfarbe genommen werden -> geben Sie als Parameter 0 ein
'wird kein Paramter eingegeben wird nur die Hintergrundfarbe genommen
'###################################
Dim i, sum_rng As Range, color_() As Integer, cell_ As Range, red_ As Byte
Dim par_value As Integer
Application.Volatile
Dim font_color()
Set sum_rng = rng(0)
If TypeName(rng(UBound(rng()))) = "Double" Then
    red_ = 1
    par_value = rng(UBound(rng()))
End If
ReDim color_(UBound(rng()) - red_)
ReDim font_color(UBound(rng()) - red_)
For i = 1 To UBound(rng()) - red_
    color_(i - 1) = rng(i).Interior.ColorIndex
    font_color(i - 1) = rng(i).Font.ColorIndex
Next
For Each cell_ In sum_rng
    For i = 0 To UBound(rng()) - red_ - 1
        If red_ = 1 And par_value = 1 Then
            If cell_.Interior.ColorIndex = color_(i) _
            And cell_.Font.ColorIndex = font_color(i) Then
                    sumFarb = sumFarb + cell_.Value
            End If
        ElseIf red_ = 1 And par_value = 0 And _
        cell_.Font.ColorIndex = font_color(i) Then
            sumFarb = sumFarb + cell_.Value
        ElseIf red_ = 0 And cell_.Interior.ColorIndex = color_(i) Then
            sumFarb = sumFarb + cell_.Value
        End If
    Next
Next
End Function

aus
http://www.ms-office-forum.net/forum/showpost.php?p=1070039&postcount=16
Hallo,

Zitat:Warum sollte man keine Auswertung nach Zellformaten machen?


weil Zellformate keine verlässliche Grundlage sind. Wenn du, wie du es ja geplant hast, nach Zellfarben auswertest, mag das auf deinen Rechner prima funktionieren. Angenommen du gibst jetzt die Datei weiter, der Nutzer arbeitet mit anderen Standardfarben als du, schon kann es aus dem Ruder laufen.
(06.04.2018, 07:35)chris-ka schrieb: [ -> ]Hi,

Obwohl ich da was geschrieben habe.... selber verwende ich das nicht! :)
Nach Farben etwas auszuwerten ist nicht empfehlenswert, da die mögliche Fehlerquelle sehr hoch ist!

Hallo Chris

Vielen Dank für die erstellte Tabelle. Sieht im ersten Moment gut aus, jedoch hat es z.b. bei Mittwoch bei Olaf-dunkelblau (4 anstelle 71) und Karl-grün (soll 67 anstelle 71) einen klaren Rechnungsfehler. Was ist da wohl los?

Die Tabelle ist nur für mich als einzigen Anwender gedacht. Dass die Bedienung in diesem Fall nicht willkürlich von vielen erfolgen sollte, ist mir bewusst.
Hi,

kann ich nicht nachvollziehen...
sieht so bei mir aus....
[attachment=17000]