Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Excel4-Makrofunktionen - BEITRAG: Formate auf System- bzw. Ländereinstellung abstimmen


Aufgabe
In der Firma wird nur deutsches Excel und Windows verwendet.
Allerdings ist an zwei Computern der Punkt als Dezimalzeichen eingestellt. Das hat bis jetzt auch keine Probleme gemacht, da beim Laden einer Exceltabelle das jeweilige richtige Dezimalzeichen angezeigt wird.

Nun habe ich aber in einer Tabelle die Formel

=TEXT(H4;"0,0")

In H4 steht eine Zahl, welche in der Version mit dem Komma als Dezimalzeichen das gewünschte Ergebnis liefert.
Leider interpretieren die Rechner, die den Punkt als Dezimalzeichen haben, dies natürlich falsch.

Lösung
Lies mit einer Makro-4-Funktion das eingestellte Dezimalzeichen aus und verändere die Formel entsprechend.

Einfügen>Namen>Definieren
Name:Dezimalzeichen
bezieht sich auf:
=INDEX(ARBEITSBEREICH.ZUORDNEN(37);ZEILE(INDIREKT("A3")))

Und die Formel in der Tabelle wird so abgeändert.

=TEXT(H4;"0" & Dezimalzeichen & "0")


Nun interpretieren alle Rechner diese Formel richtig.

Update von Ernst-Albrecht vom 28.08.2002:

Vor kurzen war im Excel-Forum von Spotlight eine Anfrage ob man
Datumsformate die in der Funktion TEXT() [z.B. =TEXT(15000;"TTTT,
TT.MM.JJJJ") ] verwendet werden, so änderten kann das sie auch von einer
englischen Excelversion richtig interpretiert werden. Das hat mich an meine
Lösung für das Dezimalzeichen erinnert. Ausgehend von dieser Überlegung
habe ich hoffentlich eine Lösung für das Problem gefunden, die für alle
Excelversion (ob englisch, deutsch oder andere Sprachen) gilt.

Ausgehend von der Formel =TEXT(15000;"TTTT, TT.MM.JJJJ") müssen folgende
Schritte ausgeführt werden.

Zuerst wird eine Zelle (z.B. Tabelle1!C3) in dem gewünschten Format
formatiert (Also wie im Beispiel TTTT, TT.MM.JJJJ). Dann vergibt man einen
Namen mit folgender Formel

Datumsformat1 = ZELLE.ZUORDNEN(ZEILE(INDIREKT("A7"));Tabelle1!$C$3)
Diese Formel liest mit Hilfe der Makro-Funktion zelle.zuordnen(7;Bezug) das
Format aus der Zelle Bezug als String aus.

Wenn nun noch die Formel =TEXT(15000;"TTTT, TT.MM.JJJJ") in

=TEXT(15000;Datumsformat1)

verändert wird, zeigen auch die fremdsprachigen Excelversionen das richtige
Format an. Beispielweise wird das deutsche Format TTTT, TT.MM.JJJJ in der
englischsprachigen Excelversion in dddd, dd/mm/yyyy umgewandelt.

Die deutschen Excelversion zeigt bei =TEXT(1500;Datumsformat1) Freitag,
24.01.1941
Die englische Excelversion Friday, 24/01/1941

Diese Variante kann auch für die Dezimalzeichen-Formel angewandt werden.