Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Arbeitet ISTZAHL() inkonsequent?

Arbeitet ISTZAHL() inkonsequent?
04.07.2020 16:12:08
Shumway
Hallo,
mich treibt im Moment die Funktion ISTZAHL() an den Rand eines Nervenzusammenbruchs!
Was ist passiert?
(siehe https://www.herber.de/bbs/user/138773.xls)
Ich extraiere in Zelle B2 aus einem Text in A2 eine Zeichenkette mittels TEIL():
funktioniert!
In Zelle C2 prüfe ich B2 auf Zahl (ISTZAHL())
funtioniert nicht, denn die Funktion erkennt z.B. "-2" nicht als Zahl
in C3 prüfe ich B2 auf Text (ISTTEXT):
funtioniert nicht, denn die Funktion erkennt z.B. "-2" als Text
Was dem Ganzen jetzt die Krone aufsetzt, ist, dass ich mit den Werten, die ganz offenbar Zahlen sind, Istzahl() jedoch nicht als Zahl erkennt, munter rechnen kann. Wie ich aus der Grundschule weiß, kann man nur mit Zahlen rechnen... (von besonderen Dingen, wie z.B. Hexadezimalcode mal abgesehen ;-) )
Also: Was kann ich mit einer solchen Funktion anfangen? Oder habe ich einen Denkfehler?
Danke für Eure Hilfe!

30
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nein.
04.07.2020 16:17:46
lupo1
Immer =ISTZAHL(--A1) statt =ISTZAHL(A1) nehmen (wenn nicht klar ist, ob es eine Zahl ist, die als Zahl eingegeben ist). Es könnte auch eine Ziffernfolge vom Typ Text sein.
Immer =ISTZAHL(--TEIL(A1;1;1)) statt =ISTZAHL(TEIL(A1;1;1)) nehmen.
AW: Nein.
04.07.2020 16:47:31
Günther
Moin,
wie lupo1 dir schon geschrieben hat: Es ist keine Zahl und darum Denkfehler=TRUE. ;-)
In minen Seminaren verwende ich die Kurzform des vorangestellten "--" so gut wie nie, reichlich _ Teilnehmer "wollen" das nicht begreifen. Stattdessen setze ich eine Funktion ein, die aus meiner Sicht besser nachvollziehbarer ist: =ISTZAHL(WERT(B2)) ... und F1 hilft dir gewiss in Sachen WERT().
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
und warum schreibst Du das an lupo? ;-) owT
04.07.2020 16:54:47
Matthias
Weil er sich auf mich bezieht ...
04.07.2020 17:51:51
lupo1
... und auch abändert. Daher gehören die Beiträge zusammen.
Als eigene Antwort ginge es jedoch AUCH.
AW: und warum schreibst Du das an lupo? ;-) owT
04.07.2020 18:50:30
Günther
Warum? Damit sich gewisse Kleingeister darüber aufregen können!
 
Gruß
Günther  |  mein Excel-Blog
Danke fürs Kompliment!
04.07.2020 18:58:18
Matthias
.
Wollen oder können nicht begreifen, ...
04.07.2020 20:39:39
Luc:?
…Günther‽
µS sagt, dass -- etwas schneller ist als 1* oder 0+. WERT dürfte evtl noch langsamer sein, was allerdings nur bei großen Datenmengen ins Gewicht fallen dürfte. Es ist halt eine ganz andere (Bit-)Operation, die eigentlich zum EDV-Grundwissen gehört, was die große Masse nicht (mehr) hat.
Gruß, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
Und auch nicht mehr braucht.
05.07.2020 13:10:32
Daniel
AW: Und auch nicht mehr braucht.
05.07.2020 14:57:47
Günther
Moin Luc :-?
… stimmt alles. Und was große Datenmengen betrifft, da weißt du gewiss, was ich da empfehle 8-).
Ich selbst setzte auch für meine Projekte oft das DoppelMinus ein; schon allein weil ich schreibfaul bin. Hier hat habe ich den Hinweis auf die WERT-Funktion gegeben, weil ich das Nachfragen, der Wunsch des Verstehens des TE dazu animiert hat. Oder: Wenn ein Fragesteller zur seltenen Spezies derer gehört, die nicht nur per c/p abpinseln sondern eine angebotene Lösung als Basis für die eigene Fortentwicklung in Sachen Excel nutzen will, dann will ich das auch belohnen. - Für IT-Fuzzis ist dein Hinweis natürlich absolut zielführend und wirklich hilfreich(er) als WERT().
 
Gruß
Günther  |  mein Excel-Blog
Anzeige
Vor vielen Jahren gab es einmal XL 2003.
05.07.2020 15:46:46
lupo1
Das war die letzte Version, in welcher man nur 31 Klammerungen und nur 8 Funktionsverschachtelungen pro Formel hatte.
Da hätte man sich vor Wut in den A.... gebissen, hätte man statt
=--A1 oder auch
=--(A1&B1)
das verschachtelnde
=WERT(A1)
geschrieben.
-- springt so viel besser ins Auge, wohingegen die alten müden Augen WERT( erst mal von WENN( auseinander halten müssen. Daher die Beibehaltung des damaligen Fast-Zwangs als bewährte Übung.
*1 oder +0 muss man dem ungeneigten User übrigens genauso erklären. Da schätze ich doch das --.
Anzeige
So, so, dann steht ja baldiger KI-Übernahme ...
06.07.2020 03:26:57
Luc:?
…nichts mehr im Wege… :-]
Aber noch sind ja Leute am Neuentwickeln, auch Negatives, was dann ja glücklicherweise niemand mehr verstehen muss. :->
Luc :-?
AW: So, so, dann steht ja baldiger KI-Übernahme ...
06.07.2020 05:27:09
Daniel
Ist wie beim Auto, Luc.
Die Unterschiede im thermodynamischen Kreisprozess zwischen Diesel- und und Ottomotor muss nur derjenige kennen, der Motoren baut und entwickelt.
Der großen Masse an Menschen, die diese Motoren verwendet, reicht es zu wissen, welchen Rüssel sie an der Tanksäule auswählen müssen.
Ich programmiere heute Datenbanken, in dem ich Linien zwischen zwei Kästchen ziehe, was muss ich da noch über Bits und Bytes wissen?
Das Wissen braucht nur der, der solche Systeme entwickelt aber nicht mehr der, der sie benutzt.
Anzeige
"Linien zwischen Kästchen..."
07.07.2020 02:40:47
Luc:?
Und ich habe den Leuten erklärt, was da im Hintergrund in SQL zusammengestellt wird. Na und! Verlieren wir das Grundwissen, verlieren wir auch die Kontrolle. D.h. nicht, dass man alles wissen muss. Die ideale Team-Kombi besteht aus Generalisten, die von vielem etwas, und Spezialisten, die von einem alles wissen.
Luc :-?
Was kann ich denn an meinem PC besser
07.07.2020 07:53:30
Daniel
kontrollieren, wenn ich weiß, dass bei Vorzeichenwechsel weniger Bits geändert werden als bei einer Addition von Null?
Natürlich ist es gut, wenn man solches Grundwissen hat, aber benötigt wird es heute nicht mehr, wenn man nur Anwenderprogramme verwendet und keine Eigenentwicklung auf Maschinensprachenebene machen will.
Gruß Daniel
Anzeige
Hierbei ging's doch um's BesserMachen und ...
09.07.2020 02:16:12
Luc:?
…das Ausräumen von FehlInterpretationen. Und mit einer bereits bestehenden DB-Software zu ihren Regeln zu arbeiten ist doch wohl etwas anderes als eine DB-Struktur zu entwickeln (ggf inkl Pgmmierung).
Luc :-?
AW: Hierbei ging's doch um's BesserMachen und ...
09.07.2020 02:41:04
Daniel
Natürlich ist das was anderes.
Aber die Anzahl der Menschen, die die Strukturen entwickelt, ist deutlich kleiner als die die mit diesen Strukturen arbeiten.
Und es ging dir um die bits!
Das du hinter alles wieder verdrehst und anders gesagt haben willst, ist typisch für dich.
Oder eben eher dich, denn du hast doch ...
09.07.2020 22:22:34
Luc:?
…DBen ins Spiel gebracht und ich hatte seinerzeit nunmal nicht nur mit bestehenden gearbeitet, sondern auch an Strukturen einer in Entwicklung befindlichen mitgearbeitet… :-]
Luc :-?
Anzeige
Ich hatte zuerst KFZ ins Spiel gebracht
09.07.2020 22:34:16
Daniel
Aber damit hast du nicht kapiert was ich dir sagen wollte under du hast es immer noch nicht.
'Zuerst' im Sinne von 'vor mir'! Und was soll ...
10.07.2020 00:20:05
'vor
…an deinem ebenso trivialen wie ablenkend unpassenden KfzBsp nun nicht zu kapieren sein‽ Genausogut kann ich dir ja unterstellen, mein Anliegen nicht verstanden zu haben!
Vglbar wären ja eher die BasisKenntnisse in EDV/IT und KfzMechanik. Letzteres lernt man in der Schule in Physik, Ersteres könnte/sollte zum Mathe/Informatik-Unterricht gehören. Nur, weil es schon lange TR gibt, wird ja auch nicht auf Mathe verzichtet, höchstens auf Rechenschieber & Co.
Luc :-?
AW: Nein.
05.07.2020 15:08:44
Shumway
Hallo zusammen,
vielen Dank für Eure Tipps! Läuft soweit auch.
Dennoch bleibt ein unzufriedenes Gefühl zurück, denn:
Meiner Meinung nach besteht eine Zahl (oder ein Wert) doch nur aus einer Teilmenge aller in einer allgemeinen Zeichenkette zur Verfügung stehenden Zeichen. Dazu gehören
Vorzeichen: "+/-"
Ziffern: "0-9"
Dezimaltrennzeichen: ","
Zehnerpotenz: e/E
Werden diese in einer plausiblen Reihenfolge erkannt, ist das Kriterium "Zahl" erfüllt.
So ist z.B. -2.010,005e+02 eine gültige Zahl. Die Funktion wert() bestätigt das auch mit dem Ergebnis 201000,5.
Was also bringt mir die Abfrage über ISTZAHL() ohne dieses "--"-Kostrukt? Welche andere Eigenschaft kann eine Zeichenkette denn außer "Zahl" oder "allgemeine Zeichenkette" noch haben?
Für mich sehr, sehr irreführend, zumal auch zu diesem "--"-Kostrukt in der Funktionsbeschreibung nichts zu finden ist.
LG
Das Excelformular kann ja nicht im Vorhinein wissen,welche Daten ihm vorgesetzt werden und kann so auch nicht vorher entscheiden, ob eine Zeichenkette als Zahl oder als Text zu interpretieren ist.
Anzeige
AW Deine Meinung in Ehren, aber...
05.07.2020 18:49:25
EtoPHG
deine Definition einer Zahl ist ungenügend, Shumway
Es gibt neben natürlichen, z.B. noch rationale, reelle, hyper-reelle, komplexe, p-adische, ordinale, kardinale, duale, algebraische Zahlen (fast beliebig erweiterbar, den die Mathematik lebt ;-).
Wenn du dich nun auf Excel beziehst und wissen willst, was den in einer Zelle als Wert (Value) stehen kann, dann sind das:
  • nichts

  • Fliesskommazahlen nach IEEE 754-Spezifikation

  • Zeichenfolgen

  • Fehlerwert

  • ...und genau dieses Wissen wurde von mir (und vielleicht anderen) bei der Levelangabe von Excel gut vorausgesetzt. Was du von Excel in der Zelle angezeigt bekommst, hat nur mit der Formatierung der Zelle zu tun!
    So und jetzt zurück zu Deiner Definition von Zahlen. Warum ist:
    1,79769313486232E+308 in einer (nicht formatierten) Excelzelle eine Zahl
    1,79769313486232E+309 in einer (nicht formatierten) Excelzelle eine Zeichenfolge, bzw. Text
    ?
    Gruess Hansueli
    Anzeige
    AW: AW Deine Meinung in Ehren, aber...
    05.07.2020 21:45:50
    Shumway
    Hallo Hansueli,
    da ich weder über einen akademischen Mathematik- noch einen Informatikabschluß verfüge, darfst Du mich gerne als Excel-Newbie einstufen ;-)
    Also, Deine Hinweise hinsichtlich der möglichen Inhalte einer Zelle waren schon interessant und hilfreich. Vielen Dank dafür!
    Also, ich verstehe das jetzt so:
    1. Ich habe in einer Zelle eine bel. Zeichenfolge
    (Datentyp "char")
    2. Ich extrahiere hieraus mit TEIL() eine Zeichenkette, die 'optisch' wie eine Fliesskommazahl
    aussieht, aber (noch) keine ist
    (Datentyp "char")
    3. Ich wende die Funktion WERT() auf diese Zeichenkette an
    (Datentyp "float" wenn korrekt sonst Datentyp "Fehler")
    4. ISTZAHL() hierrauf angewendet liefert mir dann im Gegensatz zu WERT() lediglich noch ein logisches
    Ergebnis (WAHR/FALSCH), denn dass es eine Zahl ist, weiß ich ja schon seit der Anwendung von WERT(),
    sofern diese Operation fehlerfrei war.
    Was mich aber irritiert, ist, dass die Funktionen ISTGERADE() und ISTUNGERADE() direkt auf die extrahierte Zeichenkette angewendet sofort das richtige Ergebnis liefern (Ganzzahligkeit dieser Zeichenkette vorausgesetzt), ohne den Umweg über WERT() gehen zu müssen.
    Was Deine Prüfungsfrage angeht, so kommt mir 1,79769313486232E+308 als größte darstellbare Zahl in einem Datentyp bekannt vor. Warum sie allerdings in einer nicht formatierten Zelle als Zahl vorliegen soll, erschließt sich mir nicht. Nichtformatiert heißt doch, alles ist erstmal Zeichenfolge, auch 1,79769313486232E+309.
    Im Gegensatz zur Zeichenfolge 1,79769313486232E+308, die mittels WERT() noch in eine Zahl bzw. Wert umgewandelt werden kann, bleibt 1,79769313486232E+309 immer "nur" eine Zeichenfolge, die zwar wie eine Zahl aussieht, aber mathematisch nicht behandelt werden kann, da sie für Excel zu groß ist.
    Du siehst, ich habe hier wohl ein dickes Brett vor'm Kopf, das zu bohren ich aber bereit bin... ;-)
    Schönen Abend noch!
    LG
    AW: AW Deine Meinung in Ehren, aber...
    05.07.2020 22:54:57
    Daniel
    "Was mich aber irritiert, ist, dass die Funktionen ISTGERADE() und ISTUNGERADE() direkt auf die extrahierte Zeichenkette angewendet sofort das richtige Ergebnis liefern (Ganzzahligkeit dieser Zeichenkette vorausgesetzt), ohne den Umweg über WERT() gehen zu müssen."
    Wenn du die Beiträge gelesen hättest, wüsstest du warum das so ist.
    Excel führt die Funktion Wert() automatisch aus ohne dass man sie hinschreiben muss, wenn an dieser Stelle ein numerischer Einzelwert erforderlich ist.
    IstGerade() funktioniert nur mit einer Zahl als Paramerter, daher kann Excel versuchen, einen fälschlicherweise eingegebenen Text in eine Zahl umzuwandeln.
    IstZahl hingegen verarbeitet Zahlen, Texte, Wahrheitswerte und Fehler, daher gibt es hier keine automatische Umwandlung.
    Klaro?
    Gruß Daniel
    Es geht nicht (immer) um Interpretation, sondern
    05.07.2020 18:49:58
    lupo1
    (oft) um den Typ der Eingabe.
    Gibt man eine Zahl ein, die als Zahl erkannt wird, resultiert als Typ eine Zahl. Diese wiederum ist für bestimmte Funktionen Voraussetzung.
    Gibt man eine Zahl ein, die nicht als Zahl erkannt wird, resultiert als Typ Text.
    Gib mal folgendes ein:
    =SUMME({"1";2;4})
    =SUMME("1";2;4)
    und finde bitte selbst die genaue Begründung für das unterschiedliche Ergebnis. LDaniels Beitrag bringt Dich zum Ziel.
    ISTZAHL() ist konsequent ...
    04.07.2020 16:53:22
    Matthias
    Hi
    Bei Deiner Levelangabe solltest Du wissen das eine "Textzahl" linksbündig steht.
    Eine echte Zahl hingegen rechtsbündig!
    Somit ist die Auswertung von =Istzahl(DeineZelle) logisch FALSCH:
    Durch einen Operator wird diese Textzahl zu einer "echten" Zahl.
    Du kannst z.B. auch schreiben:
    Tabelle1 (2)

     BC
    225WAHR

    Formeln der Tabelle
    ZelleFormel
    B2=TEIL(A2;4;2)
    C2=ISTZAHL(B2*1)


    Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
    Ich persönlich bevorzuge auch die Schreibweise die lupo vorgeschlagen hat.
    Tabelle1 (2)

     BC
    225WAHR

    Formeln der Tabelle
    ZelleFormel
    B2=TEIL(A2;4;2)
    C2=ISTZAHL(--B2)


    Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
    Gruß Matthias
    AW: Arbeitet ISTZAHL() inkonsequent?
    04.07.2020 17:17:20
    LDaniel
    Hi
    IstZahl und IstText schauen nicht auf den Inhalt, sondern nur auf das Format.
    Daher kannst du mit IstZahl nicht prüfen, ob ein Text wie eine Zahl aussieht, sondern nur, ob der vorliegende Wert tatsächlich eine Zahl ist.
    Um zu prüfen, ob ein Text wie eine Zahl aussieht, hilft nur, den zu versuchen den Text in eine Zahl zu wandeln und dann mit IstZahl zu prüfen, ob das funktioniert hat.
    Das zweite, was du beobachtest, nennt sich "implizite Typumwandlung".
    Dh immer, wenn du an einer Stelle, an welcher zwingend eine Zahl erwartet wird einen Text angibst, wird Excel automatisch versuchen, diesen Text in eine Zahl zu wandeln um die Berechnung durchführen zu können.
    Das funktioniert aber nur mit Einzelwertoperationen wie +-*/.
    Bei Massenauswertungen wie Summe oder Mittelwert findet die Typumwandlung nicht statt und Texte werden grundsätzlich ignoriert, auch wenn sie wie Zahlen aussehen.
    Gruß Daniel
    oder einfach mal die Funktionshilfe lesen! (owT)
    04.07.2020 18:56:02
    EtoPHG

    Eben, H'ue'! Aber ein Xl-Guter ist ja darüber ...
    04.07.2020 20:34:36
    Luc:?
    …erhaben und kommt uns stattdessen mit solchem Anfänger-Pille-Palle als ob das werweißwas wäre.
    Eine IsNumeric-Prüfung gibt's nur in VBA, Shumway!
    Gruß, Luc :-?
    AW: Eben, H'ue'! Aber ein Xl-Guter ist ja darüber ...
    05.07.2020 15:39:47
    Shumway
    Hallo Luc,
    ich finde es ausgesprochen schade, dass man in vielen Foren Teilnehmer findet, die zwar keine Fragen beantworten aber den Teilnehmern, die noch auf dem Weg zum Expertenwissen sind, das Gefühl geben, dumm zu sein. Dazu nur soviel: Dumm sein ist keine Schande, dumm bleiben schon!
    Also: Wenn Du Menschen wie mir nicht helfen möchtest, weil sie in Deinen Augen unter Deiner Würde sind, ist das vollkommen in Ordnung. Aber erspare ihnen doch diese wenig zielführenden Kommentare!
    LG
    Ein Punkt an Deiner Argumentation ist richtig:
    05.07.2020 15:55:53
    lupo1
    Die Umwandlung (oder Nichtumwandlung) von Typen automatisch (oder nicht) ist in Excel so unübersichtlich, dass ich (und vermutlich jeder Antworter, ohne sich dabei einen abzubrechen) es immer erst teste, bevor ich es als Ergebnis poste.
    Beispielsweise färbt in altem Excel eine {1;2;3}-Konstante in der Formel nach außen so durch, dass kein Matrixformelabschluss nötig ist. In LibreOffice musst(est) Du das dann nachholen; das Öffnen einer solchen Formel dort ergibt/ergab also keine Matrixformelinterpretation.
    In neuem Excel geht das sogar auch mit ZEILE(1:3) bzw. SEQUENZ(3). Aus dem Grund, weil die explizite Matrixformel abgeschafft ist.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige