Zahlen und Zeichen

<< Click to Display Table of Contents >>

Navigation:  Datenauswertung > Tabellengestaltung > Formatierung >

Zahlen und Zeichen

Das Format von Zahlenwerten kann grundsätzlich mit FORMAT eingestellt werden. Für sehr große Zahlen gibt es eine Spezialversion.

Die Format-Ausgestaltung von Zahlenformaten, die als Labels dienen, geschieht mit LABELFORMAT.

AUTOSIGNFORMAT dient der Formatierung der innerhalb der VALUELABELS angezeigten Signifikanzbuchstaben.

DATEFORMAT steuert die Datums-Anzeige in DOCUMENT.


Format

Dfinition eines Format für die Darstellung eines bestimmten Zelleninhalts

Syntax:

FORMAT = "<formatstring>";

Sollen z.B. die Mittelwerte einer Skala immer mit Vorzeichen und mit dem Komma als Dezimaltrenner mit zwei Stellen nach dem Komma ausgegeben werden, so schreibt man:

FORMAT MEAN = "+#,##";

Im Format werden folgende Steuerzeichen erkannt:

.

Punkt als Dezimaltrennzeichen

,

Komma als Dezimaltrennzeichen

+

Vorzeichen( +/- ) immer ausgeben

#

Platzhalter für Ziffer

Alle anderen Zeichen im Formatstring werden in die Ausgabe übernommen. Sollen z.B. alle Absolutzahlen in Klammern gesetzt werden, so kann man dies durch folgendes Statement erreichen:

FORMAT ABSOLUTE = "(#)";

Sollen z.B. vor jedem Summenwert einer Tabelle ein Dollarzeichen und eine Leerstelle stehen, so lautet das Format-Statement hierfür

FORMAT SUM = "$ #";

Ist für einen Prozentwert (ROWPERCENT, COLUMNPERCENT, TOTALPERCENT) ein FORMAT definiert, so hat diese Definition Vorrang vor einer Festlegung der Anzahl von Prozentdezimalstellen mit der Anweisung DECIMALPERCENT.

Große Zahlen

Sehr große Zahlen sind manchmal etwas schwer lesbar. Deshalb möchte man manchmal Zeichen zur Unterteilung einschieben. Hierfür gibt es eine spezielle Variante des FORMAT-Statements, das GESStabs am ersten Zeichen, einem ^ erkennt.

Z.B. kann man schreiben:

FORMAT SUM = "^.3###,###,###,###";

Das erste Zeichen nach dem ^ gibt das zu verwendende Dezimal-Trennzeichen an, die folgende Ziffer die Anzahl der Nachkommastellen. Der Ziffernstring links vom Dezimaltrenner wird nach der Position der Lattenkreuze (#) aufgeteilt. Die Zahl 123456.78 würde mit dem oben beschriebenen Format als

123,456.780

dargestellt werden.

Es gibt zusätzlich einen speziellen Formatstring, der nur aus dem char * besteht: ’*’. Also bspw.:

FORMAT ABSOLUTE = ’*’;

Diese FORMAT-Angabe bewirkt die Ausgabe einer Zahl ohne Nachkommastellen. Ist die Zahl < 0, dann wird dies nicht durch ein vorangestelltes Minuszeichen, sondern durch ein nachgestelltes Sternchen (*) gekennzeichnet.

Hiermit kann man z.b. mittels POSTPROCESS Spaltenbasen kennzeichnen, in denen das ungewichtete n der Spalte unter einem Schwellenwert liegt.

FORMAT ABSOLUTE = ’*’;

FRAMEELEMENTS = ABSROW;

TABLE = .....

POSTPROCESS ABSOLUTE : IF ycode EQ 0 AND xphys LT 30 THEN self = 0 - self;

In diesem Fall würden alle (gewichteten) Spaltenbasen mit einem Stern gekennzeichnet, bei denen das ungewichtete n der Spalte unter 30 beträgt.

Mit einem FORMAT-String kann man auch die Wandlung der numerischen Ergebnisse in Strings in den Tabellen steuern. u.a. legt man die Verwendung von ',' oder '.' fest, je nachdem wie der Dezimaltrenner dargestellt werden soll. Oft ist es erwünscht, den nicht für den Dezimaltrenner verwendeten Char als eine Art 'Tausendertrenner' zu verwenden, um die Lesbarkeit großer Zahlen zu verbessern. GESStabs lässt jetzt die parallele Verwendung von Punkt und Komma zu, und das weiter rechts stehende Zeichen ist der Dezimaltrenner, der Antipode wird dann zum Tausendertrenner. Dies gibt die Möglichkeit, Tausender-Trennzeichen zu verwenden. Wenn man nur die Tausender-Trennzeichen sehen möchte, aber keine Nachkommastellen, muss man trotzdem das Dezimaltrennzeichen angeben, denn sonst hat man keine Chance, das Tausendertrennzeichen links davon zu platzieren. Das Format sieht dann am einfachsten so aus:

#.,

Der Reihe nach: der am weitesten rechts stehende mögliche Dezimaltrenner ist das Komma. der Punkt kommt auch vor: also spielt er die Rolle des Tausendertrenners. der ausgewählte Dezimaltrenner erscheint aber nicht, weil die Anzahl der # rechts vom Dezimalpunkt Null ist.

Wenn die erweiterte Formatfunktion zu Problemen bei der Zahlenausgabe führt, kann man mit dem TABLEFORMAT = OLDFORMAT; diese neue Funktion ausschalten. Dann wird der alte Algorithmus verwendet.

Formate gelten für alle Tabellen bis zur Änderung.


LabelFormat

In aller Regel werden die Labels den Codes der Variablen zugeordnet. GESStabs kann aber auch Labels aus den Zahlenwerten direkt erzeugen. Die Format-Ausgestaltung dessen kann mit LabelFormat gesteuert werden.

Syntax:

LABELFORMAT <varlist> = <formatstring>;

Beispiel: Gesetzt den Fall, dass man eine Datumsangabe in der Form DDMMJJJJ in einer Variablen als numerischen Wert gespeichert hat, kann man diesen Wert durch ein LABELFORMAT lesbarer gestalten. Der Zahlenwert 26062005 z.B. würde durch

LABELFORMAT Datum = "##.##.####";

als '26.06.2005' ausgegeben werden.

Im Normalfall würden auch führende Nullen generiert; d.h. aus 5072005 würde dann das Label '05.07.2005'. Wenn man dies nicht wünscht, kann man dies Verhalten durch das TABLEFORMAT NOZEROFILLINLABEL abschalten.


AutoSignFormat

Formatierung des in den Labels angezeigten Signifikanzbuchstaben

Syntax:

AUTOSIGNFORMAT = "<formatstring>";

Im Standardfall wird bei angefordertem Signifikanztest in die Labelkästchen nur der Signifikanzbuchstabe übernommen. Wenn man diese Ausgabe etwas verschönern will, kann man einen speziellen Formatstring angeben. Alle Zeichen des Strings werden übernommen; # im String wird durch den INDEXCHAR ersetzt.

Beispiele:

AUTOSIGNFORMAT = '#\';

bewirkt, dass nach dem INDEXCHAR ein Zeilenvorschub generiert wird, wenn der INDEXCHAR am Anfang des Labels stehen soll.

AUTOSIGNFORMAT = '\#';

generiert einen Zeilenvorschub vor dem INDEXCHAR. Ist etwa praktisch, wenn der INDEXCHAR am Ende des Labels stehen soll.


DateFormat

Formatierung der Ausgabe des Datums im DOCUMENT.

Syntax:

DATEFORMAT = <string>;

Im String werden die Buchstaben Y, M und D in Jahr, Monat und Tag expandiert. Alle anderen Zeichen werden so in das Datum übernommen.

Also:

DATEFORMAT = "dd.mm.yyyy";

ergibt das 'deutsche' Standarddatum: 31.10.2009.

DATEFORMAT = "mm-dd-yy";

ergibt ein englisches Datum: 10-31-09.