Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Unterscheiden zwischen 0 oder nichts

Unterscheiden zwischen 0 oder nichts
13.04.2017 00:25:02
Barbaraa
Hallo
zwei Fragen zur Unterscheidung zwischen LEER und 0 (null):
Anzeigen der Nullwerte ist eingeschaltet.
In der Zelle A2 steht die Formel =A1 und die Zelle A1 ist leer.
Ob nun in A1 0 (als Zahl) oder nichts steht, in beiden Fällen steht 0 in B1.
Aber kann man im Makro diese beiden Fälle irgendwie unterscheiden, ohne A1 selbst abzufragen?
Oder kann man A2 irgendwie so formatieren, dass da auch wirklich nichts steht, wenn in A1 nichts steht (abgesehen von der Möglichkeit, in A2 die Formel =T(A1) zu schreiben)?
LG, Barbara
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Unterscheiden zwischen 0 oder nichts
13.04.2017 01:05:06
Barbaraa
Vielleicht nochmals einfacher erklärt:
In der Zelle A2 steht die Formel =A1
Da soll also der selbe Text wie in A1 stehen.
Wenn in A1 nichts steht, soll auch in A2 nichts stehen.
Wenn in A1 eine Null steht, soll auch in A2 eine Null stehen.
Und das soll auch in einem Makro erkennbar sein.
LG, B.
Anzeige
0 oder leer
13.04.2017 04:21:48
Luc:-?
Morrn, Barbara;
wenn du nur die Ergebniszelle im Makro betrachtest, wird das Makro diese Unterscheidung nicht oW treffen können, da es normalerweise nur den Ergebniswert verwendet. Dein Pgm muss also letztlich auf Quelle(n) zurück­greifen, um hier unterscheiden zu können.
VBA kann zwar zwischen Null und Zahlen, sowie Chr(0) und Texten unterscheiden, aber Xl verwendet für Leerzellen Empty, was in Fmln wie in VBA ggf als Zahl 0 interpretiert wird. Der Wert NULL (für potenzielle, aber noch fehlende numerische Werte) kommt in Xl aber ebensowenig vor wie ein LEER (Empty, für fehlende alfa-numerische bzw beliebige Werte), in DBen aber schon.
Du hast also 2 Möglichkeiten; entweder du ermittelst die/den Quellwert/e oder du sorgst dafür, dass die (verweisende) Fml im Falle einer leeren Quelle nicht 0, sondern etwas Anderes anzeigt. Das hängt dann natürlich ganz davon ab, was du mit diesem Wert vorhast. Soll über solche Werte ein MITTELWERT gebildet wdn, wäre eine Zahl fatal, ein Text (auch Leertext) würde aber ebenso wie eine Leerzelle nicht berück­sichtigt.
• Die Quelle könntest du ggf über die Range-Eigenschaft .Precedents finden oder den Fml-Text auslesen und die Adressen isolieren und nachfragen.
• Wie man in der Ergebniszelle einen Leertext erzeugt, falls die Quelle leer ist, weißt du ja. Allerdings gibt's da noch diese Variante: =WENNFEHLER(A1/ISTZAHL(A1);"")
Anderenfalls vertragen manche Berechnungen keine Leertexte, eine 0 wäre aber unschädlich. Wenn eine 0 also einem "" vorzuziehen wäre, du diesen Fall aber schon am Ergebnis erkennen willst, könntest du auch eine -0 verwenden. Das ist machbar, auch als echte Zahl, die inzwischen (ab?/in Xl14/2010) auch leidlich stabil ist. Man kann aber auch "0" oder "-0" verwenden, was ebenfalls bei Berechnungen, aber nicht von allen Fktt, als Zahl gewertet wdn würde.
Du könntest natürlich auch 'ne triviale UDF schreiben, die negative („rote“) Nullen erzeugt. Evtl ist aber die folgende komfortabler. Vor allem zeigt sie verschiedene Möglichkeiten zur Erzeugung einer echten -0:
Rem WENNLEER für diverse Alternativen bei LeerBezug
'   Vs1.0 -LSr -cd/1pub/lupd: h20170413
Function IfEmpty(Bezug, ParamArray Altern())
If IsEmpty(Bezug) Then
If Not IsMissing(Altern) Then
If UBound(Altern) = 0 Then
If IsMissing(Altern(0)) Then
IfEmpty = -0#
ElseIf IsNumeric(Altern(0)) Then
IfEmpty = CDbl(Altern(0))
Else: IfEmpty = Altern(0)
End If
Else: IfEmpty = Altern
End If
Else: IfEmpty = ""
End If
Else: IfEmpty = Bezug
End If
End Function
Beachte den Unterschied zwischen =IfEmpty(A1) und =IfEmpty(A1;) !
Gruß + FrOst, Luc :-?
Besser informiert mit …
Anzeige
AW: Unterscheiden zwischen 0 oder nichts
13.04.2017 07:35:40
Gerd
Hallo Barbara!
Sowohl als auch oder ... :-)
Cells(2, 1) = Cells(1, 1).Text
Gruß Gerd
Wer Formeln auswertet, lebt mit Infoverlust
13.04.2017 08:29:43
lupo1
Excel ist eine Tabellenkalkulation.
Eine leere Zelle ist für einen Bezug schon rein zweckmäßigerweise eine Null, damit auch die Regeln für eine Null gelten können (z.B. Folgefehler #DIV/0!).
ist auch weltanschaulich eben nicht als Inhalt einer Formel vorgesehen. Dann könnte man Formeln in einer Tabelle ja nicht aufspüren, wenn man nicht gerade die {End}{Cursor}-Funktionalität verwenden möchte.
Und Strings sind in TK eben nur schmückendes Beiwerk, damit die Zahlen, um die es geht, kommentiert und illustriert werden können. Das zeigen schon die ursprünglich nicht zuende gedachten Textfunktionen. Erst jetzt kann man z.B. Stringbereiche verketten, aber Strings immer noch nicht umkehren.
Anzeige
Am Anfang des 3. Absatzes stand ein <Leer> owT
13.04.2017 08:30:41
lupo1
AW: Am Anfang des 3. Absatzes stand ein <Leer> owT
13.04.2017 21:54:10
Barbaraa
Hallo,
Werde mich wohl damit abfinden, dass das Ergebnis 0 auch für leer stehen kann.
Vielen Dank für Eure ausführlichen Antworten.
LG, Barbara
;
Anzeige
Anzeige

Infobox / Tutorial

Unterscheiden zwischen 0 und leeren Zellen in Excel


Schritt-für-Schritt-Anleitung

Um in Excel zwischen einer Null (0) und einer leeren Zelle zu unterscheiden, kannst Du folgende Schritte ausführen:

  1. Verwende die WENN-Funktion: Du kannst die WENN-Funktion nutzen, um zu prüfen, ob eine Zelle leer ist oder nicht.

    =WENN(A1=""; ""; A1)

    Diese Formel gibt einen leeren Text zurück, wenn A1 leer ist, sonst wird der Wert von A1 angezeigt.

  2. Nutze die Funktion ISTLEER: Eine weitere Möglichkeit ist die Verwendung von ISTLEER, um zu überprüfen, ob eine Zelle leer ist:

    =WENN(ISTLEER(A1); ""; A1)

    Hier wird ebenfalls ein leerer Text zurückgegeben, wenn A1 leer ist.

  3. VBA nutzen: Wenn Du VBA verwendest, kannst Du die Funktion IsEmpty verwenden, um zu überprüfen, ob eine Zelle leer ist:

    If IsEmpty(Range("A1").Value) Then
       ' Die Zelle ist leer
    Else
       ' Die Zelle hat einen Wert
    End If

Häufige Fehler und Lösungen

  • Problem: Die Formel in dieser Zelle unterscheidet sich von den Formeln in diesem Bereich.
    Lösung: Stelle sicher, dass Du die korrekten Bedingungen in Deiner Formel verwendest. Prüfe auch, ob Du die richtigen Zellreferenzen verwendest.

  • Problem: Excel leere Zellen als null interpretieren.
    Lösung: Um dies zu vermeiden, kannst Du die WENN-Funktion oder ISTLEER verwenden, um sicherzustellen, dass leere Zellen nicht als 0 angezeigt werden.

  • Problem: VBA gibt immer 0 zurück, wenn die Zelle leer ist.
    Lösung: Überprüfe, ob Du IsEmpty oder IsNull verwendest, um den Zustand der Zelle korrekt zu identifizieren.


Alternative Methoden

Neben den oben genannten Methoden gibt es auch alternative Ansätze:

  • Custom Functions: Du kannst eine benutzerdefinierte Funktion (UDF) erstellen, um leere Zellen anders zu behandeln. Ein Beispiel könnte folgendermaßen aussehen:

    Function IfEmpty(Bezug As Range) As Variant
       If IsEmpty(Bezug) Then
           IfEmpty = "" ' Gibt einen leeren Text zurück
       Else
           IfEmpty = Bezug.Value ' Gibt den Wert zurück
       End If
    End Function
  • Nutzung von Formeln: Du kannst auch die Formel =WENNFEHLER(A1; "") verwenden, um eine leere Zelle zurückzugeben, falls A1 einen Fehler (z.B. wenn A1 leer ist) aufweist.


Praktische Beispiele

  1. Einfaches Beispiel mit WENN:

    =WENN(A1=0; "Null"; WENN(ISTLEER(A1); "Leer"; A1))

    Diese Formel prüft, ob A1 0, leer oder einen anderen Wert hat und gibt den entsprechenden Text zurück.

  2. VBA Beispiel:

    Sub CheckCell()
       If Not IsNull(Range("A1").Value) And Not IsEmpty(Range("A1").Value) Then
           MsgBox "Zelle A1 hat einen Wert"
       Else
           MsgBox "Zelle A1 ist leer"
       End If
    End Sub

Tipps für Profis

  • Verwendung von Named Ranges: Nutze benannte Bereiche, um die Lesbarkeit Deiner Formeln zu verbessern und um leichter auf bestimmte Zellen zuzugreifen.

  • Debugging in VBA: Verwende die Debugging-Tools von VBA, um schnell herauszufinden, ob eine Zelle leer oder null ist.

  • Zellenformatierung: Stelle sicher, dass Du die richtige Zellenformatierung verwendest, um zu verhindern, dass null-Werte fälschlicherweise als leere Zellen interpretiert werden.


FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine Zelle leer ist oder nicht?
Du kannst die ISTLEER-Funktion oder die VBA-Funktion IsEmpty verwenden, um festzustellen, ob eine Zelle leer ist.

2. Was ist der Unterschied zwischen null und leer in Excel?
In Excel wird null als 0 interpretiert, während eine leere Zelle (Empty) tatsächlich keinen Wert hat. Dies kann in Formeln und VBA zu unterschiedlichen Ergebnissen führen.

3. Wie kann ich in einer Formel leere Zellen ignorieren?
Du kannst die WENN-Funktion nutzen, um leere Zellen zu ignorieren und nur Werte zurückzugeben, die tatsächlich vorhanden sind.

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