Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1552to1556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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.
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge