Bei Verwendung der „Wenn“-Formel werden manchmal leere Zellen zurückgegebenIch bin ein Student, der JMP zum ersten Mal verwendet, daher entschuldige ich mich für etwaige falsche Terminologie.
Ich verwende diese Formel, um für die RFM-Analyse einen Code verschiedenen Ausgabenbereichen zuzuweisen.

Das Problem, auf das ich stoße, ist der Spitzenwert 259,85. Manchmal wird der korrekte Code „5“ zurückgegeben, manchmal wird eine leere Zelle zurückgegeben.

Kann mir jemand helfen, das aufzuklären? Vielen Dank für jede Eingabe!
Betreff: Bei Verwendung der „Wenn“-Formel werden manchmal leere Zellen zurückgegebenHier ist ein Blog über Wenn .
Hier ist eine frühere Frage zur Darstellung von Dezimalzahlen zur Basis 10 in binären Gleitkommazahlen. Die kurze Antwort ist, dass eine Zahl wie .1 oder .2 binär dargestellt wird, ähnlich wie 1/3 in der Basis 10: eine unendliche, sich wiederholende Ziffernfolge. Es wird irgendwann abgeschnitten und abgerundet und kann etwas größer oder etwas kleiner sein. ( leicht ist etwa 1e-15). Genauso wie .333+.333 != .667, .1+.2 !=.3
.1+.2==.3
0 // Warum nicht? Subtrahieren Sie sie und sehen Sie, warum sie unterschiedlich sind ...
(.1 + .2) - .3
5.55111512312578e-17 // das ist ein wirklich kleiner Unterschied
Dies gilt nicht nur für JMP; siehe den Excel-Kommentar im zweiten Link oben.
Je nachdem, wie Total_money berechnet wurde, kann der Wert nahe 259,85 259,8500..01 oder 259,8499..99 (ungefähr) sein, und Sie möchten möglicherweise, dass Ihre if-Anweisung die Pennys auf halber Strecke aufteilt (ungetesteter Code, ungefähr richtig):
// caution: counting pennies using floating point will be painful!
if( total_money > 259.845, "5", // 259.85 and above
total_money > 139.895, "4", // 139.90 and above
total_money > 89.845, "3", // 89.85 and above
...
"0") // none of the above
Der Wenn führt jeden Test der Reihe nach durch und verwendet die erste wahre Antwort. Die endgültige „0“-Antwort hat keinen Test und ist die anders Klausel der if-Anweisung.
Betreff: Bei Verwendung der „Wenn“-Formel werden manchmal leere Zellen zurückgegebenDanke, äh. Basierend auf Ihren Eingaben habe ich die Formel so überarbeitet, dass sie wie folgt aussieht:

Ich bin mir nicht sicher, ob das genau das ist, was Sie beabsichtigt haben, aber es folgt zumindest dem Geist Ihres Ratschlags, indem es Platz für Werte schafft, die sich zwischen den oberen Grenzen einer if-Anweisung und den unteren Grenzen der nächsten verstecken.
Es erscheint mir jedoch seltsam, da ich nicht glaube, dass diese Daten über 2 Dezimalstellen hinausgehen, sodass ich nicht verstehe, wie irgendetwas zwischen 0,84 und 0,85 liegen kann.
Vielen Dank für die Hilfe!
Betreff: Bei Verwendung der „Wenn“-Formel werden manchmal leere Zellen zurückgegebenDer Wert total_money könnte zwischen 259,84 und 259,85 liegen. Sie könnten versuchen, die Obergrenze der „else if“-Bedingungen in der if-Anweisung zu entfernen und eine offene „else“-Bedingung zu belassen.Zwei weitere häufige Probleme, die hier nicht aufzutreten scheinen, sind fehlende Daten und der falsche Datentyp. Hier ist ein Beispiel:
