Excel Funktion -> Frage

Jabba schrieb:
OT
@Wolgang
Beschäftigst Du Dich auch mit VBA?
Wenn, nutzt Du Mac oder Win? Der Mac Editor ist nämlich sowas von grausam... da brauch ich mal jemanden, mit dem ich mich zusammen ärgern kann... :p

VBA ist nichts für mich. Mir ist zwar bekannt, daß man damit in Excel noch viele zusätzliche „Gemeinheiten“ einbauen kann, doch kann ich dafür mit Pivottabellen arbeiten. Excel nutze ich auf dem Mac zur privaten Buchführung und seit sechs Jahren intensiv in der Firma in der Windows-Version, um damit zahlreiche Tabellen mit Messwerten zu führen.

Zum Programmieren habe ich ansonsten keinen Draht. Die Annäherungsversuche an C und C++ sind kläglich gescheitert und im letzten Jahr habe ich versucht, Java kennenzulernen. Aber richtig Programmieren ist im Moment nicht. Habe noch andere Kriegsschauplätze, die eigentlich noch uninteressanter sind, aber ausgefochten werden müssen.
 
Hi,

zumal VBA für den Mac wohl auch eingestellt werden soll.

Leider sind die Programmiersprachen und die dazugehörigen Entwicklungsumgebungen inzwischen so mächtig, dass es eines Vollzeitstudiums bedarf, um eigene Lösungen zu entwickeln. Werde mir mal RealBasic näher anschauen; dort scheint man schneller zu brauchbaren Ergebnissen zu kommen.

Gruß
Peter
 
peterg schrieb:
Hallo Wolfgang,

Du kannst natürlich Bedingungen schaffen, in denen Deine Behauptungen wahr werden. Das habe ich auch nicht bestritten. Sondern ich behaupte:

Wenn Du das Ergebnis mehrerer arithemtischer Operationen auf die Gleichheit irgendeiner Ganzzahl prüfst (egal ob in einer separaten Tabellenzelle oder als Bedingung einer bedingten Formatierung), dann kann es zu unerwarteten Effekten kommen, da die erwartete Ganzzahl nicht getroffen wird. Wegen dieser Probleme von Daten des Typs FLOAT gibt es z.B. in Java den Datentyp BIGDECIMAL. Deshalb werden in vielen Programmen zur Finanzmathematik oder Statistik die Daten als INTEGER (bzw. einem LONG-Typ davon) gespeichert und für bestimmte Operationen gewandelt (und zurück).

Beispiel 1:
Zelle A1 =10/3 Zelle A2 =A1*3 Zelle A3 =A2-10
Zelle A3 =WENN(A3=0;"Richtig";"Falsch")
Das funktioniert wie erwartet.

Beispiel 2:
Zelle A2 =3,333333333333333333333*3, Zelle A3 = A2-10
Zelle A3 =WENN(A3=0;"Richtig";"Falsch")
Jezt bin ich gespannt. Du kannst die 3 mit so vielen Nachkommastellen eingeben, wie Du willst. Die Zelle A3 wird 0,0000 anzeigen - aber die Bedingung wird nicht wahr. Du kannst Dir das Ergebnis mit beliebig vielen Nachkommastellen anschauen und Dich wundern. Die Division aus Beispiel 1 wird z.B. nach 14 Nachkommastellen abgeschnitten und erscheint weniger genau als die Eingabe in Beispiel 2.

Der Themenstarter hat nicht angegeben, in welchem Zusammenhang er sein Problem gelöst haben möchte. Wenn er jedoch das Ergebnis mehrerer arithemetischer Operationen auswerten möchte und der Wert "0" eindeutig der einen oder anderen Seite zugeordnet werden muss, dann ist die Typumwandlung zwingend erforderlich. Das mag einfacher gehen und darauf wäre ich gespannt. Wenn er eine Liste manuell eingegebener Daten auswerten möchte, dann ist die Typumwandlung nicht zwingend erforderlich, da die Eingabe ja ausreichend genau ist (er wird ja nicht 0,000000001 eingeben wo er 0 meint).

Zum internen Datenformat von Excel: Wenn ich eine Ganzzahl eingebe, dann wird sie als Ganzzahl angezeigt (und intern als FLOAT gespeichert). Die Formatierung ist etwas ganz anderes und betrifft nur die Anzeige. Typisches Beispiel: 0,025 wird zu 2,50 % ... und bleibt 0,025. Die Genauigkeit ist eine Frage der Operationen, die durchgeführt werden.

Das solls gewesen sein. Einigen wir uns darauf, dass ich umständlich weiter arbeiten darf und Du einfach und elegant die Probleme löst. Der geneigte Leser mag entscheiden und sich für einen dritten Weg entscheiden.

Peter

He, in deinen Beispielen hast du aber auch zu „geschaffenen“ Bedingungen zuflucht genommen.

In meiner Firma werde ich des öfteren mit derartigen Situationen konfrontiert und habe dies immer auf meine zuvor beschriebene Art gehandhabt. Dort hatte ich schon Tabellen mit 150 Spalten und 10.000 Zeilen, bei denen sich Excel fast aufgehängt hat. In max. 10 dieser Spalten war eine Formel, der Rest waren exportierte Daten.

Probiere doch einfach mal die „bedingte Formatierung“ (zunächst mit kleineren Tabellen) aus. Die Reihenfolge der Bedingungen ist aber hier schon wichtig, weil bei festgestellter Gleichheit die kleiner Bedingung nicht mehr abgefragt wird.

Ansonsten sollen die anderen denken was sie wollen.

Gruß

Wolfgang
 
Zurück
Oben Unten