albertminrich
Goto Top

Summe bilden, wenn Zahlen fett?

Hallo,

ist es möglich, eine Summe zu bilden, bei der nur die Zellen addiert werden, die fett formatiert sind?

Danke
Martin

Content-Key: 89661

Url: https://administrator.de/contentid/89661

Printed on: April 19, 2024 at 21:04 o'clock

Member: bastla
bastla Jun 11, 2008 at 21:45:07 (UTC)
Goto Top
Hallo AlbertMinrich!

Sollte unter Verwendung von VBA so gehen: Mit Alt-F11 den VBA-Editor starten, Menü "Einfügen / Modul" wählen und den folgenden Code in das große Code-Fenster einfügen:
Function SUMMEFETT(Bezug As Range)
Application.Volatile
Summe = 0
For Each Zelle In Bezug
    If Zelle.Font.Bold Then
        If IsNumeric(Zelle.Value) Then Summe = Summe + Zelle.Value
    End If
Next
SUMMEFETT = Summe
End Function
Danach kann der VBA-Editor geschlossen werden.

In der Tabelle steht jetzt die Funktion SUMMEFETT() zur Verfügung. Diese Funktion erwartet als Argument einen Zellbereich. Beispiel:
=SUMMEFETT(A3:A14)
Damit VBA verwendet werden kann, musst Du noch die Sicherheitseinstellungen anpassen - dazu in "Extras\Makro\Sicherheit..." auf "Mittel" stellen. Die neue Einstellung wird erst beim nächsten Start von Excel wirksam und fragt dann beim Öffnen der Datei nach der Erlaubnis, das enthaltene Makro auszuführen.

Falls die Funktion in allen Mappen zur Verfügung stehen soll, kannst Du, wie hier beschrieben, ein "Add-In" erstellen.

Grüße
bastla
Member: simsons
simsons Jun 11, 2008 at 21:47:19 (UTC)
Goto Top
Mach die Fetten Zahlen einfach schwarz.

Fette schwarze Zahlen addieren sich normalerweise von selbst,
im gegensatz zu den fetten roten da ist normalerweise ein minus zu verzeichnen face-smile
Member: AlbertMinrich
AlbertMinrich Jun 12, 2008 at 07:55:33 (UTC)
Goto Top
@bastla
Danke, funktioniert super, allerdings wird die Summe immers erst nach F9 aktualisiert. Kann man das noch optimieren?


@simsons
Was meinst du mit schwarz machen? Die Zahlen sind doch (standardmässig) schwarz.

Gruß
Martin
Member: bastla
bastla Jun 12, 2008 at 09:48:56 (UTC)
Goto Top
Hallo AlbertMinrich!

... immers erst nach F9 aktualisiert.
... und nach jeder inhaltlichen Änderung in der Tabelle - für eine Aktualisierung aufgrund einer Formatierungsänderung habe ich leider keine Idee ...

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 14, 2008 at 20:23:22 (UTC)
Goto Top
Danke, damit kann ich leben. Jetz hab ich aber ein anderes Problem.
Wenn ein Feld über eine bedingte Formatierung fett wird, dann sieht das zwar fett aus, ist es aber nicht wirklich. Zu erkennen über den Button Fett in der Menülseite. Der ist nicht gedrückt.
Und somit greift auch die Formel summefett nicht.

Was kann ich da machen?
Danke
Member: bastla
bastla Jun 14, 2008 at 20:27:56 (UTC)
Goto Top
Hallo AlbertMinrich!

Wenn sich eine "Bedingte Formatierung" machen lässt, müsste auch ein SUMMEWENN() anwendbar sein - wie sieht denn die Bedingung aus?

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 17, 2008 at 18:42:01 (UTC)
Goto Top
Hallo,

ich erklär mal, was ich machen will. Also, in den Zellen A1 - A3 steht
A1: Deutschland
A2: Italien
A3: Frankreich

In Zelle B1 steht auch ein Land. Es muss nicht eins der genannten sein, wenn aber schon, dann soll Zelle B1 fett werden, ebenso Zelle C1, in der eine Zahl steht.
Das gleiche mit den Zellen B2 und C2, B3 und C3 usw. bis B8 und C8.

In Zelle C9 schliesslich soll die Summe der fetten C-Zellen (C1 - C8) gebildet werden.


Vielleicht gehe ich das ganze ja falsch an.

Danke
Martin
Member: bastla
bastla Jun 19, 2008 at 21:59:24 (UTC)
Goto Top
Hallo AlbertMinrich!

Wenn es tatsächlich nur um den Vergleich mit den Zellen A1 bis A3 geht, könnte die Formel in C9 so aussehen:
=SUMME(((B1:B8=$A$1)+(B1:B8=$A$2)+(B1:B8=$A$3))*C1:C8)
Da es sich hier um eine Matrixformel handelt, ist die Eingabe (auch nach jeder Änderung / Bearbeitung) mit der Tastenkombination Strg+Umsch+Enter zu bestätigen. In der Bearbeitungszeile wird dann die Formel innerhalb von geschwungenen Klammern {} angezeigt.

Grundlage der Berechnung sind Wahrheitswerte für die Übereinstimmung: Jede der einzelnen "Behauptungen" (wie etwa B1:B8=$A$1) liefert als Ergebnis 1 (trifft zu, hier also Inhalt der Zelle stimmt mit dem Vergleichswert aus Spalte A überein) oder 0 (keine Übereinstimmung). Die Summe aller (3) Überprüfungen kann in diesem Fall nur entweder 0 (überhaupt keine Übereinstimmung) oder 1 (Übereinstimmung mit dem Inhalt von A1 oder A2 oder A3) lauten.

Diese Summe wird dann mit dem Wert aus der Spalte C multipliziert (was entweder 0 oder den entsprechenden Wert aus C ergibt). Alle Produkte dieser Multiplikationen werden schließlich zum Gesamtergebnis summiert.

Durch die Verwendung der Array-Funktionalität kann diese Vorgangsweise gleich für alle Zellen von B1 bis B8 (und die korrespondierenden Zellen der Spalte C) verwendet werden.
Alternativ dazu könntest Du (nur um das Prinzip besser nachvollziehen zu können) in die Zellen D1 bis D8 (hier als Beispiel für D1, lässt sich dann nach unten kopieren) jeweils nur
(B1=$A$1)+(B1=$A$2)+(B1=$A$3)
und in die Zellen E1 bis E8
=C1*D1
eingeben. Wenn Du die 8 Werte in Spalte E addierst, erhältst Du das gewünschte Ergebnis.

Die Array-Formel macht genau das Selbe, erspart Dir aber die Verwendung der Hilfsspalten D und E.

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 20, 2008 at 18:40:54 (UTC)
Goto Top
Vielen Dank,

funktioniert super.
Ein Problem hab ich jetzt noch, das ich eigentlich schon gelöst hatte (glaub ich zumindest). Es geht um die bedingte Formatierung. Um beim Beispiel zu bleiben: Wenn das Land in B1 in der Matrix A1:A3 vorkommt, sollen die Zellen B1 und C1 fett werden bzw. wenn nicht, sollen die Zellen durchgestrichen werden. Ersteres hatte ich schon mal hinbekommen mit sverweis, aber irgendwie weiss ich nicht mehr, wie ich es gemacht hatte.

Kannst du mir da noch helfen? Wer sich mit Matrix-/Arrayformeln auskennt bzw. weiss, dass es sowas überhaupt gibt, für den ist das bestimmt eine Kleinigkeit.

Gruß
Martin
Member: bastla
bastla Jun 20, 2008 at 18:53:33 (UTC)
Goto Top
Hallo AlbertMinrich!

Wenn Du nur zwei Möglichkeiten zu unterscheiden hast, genügt eine bedingte Formatierung (die andere Variante kannst Du als gewöhnliche Zellformatierung festlegen).

Die zu verwendende Formel könnte so aussehen:
=ODER($B1=$A$1;$B1=$A$2;$B1=$A$3)
Dadurch, dass $B1 als gemischter Bezug (Spaltenangabe mit "$", Zeilenangabe ohne "$") geschrieben ist, kannst Du diese Formatierung auch auf andere Zellen übertragen ("Pinsel"-Symbol verwenden) - es wird in jeder Zeile die Formatierung (auch der weiteren Spalten) davon abhängig gemacht, ob der Wert in der Spalte B auch in A1:A3 vorkommt.

Die SVERWEIS-Variante wäre dann vorteilhaft, wenn eine größere Tabelle (als nur A1:A3) zu berücksichtigen wäre - dafür könntest Du schreiben:
=NICHT(ISTFEHLER(SVERWEIS($B1;$A$1:$A$3;1;0)))

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 20, 2008 at 18:58:06 (UTC)
Goto Top
OK,

habs hinbekommen mit dieser Formel:
=WENN(VERGLEICH(b1;$A$1:$A$3;0)>0;1;0)
Member: bastla
bastla Jun 20, 2008 at 19:03:49 (UTC)
Goto Top
Hallo AlbertMinrich!

Mit VERGLEICH geht's auch noch kürzer:
=VERGLEICH($B1;$A$1:$A$3;0)
Grüße
bastla

P.S.: Falls das jetzt genügt: How can I mark a post as solved?

[Edit] Danke. [/Edit]
Member: AlbertMinrich
AlbertMinrich Jun 20, 2008 at 19:06:58 (UTC)
Goto Top
Hallo,

eigentlich sind es ja drei Möglichkeiten: nicht formatiert, durchgestrichen und fett.
Aber es klappt jetzt, hab als zweite Formatierung diese hier:
=WENN(ISTFEHLER(VERGLEICH(B1;$A$1:$A$3;0));1;0)

Gruß
Martin
Member: bastla
bastla Jun 20, 2008 at 19:10:24 (UTC)
Goto Top
Hallo AlbertMinrich!

Nur interessehalber: Die beiden Möglichkeiten "kommt in A1:A3" vor oder "kommt nicht in A1:A3 vor" sind mir klar - wo bleibt da aber noch Raum für eine dritte Bedingung? "Nicht formatiert" scheidet somit eigentlich nach Deiner obigen Beschreibung aus.

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 20, 2008 at 19:20:35 (UTC)
Goto Top
Die Zellen A1 - A3 sind erstmal leer, solange soll b1 unformatiert sein, erst wenn alle gefüllt sind, wird b1 dann entweder fett oder durchgestrichen.

Gruß
Martin
Member: bastla
bastla Jun 20, 2008 at 19:36:44 (UTC)
Goto Top
... und das klappt tatsächlich bei Dir mit diesen beiden "Bedingten Formatierungen"? Eigentlich müsste mE als erstes abgefragt werden, ob zB A1 noch leer ist, und dafür eine Formatierung im Sinne von "unformatiert" vergeben werden.

Grüße
bastla
Member: AlbertMinrich
AlbertMinrich Jun 20, 2008 at 20:08:36 (UTC)
Goto Top
Stimmt natürlich. Aber ich mach´s jetzt mit 2 Matrixen. a1-a3 für fett und b1-b3 für durchgestrichen.