Ich halte meine Excel-Tabellen gerne relativ übersichtlich. Daher schreibe ich häufig Anweisungen wie diese:
IF([formula x]=[value],"",[formula x])
Dies bedeutet im Wesentlichen, dass das Ergebnis nicht angezeigt wird, wenn die Formel einem bestimmten Kriterium entspricht, andernfalls wird das Ergebnis angezeigt.
In manchen Fällen [formula x]
wird es über eine ganze Spalte von Zellen wiederholt und jede Zelle hat einen Verweis, [formula x]
der auf die Zelle darüber verweist. Um Formelfehler zu vermeiden, muss ich eine weitere Ebene hinzufügen, wie folgt:
IF(C2="","",IF([formula x]=[value],"",[formula x])
Dies kann jedoch insbesondere bei [formula x]
sehr langen Formeln dazu führen, dass die Endformel viel komplizierter aussieht als sie ist und die Fehlerbehebung und Wartung viel schwieriger ist als sie sein sollte.
Hier ist ein schreckliches Beispiel …
Grundformel:
=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Bedingte Ausblendung hinzufügen:
=IF(C2="","",IF(IF(A3>=$E$11,C2+(C2*($F$2/12)-$E$9),C2+(C2*($F$2/12))-$E$7)<=0,"",IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)))
Eine ohnehin schon sehr lange Formel wird mehr als verdoppelt, nur damit ich ein Leerzeichen (oder einen beliebigen anderen Wert) anzeigen kann, wenn dieselbe Formel eine bestimmte Bedingung erfüllt. Wenn ich versuche, dies über eine ganze Zeile hinweg zu tun, kann es, abhängig von der Ausgangsformel, leicht zu Zirkelverweisfehlern kommen.
Gibt es eine Möglichkeit, innerhalb derselben Zelle auf eine vorhandene Formel oder ein vorhandenes Argument selbst zu verweisen, oder vielleicht eine andere Funktion oder ein anderes Feature, mit dem dieses Ergebnis sauberer erreicht werden kann?
Eine Funktion, die das tut, was ich suche, könnte so aussehen:
=FnName([base formula],[match condition],[condition result])
Argument 1 ist die Basisformel, Argument 2 ist die Bedingung, die ich erfüllen möchte. Argument 3 ist das Ergebnis, das angezeigt wird, wenn die Bedingung erfüllt ist. Falls die Bedingung nicht erfüllt ist, gibt die Funktion das Ergebnis der Basisformel zurück.
Antwort1
Haben Sie schon einmal darüber nachgedacht, die Formel in einer ausgeblendeten Zelle (oder in einer Zelle auf einem anderen Arbeitsblatt) auszuwerten und dann Ihre bedingte Ausblendung basierend auf dem Wert in der ausgeblendeten Zelle durchzuführen, anstatt die Formel zweimal eingeben zu müssen? Ich kenne nicht den gesamten Kontext, in dem Sie arbeiten, aber ich habe in der Vergangenheit etwas Ähnliches mit einigem Erfolg gemacht.
Antwort2
Sie könnten auf eine VBA-Funktion zurückgreifen, um die Formelsyntax zu bereinigen. Sie können beispielsweise so etwas in ein Modul einfügen (Drücken Sie Alt+ F11, dann Einfügen >> Modul):
Option Explicit
Public Function BLANKIF(checkcell As String, notb As Variant, Optional checkcond As String) As Variant
If checkcell = checkcond Then
BLANKIF = ""
Else
BLANKIF = notb
End If
End Function
Um dies zu verwenden, um bedingte Ausblendung anzuwenden auf
=IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7)
Sie verwenden
=BLANKIF(C2,IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7))
Wenn Sie die Zelle löschen möchten, wenn C2
= „omg“, fügen Sie ein drittes optionales Argument hinzu:
=BLANKIF(C2,IF(A3>=$E$11,C2+(C2*($F$2/12))-$E$9,C2+(C2*($F$2/12))-$E$7),"omg")
Antwort3
Sie können verwenden Conditional Formatting
, um Ihr Ziel zu erreichen.
Entfernen Sie alle zusätzlichen Elemente aus der Formel, sodass nur die Basisformel übrig bleibt.
Wenden Sie eine Format only cells that contain
Bedingung mit Ihren Ausblendungskriterien an
Wenn die Ausblendungsbedingung erfüllt ist, wenden Sie ein benutzerdefiniertes Zahlenformat von an;;;
Alternative für Excel 2007 oder höher
IFERROR(value, value_if_error)
Aus der Excel-Hilfe:
Gibt einen von Ihnen angegebenen Wert zurück, wenn eine Formel einen Fehler ergibt; andernfalls wird das Ergebnis der Formel zurückgegeben. Verwenden Sie die Funktion IFERROR, um Fehler in einer Formel abzufangen und zu behandeln.