Wenn es sich um Fließkommazahlen handelt, sieht die Welt schon wieder anders aus.
und wenn ich das Problem richtig verstanden habe, ist dies genau der Fall.
Ich denke nur, dass ja hinter der Funktion Rest() irgendeine reine Mathematik stecken muß, die mich interessieren würde.
Ein Computer rechnet nicht mit symbolischen Ausdrücken, wie man es in der Mathematik macht. Man kann sich überlegen, dass eine relle Zahl x > 0 genau dann eine ganze Zahl ist, wenn
x = \lfloor x \rfloor := \max_{k \in \mathbb Z, k \leq x} k
Das ist das was ich vorhin versucht habe zu beschreiben: man schaut ob x gleich bleibt, wenn man es abrundet. Und wie rundet man ab? Man such die größte ganze Zahl k, die kleinergleich x ist.
Das ist unglaublich ineffektiv und nicht „computergerecht“.
Der Schlüssel ist sich anzuschauen, wie Zahlen in einem Computer repräsentiert werden. Dann wird man feststellen, dass es, da ja der konkrete Wert von x gegeben ist, sehr leicht ist die Nachkommastellen „abzuschneiden“ (also abzurunden). Mehr zu Gleitkommazahlen.
Excel rechnet intern immer mit Doubles. Das Problem ist, dass ich nicht weiß, wie die Funktionen implementiert sind. Tendenziell würde ich sagen, dass Rest() nicht optimal ist, da uns der Rest ja nicht interessiert, sondern nur ob dieser (bei Division durch 1) null ist. Andererseits wüdest du nicht mit Excel arbeiten, wenn es wirklich um Performance ginge (soll heißen du kannst auch ruhig bei Rest bleiben). Ich würde es vermutlich so machen:
=WENN(A1=GANZZAHL(A1); 0; 1)
Viele Grüße