L'utilizzo della formula "If" a volte restituisce celle vuoteSono uno studente che utilizza JMP per la prima volta, quindi mi scuso per qualsiasi terminologia errata.
Sto usando questa formula per assegnare un codice a diversi intervalli di spesa per l'analisi RFM.

Il problema che sto riscontrando è con il valore massimo 259,85. A volte restituisce il codice corretto "5" e altre volte restituisce una cella vuota.

Qualcuno può aiutarmi a chiarire questo? Grazie per qualsiasi contributo!
Ri: L'utilizzo della formula "If" a volte restituisce celle vuoteEcco un blog su Se .
Ecco una domanda precedente sulla rappresentazione di numeri decimali in base 10 in virgola mobile binaria. La risposta breve è che un numero come .1 o .2 è rappresentato in binario proprio come 1/3 è in base 10: una sequenza ripetuta infinita di cifre. Ad un certo punto viene troncato e arrotondato e potrebbe essere leggermente grande o leggermente piccolo. ( leggermente è circa 1e-15). Nello stesso modo in cui .333+.333 != .667, .1+.2 !=.3
.1+.2==.3
0 // perché no? sottrarre loro e vedere perché sono diversi ...
(.1 + .2) - .3
5.55111512312578e-17 // questa è davvero una piccola differenza
Questo non è specifico di JMP; vedere il commento di Excel nel secondo collegamento sopra.
A seconda di come Total_money è stato calcolato, il valore vicino a 259.85 può essere 259.8500..01 o 259.8499..99 (approssimativamente) e potresti volere che la tua istruzione if divida i penny a metà strada (codice non testato, approssimativamente corretto):
// 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
IL Se fa ogni test in ordine e usa la prima risposta vera. La risposta finale "0" non ha test ed è il altro clausola dell'istruzione if.
Ri: L'utilizzo della formula "If" a volte restituisce celle vuoteGrazie, eh. Sulla base del tuo contributo ho rielaborato la formula per assomigliare a questo:

Non sono sicuro che sia esattamente quello che intendevi, ma segue lo spirito del tuo consiglio, almeno, nel rimuovere spazio per i valori da nascondere tra i limiti superiori di un'istruzione if e i limiti inferiori della successiva.
Mi sembra strano, però, perché non credo che questo dato vada oltre i 2 punti decimali, quindi non capisco come qualcosa possa cadere tra .84 e .85.
Grazie mille per l'aiuto!
Ri: L'utilizzo della formula "If" a volte restituisce celle vuoteIl valore total_money potrebbe essere compreso tra 259,84 e 259,85. Potresti provare a rimuovere il limite superiore delle condizioni "else if" nell'istruzione if e lasciare una condizione "else" aperta.Altri due problemi comuni che non sembrano essere applicabili in questo caso sono i dati mancanti e il tipo errato di dati. Ecco un esempio:
