Frage von GoogleYourFace, 62

Wie gelingt es mir Exceltabellen so zu formatieren, dass die Felder mit einem farbigen Hintergrund addiert werden?

Hallo, ich habe folgendes Problem und zwar muss ich eine Exceltabelle so formatieren, dass von oben nach unten die Zellen mit einem gelben Hintergrund makiert sind addiert werden.

Zur genaueren Beschreibung, es handelt sich um eine Anwesenheitsliste mit 30 Spalten in denen 0 und 1 stehen (0= nicht anwesend und 1= anwesend) einige davon besitzen einen gelben Hintergrund. Nun möchte ich die Zahlen mit dem gelben Hintergrund addieren (von oben nach unten! nicht von links nach rechts) Ich habe Excel 2010.

Da ich leider kaum Ahnung von Excel habe, wäre es sehr lieb, wenn ihr mir eure Tipps gut erklärt, so dass ich eure Tipps auch umsetzen kann.

Danke schonmal im vorraus. :)

Antwort
von Funfroc, 44

Hallo,

grundsätzlich gibt es für solche Rechnungen die einfache Summen-Funktion:

=Summe(Zelle1;Zelle2;Zelle3;...)    oder

=Summe(Zelle1:Zelle3) --> alle dazwischnliegenden Zellen sind automatisch inkludiert

Eine Farbe ist aber generell die schlechtest denkbare Basis zum rechnen. Wird die Färbung anhand des Eintrages gemacht? Dann kann man ja den Eintrag auswerten. Wenn nicht, auf welcher Basis wird die Färbung gemacht?

Um dir hier eine konkrete Formel da zu lassen, müsste man deine Tabelle natürlich kennen, sprich wir bräuchten eine ausfürhlichere Beschreibung, wo was steht oder noch besser einen Screenshot.

LG, Chris

Edit: man könnte meines Wissens in einem Makro sogar wirklich nach Farbe summieren, dafür bräuchte es aber dann Programmierkenntnisse.

Antwort
von tinalisatina, 42

Du musst als erstes das Feld festlegen (anklicken) in dem die Summe erscheinen soll.

Dann suchst in der Bearbeitungsleiste das Summenzeichen (ein "M", das auf der Seite steht, gibt es hier im Zeichensatz leider nicht) und klickst das an. Darauf erscheint in dem vorher ausgewählten Feld
=Summe()

Jetzt hältst Du die Command-Taste und klickst nacheinander die (farbigen) Felder an, die Du addieren willst. Commandtaste nicht loslassen.

Im Feld mit der Summe werden diese Einzelfelder jetzt nacheinander aufgeführt.

=Summe(A1, B4, C8 ...)

Wenn Du alle hast, drückst Du Retourn, und die Summe erscheint in dem ausgewählten Feld.

Ändert sich in den ausgewählten Feldern etwas, ändert sich automatisch die Summe.

Expertenantwort
von schmiddi1967, Community-Experte für Excel, 34

Das kann man in zwei Richtungen machen. Einmal mit extra Hilfsspalte, einem vergebenen Namen und dann mit Summewenn.

Ich benutze bei sowas immer ein Makro, da brauch man nicht extra alles andere machen. Also zum Makro:

Gehe unten auf den Reiter deiner Tabelle (wahrsheinlich Tabelle1) und dann mit der rechten Maustaste auf Code anzeigen.

Jetzt gehst du links in das Fenster und da mit der rechten Maustaste auf Einfügen und auf Modul.

Dort kommt dann folgender Code rein:

Function Farbsumme(Bereich As Range, Farbe As Integer)
Dim Zelle As Range
Application.Volatile
For Each Zelle In Bereich
If Zelle.Interior.ColorIndex = Farbe Then
Farbsumme = Farbsumme + Zelle
End If
Next
End Function

Sollte dann so aussehen wie im angehängten Bild1

Jetzt oben auf die Disketten zum Speichern und die folgende Meldung mit NEIN beantworten. Deine Datei musst du jetzt als Ecxel-Arbeitsmappe mit Makros (.xlsm) Datei speichern.

Jetzt kannst du das Fenster wieder schliessen und ganz einfach in deiner Tabelle mit folgender Formel deine Gelb eingefärbten Zellen zusammenrechen. Zum Beispiel für Spalte A: (siehe Bild2)


=Farbsumme(A:A;6)


Kommst du so klar damit?

Achja, Spalte B wäre dann:

Die 6 in der Formel ist die Farbnummer für GELB



=Farbsumme(B:B;6)


Kommentar von Iamiam ,

wenn die Farbe keine Standard-Index-Farbe ist, hilft Folgendes Makro, um die Zelle zu analysieren und Farbzahl auszulesen (leider keine Standard-Option in xl)

  • Sub R_Gr_B_ausHiGruFarbeMitKopiermögl()
  • Dim u_FIx As Long, c, R, Gr, u_B, iBox
  • For Each c In Selection
  • u_FIx = c.Interior.Color
  • R = (CStr(u_FIx - Fix((u_FIx - Int(u_FIx / 65536) * 65536) / 256) * 256 - Int(u_FIx / 65536) * 65536))
  • Gr = (CStr(Int((u_FIx - Int(u_FIx / 65536) * 65536) / 256)))
  • u_B = (CStr(Int(u_FIx / 65536)))
  • If c.Value = "" Then 'MeldungsDlg ("FarbIndex ist: " & ZuZnF(FIx) & " entsprechend RGB (" & R & ";" & Gr & ";" & B & ")")
  • c.Value = R & ";" & Gr & ";" & u_B
  • Else
  • MsgBox (c.Address & ": FarbZahl ist: " & CStr(u_FIx) & " entsprechend RGB (" & R & ";" & Gr & ";" & u_B & "), aber Zelle ist belegt!")
  • iBox = InputBox("folgenlos, nur zum Kopieren: " & u_FIx, "Farbanalyse als RGB", "FarbZahl ist: " & CStr(u_FIx) & " entsprechend RGB(" & R & ", " & Gr & ", " & u_B & ") gemäß " & ThisWorkbook.Name & " " & "Sub R_Gr_B_ausHiGruFarbeMitKopiermögl()")
  • End If: Next c: End Sub

Die Inputbox hab ich später mal eingefügt, sie gestattet es, bei belegter Zelle die Vorgabe zu kopieren und damit i'woanders einzufügen, also festzuhalten. Hätte auch die Info der MSG-Box da rein integrieren können und diese einsparen.

anstatt Colorindex  im Makro von Schmiddi nur Color verwenden,

anstatt des Farbindexes ln der Summenformel die Funktion RGB(wie analysiert)

Das allerletzte hab ich jetzt nicht mehr ausprobiert

Antwort
von GoogleYourFace, 4

Also so sieht die Tabelle aus. 

Ich hab eure Vorschläge ausprobiert, aber keiner hat so richtig gut funktioniert.

entweder war es viel zu aufwendig alles zu markieren oder das Ergebnis waren 2 ##. 

Kommentar von GoogleYourFace ,

achso und die Tabelle ist natürlich viel viel größer als auf dem Bild :)  ca. 

260 Zeilen und 31 Spalten 

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten