Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel wenn Bedingung erfüllt

Formel wenn Bedingung erfüllt
14.08.2014 12:21:34
Orgensek
Hallo zusammen,
leider bin ich mit meinem Latein am Ende und bitte Euch um eine Eurer genialen Excell-Gehirnzellen.
Anbei ein Ausschnitt meiner Tabelle.
Ziel ist es; den durchschnittlichen Lagerbestand zu berechnen (R4).
Dafür berechne ich D4+E2-E3 und kopiere die Formel nach rechts. Jetzt soll Excell diese Formel in jeder vierten Zeile anwenden (eine Vereinfachung für mich, weil ich dachte es geht mit der Formel: wenn rest zeile, jedoch ein Trugschluss: excell überschreibt die Zeilen die dazwischen liegen)
Ich möchte gern, dass Excell diese einfache Formel immer dann anwendet, wenn in Zelle D eine Zahl größer/ gleich 0 auftaucht...wie stelle ich das an?
Für jede Hilfe bin ich Euch sehr dankbar.
Viele Grüße
Orgensek
https://www.herber.de/bbs/user/92098.xlsx

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel wenn Bedingung erfüllt
14.08.2014 12:48:18
Klaus
Hallo Orgensek,
Vielleicht so?
Sub FormelWennBestandGefuellt()
Dim r As Range
Const FormelSpalte As Long = 18  'Formel in Spalte 18 = R
Const BestandSpalte As Long = 4  'Bestand in Zeile 4
Const firstRow As Long = 2 'ab Zeile 2
Dim lastRow As Long
With ActiveSheet
lastRow = .Cells(.Rows.Count, BestandSpalte).End(xlUp).Row
For Each r In .Range(.Cells(firstRow, BestandSpalte), .Cells(lastRow, BestandSpalte))
If r.Value  "" Then
.Cells(r.Row, FormelSpalte).FormulaR1C1 = "=RC[-14]+R[-2]C[-13]-R[-1]C[-13]"
End If
Next r
End With
End Sub
Auf das "mod 4" habe ich verzichtet, stattdessen prüfe ich ob Spalte D leer ist oder nicht um die Formel zu schreiben.
Ohne VBA sehe ich keine Chance. Eine Formel kann sich ja nicht selber löschen wenn sie nicht gebraucht wird. Und eine =WENN(xxx;"",Formel) Lösung kommt bestimmt nicht in Frage, denn da währst du selber drauf gekommen :-)
Grüße,
Klaus M.vdT.

Anzeige
AW: Formel wenn Bedingung erfüllt
14.08.2014 13:15:03
Orgensek
Vielen Dank für deine schnelle Antwort...
sehr, sehr geil - große Freude erlebt, beim Makro ausführen :-)DANKE
Problem: mit Ausführung des Makros füllt er jetzt Spalte 18 (R) aus- diese Berechnung kommt aber zum Schluss.
Excell soll die programmierte Formelberechnung D4+E3-E4 in E4-P4 berechnen, dann in Q4 die Summe daraus bilden (das sind die Monatsendbestände) und dann in R4 rechnen: D4+Q4/13 ... und das alles, wie du es schon geschrieben hast, wenn D nicht leer ist...
Was muss ich anders machen?
danke, danke, danke

Anzeige
AW: Formel wenn Bedingung erfüllt
14.08.2014 13:28:46
Klaus
Hallo Orgensek,
das Makro macht genau was du im ersten Beitrag abgefordert hast :-)
Im Endeffekt musst du deine Formelbedarfe einfach alle in die Schleife schreiben
With ActiveSheet
lastRow = .Cells(.Rows.Count, BestandSpalte).End(xlUp).Row
For Each r In .Range(.Cells(firstRow, BestandSpalte), .Cells(lastRow, BestandSpalte))

HIER wird für jede Spalte geprüft und eventuell etwas getan
Next r
End With
End Sub

Zum Beispiel Schreibe ich ja eine Formel in Spalte R, wenn Spalte D leer ist:
If r.Value "" Then
.Cells(r.Row, FormelSpalte).FormulaR1C1 = "=RC[-14]+R[-2]C[-13]-R[-1]C[-13]"
End If
Da kannst du jetzt Bedingungen und Formeln dazu schreiben.
das könnte so aussehen:
if .cells(r.row, 2).value = "AB/ Monatsendbestände" then
.Cells(r.row, 16).FormulaR1C1 = "=DeineFormel"
end if
das schreib dann eine Formel in SPalte P, wenn die Zeile "AB/Monatsendbestände" erreicht sind.
So bastelst du dir das zusammen, musst vielleicht etwas mit den Reihenfolgen spielen. Tipp: Die Formeln im R1C1 Format bekommst du am einfachsten, wenn du sie einmal direkt in Excel eingibst, den Makrorekorder anwirfst, die Zelle anwählst, F2, Enter, Rekorder aus. Jetzt kopierst du dir die R1C1-Version der Formel direkt aus dem aufgezeichneten Makro.
Grüße und viel Spaß beim basteln,
Klaus M.vdT.

Anzeige
AW: Formel wenn Bedingung erfüllt
14.08.2014 13:37:54
Orgensek
Klaus - vielen Dank..
ich bin dann mal basteln :-)
VG
Orgensek

AW: Formel wenn Bedingung erfüllt
14.08.2014 13:24:35
Christian
Hallo Denise,
Excel gut?
Deine Formel in F4: WENN(REST(ZEILE(E2:Q16);4)=0;E2:Q16;E4+F2-F3) ist Nonsens.
Die Werte in den Zeilen (mit Artikelnummern in Spalte B) bei Spalte E bis P werden händisch eingegeben?
Kopiere E4 bis P4, in Q4 und R4 gibts Du Deine benötigte Formeln ein,danach markierst Du E2 bis R5 und ziehst das Ganze soweit nach unten wie Du es brauchst.
MfG Christian

Anzeige
AW: Formel wenn Bedingung erfüllt
14.08.2014 13:36:38
Orgensek
Hallo Christian,
die Daten habe ich via Converter aus einem PPS System ins Excel importiert und nicht händisch eingetragen.
Zu deinem Vorschlag: das funktioniert ja eben nicht, weil Excell ja dann alle Zeilen überschreibt und nicht nur die, die in D4 einen Wert haben bzw. in jede vierte Zeile.
Oder stehe ich jetzt völlig auf dem Schlauch?!
VG und Danke für deine Hilfe
Orgensek
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Formel für Berechnungen in Excel bei erfüllten Bedingungen


Schritt-für-Schritt-Anleitung

  1. Vorbereitung der Excel-Tabelle: Stelle sicher, dass Du eine Tabelle hast, in der die Werte in Spalte D stehen. Diese Werte sollen die Bedingung für weitere Berechnungen sein.

  2. Formel zur Berechnung: Du kannst eine Formel verwenden, um Werte nur dann in eine Zelle einzufügen, wenn eine bestimmte Bedingung erfüllt ist. Eine beliebte Formel in Excel dafür ist die WENN-Funktion. Zum Beispiel:

    =WENN(D4>=0; E4+F4-G4; "")

    Diese Formel prüft, ob der Wert in D4 größer oder gleich 0 ist. Wenn ja, wird die Berechnung in der Zelle durchgeführt, andernfalls bleibt die Zelle leer.

  3. Anwendung der Formel auf mehrere Zellen: Um diese Formel in mehreren Zellen anzuwenden, kannst Du die Zelle einfach nach unten ziehen oder die Formel kopieren und in die entsprechenden Zellen einfügen.

  4. Makro verwenden (optional): Wenn Du die Berechnung automatisieren möchtest, kannst Du ein Makro verwenden. Hier ist ein Beispiel für ein VBA-Makro, das die Berechnung durchführt:

    Sub FormelWennBestandGefuellt()
       Dim r As Range
       Dim lastRow As Long
       With ActiveSheet
           lastRow = .Cells(.Rows.Count, 4).End(xlUp).Row
           For Each r In .Range(.Cells(2, 4), .Cells(lastRow, 4))
               If r.Value >= 0 Then
                   .Cells(r.Row, 18).FormulaR1C1 = "=RC[-14]+R[-2]C[-13]-R[-1]C[-13]"
               End If
           Next r
       End With
    End Sub
  5. Makro ausführen: Führe das Makro aus, um die Formeln in der gewünschten Spalte einzufügen, wenn die Bedingung in Spalte D erfüllt ist.


Häufige Fehler und Lösungen

  • Formel wird nicht angewendet: Stelle sicher, dass die Bedingung in der WENN-Formel korrekt formuliert ist. Überprüfe, ob die Zelle, die Du überprüfst, tatsächlich Werte enthält.

  • Falsche Zellen werden überschrieben: Diese Probleme können auftreten, wenn die Formel nicht korrekt kopiert wurde. Verwende die Funktion "Inhalte einfügen" und wähle "Formeln", um sicherzustellen, dass nur die Formeln übernommen werden.

  • Makro läuft nicht: Überprüfe, ob du die Makros in deinen Excel-Einstellungen aktiviert hast. Vor dem Ausführen des Makros solltest Du sicherstellen, dass Du die richtige Tabelle ausgewählt hast.


Alternative Methoden

  • Bedingte Formatierung: Du kannst auch die bedingte Formatierung verwenden, um Zellen hervorzuheben, die bestimmte Bedingungen erfüllen. Dies hilft, die Daten visuell zu analysieren, ohne sie zu verändern.

  • Pivot-Tabellen: Wenn Du große Datenmengen hast und nur bestimmte Werte analysieren möchtest, sind Pivot-Tabellen eine gute Alternative. Sie ermöglichen es Dir, Daten nach Bedingungen zu filtern und zu aggregieren.


Praktische Beispiele

  1. Wert ersetzen, wenn Bedingung erfüllt: Angenommen, in Spalte D stehen Lagerbestände, und Du möchtest in Spalte E die Werte nur dann einfügen, wenn die Bestände größer als 0 sind:

    =WENN(D4>0; "Lager vorhanden"; "Kein Lager")
  2. Summe der Werte in einer bestimmten Zeile: Wenn Du die Summe in einer bestimmten Zeile nur berechnen möchtest, wenn eine Bedingung erfüllt ist:

    =WENN(D4>=0; SUMME(E4:P4); 0)

Tipps für Profis

  • Verwendung von Array-Formeln: Wenn Du komplexere Bedingungen hast, kannst Du Array-Formeln verwenden, um mehrere Bedingungen in einer einzigen Formel zu prüfen.

  • Verwende benannte Bereiche: Benannte Bereiche erleichtern die Lesbarkeit deiner Formeln und helfen, Fehler bei der Eingabe zu vermeiden.

  • Optimierung von Makros: Teste und optimiere dein Makro regelmäßig, um sicherzustellen, dass es effizient ausgeführt wird. Achte darauf, unnötige Schleifen zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich eine Zelle nur ausfüllen, wenn eine Bedingung erfüllt ist?
Du kannst dazu die WENN-Funktion verwenden, um den gewünschten Wert nur dann einzufügen, wenn die Bedingung erfüllt ist.

2. Was mache ich, wenn meine Formel nicht funktioniert?
Überprüfe die Eingaben und die Logik deiner Formel. Oft liegt der Fehler an falschen Zellreferenzen oder an der Bedingung selbst.

3. Kann ich mehrere Bedingungen in einer Formel kombinieren?
Ja, du kannst die WENN-Funktion verschachteln oder die UND- und ODER-Funktionen verwenden, um mehrere Bedingungen zu kombinieren.

4. Wie kann ich ein Makro in Excel erstellen?
Gehe zu "Entwicklertools", klicke auf "Makro aufzeichnen", führe die gewünschten Aktionen aus und stoppe die Aufzeichnung. Du kannst den aufgezeichneten Code dann anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige