Addition mit Bedingung
Hallo Zusammen,
ich möchte in einer Zeile eine Summe über alle ausgewählten Felder bilden, außer in diesem Feld steht ein bestimmter Wert. Diese wären -100,000% oder #DIV/0!
Für eure Hilfe wäre ich sehr dankbar!
Gruß
Frank
Antwort schreiben
Antwort 1 von finger59 vom 02.10.2021, 11:38 Options
Hi Frank,
ich selbst würde zwei Schritte vornehmen:
a) Beseitigung der Fehlermeldung #DIV/0!
Da solltest Du die Formel dahingehend abändern, daß wenn nur ein Wert zur Berechnung zur Verfügung steht, daß dann dort eine
Null als Ergebnis eingetragen wird.
b) Über eine Hilfsspalte würde ich mir mit
=zählenwenn(a1:e1;"-100,000%)
die Anzahl der vorkommenden -100%-Werte ermitteln
und dann nachher in der Summenformel entsprechend wieder
abziehen.
Voraussetzung hierzu wäre natürlich, daß Du generell dort nur %-Werte stehen hättest.
Leider hast Du dazu keine weiteren Angaben gemacht und Deine Tabelle sehen wir leider auch nicht.
Von daher nur mal so als Lösungsansatz.
In diesem Sinne.... have a nice Day.... Gruß Helmut
Antwort 2 von coros vom 02.10.2021, 11:42 Options
Hallo Frank,
was heißt bei Dir
Zitat:
alle ausgewählten Felder
Meinst Du Zellen, die Du vorher markiert hast? Wenn ja, nur über VBA machbar.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 3 von Franks vom 02.10.2021, 12:28 Options
Hallo,
ja ich würde die Zellen markieren (jede neunte Zelle in der Zeile).
In allen Zellen stehen %-Werte.
Gruß
Frank
Antwort 4 von coros vom 02.10.2021, 12:56 Options
Hallo Frank,
das würde eigentlich wie folgt gehen. Mit dem Makro werden die Werte der Zellen, die vorher markiert wurden, addiert.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.Option Explicit
Sub Addition_mit_Bedingung()
Dim rngCell As Range
Dim dblSumme As Double
For Each rngCell In Selection
On Error Resume Next
If rngCell.Value <> -1 Then
dblSumme = dblSumme + rngCell.Value
End If
On Error GoTo 0
Next
MsgBox dblSumme
End Sub
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Franks vom 02.10.2021, 13:56 Options
Hallo Oliver,
wie kann ich diesem Makro die Felder mit -100,000% und #DIV/0! aus der Addition ausschließen?
Gruß
Frank
Antwort 6 von coros vom 02.10.2021, 14:13 Options
Hallo Frank,
das ist in dem Makro bereits berücksichtigt. Einmal durch die Fehlerbehandlung "On Error Resume Next" und der Abfrage auf den Wert -1 (entspricht bei Zellformatierung Prozent = -100%).
Schließlich war das ja die Aufgabenstellung und lesen kann ich noch.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 7 von Franks vom 02.10.2021, 14:25 Options
Danke Oliver,
das Makro funktioniert. Nur kann ich mir die Summe auch in einem Feld anzeigen lassen? Mit dieser muss ich dann noch weiter arbeiten.
Gruß
Frank
Antwort 8 von Franks vom 02.10.2021, 14:29 Options
Hallo Oliver,
oder mal noch anders gefragt. Ist es möglich alle Felder in dem Datensatz, in welchen entweder -100,00% oder DIV/0! steht, eine Null einzufügen?
Allerdings sollen die Formeln, welche in jedem Feld stehen nicht gelöscht werden.
Gruß
Frank
Antwort 9 von coros vom 02.10.2021, 14:29 Options
Hallo Frank,
ersetzte
MsgBox dblSumme
durch z.B.
Range("A1") = dblSumme
Die Zelladresse A1 musst Du anpassen.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 10 von coros vom 02.10.2021, 14:38 Options
Hallo Frank,
das geht schon, aber dann werden die Formeln, die z.B. die Fehlermeldung "#DIV/0!" anzeigen überschrieben und sind weg. Ist das so gewollt?
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 11 von Franks vom 02.10.2021, 14:42 Options
In den Felder, in denen -100,000% und #DIV/0! steht, ist das nicht schlimm. Nur alle anderen Formeln in dem Datensatz sollen nicht gelöscht werden.
MfG
Frank
Antwort 12 von coros vom 02.10.2021, 14:44 OptionsLösung
Hallo Frank,
nachfolgendes Makro sollte das machen. Ausgabe der Summe in Zelle A1. Das muss eventuell bei Dir geändert werden.
Aber Achtung, in den besagten Feldern wird die Formel gelöscht.
Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.Option Explicit
Sub Addition_mit_Bedingung()
Dim rngCell As Range
Dim dblSumme As Double
For Each rngCell In Selection
On Error Resume Next
If rngCell.Value = -1 Then
rngCell.Value = 0
ElseIf rngCell.Text = "#DIV/0!" Then
rngCell.Value = 0
End If
dblSumme = dblSumme + rngCell.Value
On Error GoTo 0
Next
Range("A1") = dblSumme
End Sub
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 13 von Franks vom 02.10.2021, 14:55 Options
Vielen Dank Oliver.
Wie müsste ich das Makro abändern falls ich ohne eine Summe zu bilden, nur die 2 Felderinhalte durch eine 0 ersetzen möchte.
MfG
Frank
Antwort 14 von coros vom 02.10.2021, 15:00 Options
Hallo Frank,
lösche die Zeile mit dem Range-Befehl raus.
MfG,
Oliver von Unterwgs per Nokia N97
Antwort 15 von Franks vom 02.10.2021, 15:33 Options
Hi Oliver,
vielen Dank für deine Hilfe! Funktioniert ausgezeichnet.
MfG
Frank
Antwort 16 von coros vom 02.10.2021, 16:02 Options
Hallo Frank,
gerne geschehen. Danke auch für die Rückmeldung.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.