Tag Archives: XML

Verzweifle nicht, wenn du kein Profi bist. Ein Amateur hat die Arche gebaut; ein Profi die Titanic.

Sehr geehrter Herr Dr. Martin,

ich bin großer Fan Ihrer Tutorials (und Ihrer Westen) früher auf video2brain, heute auf LinkedIn.

Heute wende ich mich mit einer Frage an Sie, auf die ich in den Weiten des Internets keine Lösung gefunden habe.

Ich habe ein EXCEL Datei, mit der wöchentlich die „Performance“ an verschiedenen Parametern gemessen wird.

Hier wird (auf ca. 50 Tabellenblättern in jeweils ca. 40 Zellen) mit „Bedingter“ Formatierung“ gearbeitet, um optisch die jeweiligen Werte zu bewerten.

Gibt es eine Möglichkeit, die bestehende „Bedingte Formatierungsregel“ zeitsparend für die ca. 2.000 Zellen zu ändern?

Vielen Herzlichen Dank im Voraus für Ihre Hilfe.

Hallo Herr S.,

ich fürchte, DA bringen Sie Excel an die Grenzen. Man kann so etwas programmieren (wenn Sie sehr viele einzelne bedingte Formatierungen haben). Sie könnten das Dokument „entzippen“ und dort in der XML-Datei des Tabellenblattes die bed. Formatierung ändern (kennen Sie das? – die conditional formating befindet sich ganz am Ende – muss allerdings auch für jeder Formatierung einzeln vorgenommen werden):

Sonst weiß ich leider keine Möglichkeit ALLE bedingten Formatierungen schnell zu ändern.

 

Blöder Tipp: manchmal geht es schneller, wenn sie alle bed. Formatierungen löschen und dann neu erstellen.

Die Dummheit ist die sonderbarste aller Krankheiten. Der Kranke leidet nie unter ihr. Die, die leiden, sind die anderen.

Heute in der Excel-Schulung wollte ich den Inquire vorstellen. Ein praktisches, nützliches und gutes Werkzeug. Und dann das:

Excel: nein! Diese Arbeitsmappe ist NICHT beschädigt! Und … die IT ist so weit …

Ich hab noch mal nachgemessen: Ich bin großartig.

Excel hat ein grauenvolles Speichermanagement von Dateien in Bezug auf Formatierungen.

Ein manuelles „Wegformatieren“ nützt nichts – dieser Bereich bleibt im benutzten Bereich ([Strg] + [Ende]). Man muss die Zeilen löschen oder „Alles löschen“.
Beispiel: eine Datei hat eine Dateigröße von 9 Mbyte. Sie ist von Zelle A1 bis U1048576 gefüllt!?!

Löscht man von Zelle A3001 bis zum Ende der Datei nicht nur die Zeilen, sondern auch die Formatierungen, so quittiert Excel dies mit einer Dateigrößenänderung auf 48 Mbyte!?!
Der Grund:
Wenn in einer leeren Excelmappe Zeile 2 markiert und gelb formatiert wird, hat die gespeicherte Datei eine Größe von 7,62 KByte. Markiert man dagegen von B2 bis XFD2 verlangt Excel dafür eine Dateigröße von 45,7 KByte.

Der Grund findet sich in XML, genauer in der Datei: xl\worksheets\sheet1.xml. Der XML-Code der Datei mit der durchgehenden Formatierung sieht folgendermaßen aus:
[…]
<sheetView tabSelected=“1″ workbookViewId=“0″>
<selection activeCell=“A2″ sqref=“A2:XFD2″/>
</sheetViews>
<sheetFormatPr baseColWidth=“10″ defaultRowHeight=“12.75″ x14ac:dyDescent=“0.2″/>
<sheetData>
<row r=“2″ s=“1″ customFormat=“1″ x14ac:dyDescent=“0.2″/>
</sheetData>
[…]
Der XML-Code der Datei, in der Zelle B2:XFD2 formatiert wurde:
<sheetView tabSelected=“1″ topLeftCell=“XER1″ workbookViewId=“0″>
<selection activeCell=“XFC2″ sqref=“A2:XFC2″/>
</sheetView>
</sheetViews>
<sheetFormatPr baseColWidth=“10″ defaultRowHeight=“12.75″ x14ac:dyDescent=“0.2″/>
<sheetData>
<row r=“2″ spans=“1:16383″ x14ac:dyDescent=“0.2″>
<c r=“B2″ s=“1″/>
<c r=“C2″ s=“1″/>
<c r=“D2″ s=“1″/>
<c r=“E2″ s=“1″/>
<c r=“F2″ s=“1″/>
<c r=“G2″ s=“1″/>
<c r=“H2″ s=“1″/>
<c r=“I2″ s=“1″/>
<c r=“J2″ s=“1″/>
<c r=“K2″ s=“1″/>
[…]
<c r=“XEW2″ s=“1″/>
<c r=“XEX2″ s=“1″/>
<c r=“XEY2″ s=“1″/>
<c r=“XEZ2″ s=“1″/>
<c r=“XFA2″ s=“1″/>
<c r=“XFB2″ s=“1″/>
<c r=“XFC2″ s=“1″/>
<c r=“XFD2″ s=“1″/>
</row>
</sheetData>
Insbesondere blähen bedingte Formatierungen Excel-Arbeitsmappen auf. Nicht gut: jede Zelle einzeln mit einer bedingten Formatierung versehen, da dieser Formatierung folgender XML-Code
<conditionalFormatting sqref=“H2″>
<cfRule type=“iconSet“ priority=“24766″>
<iconSet iconSet=“5Rating“>
<cfvo type=“percent“ val=“0″/>
<cfvo type=“percent“ val=“20″/>
<cfvo type=“percent“ val=“40″/>
<cfvo type=“percent“ val=“60″/>
<cfvo type=“percent“ val=“80″/>
</iconSet>
</cfRule>
<cfRule type=“iconSet“ priority=“24765″>
<iconSet iconSet=“5Rating“>
<cfvo type=“percent“ val=“0″/>
<cfvo type=“num“ val=“120″/>
<cfvo type=“num“ val=“140″/>
<cfvo type=“num“ val=“160″/>
<cfvo type=“num“ val=“180″/>
</iconSet>
</cfRule>
</conditionalFormatting>
zugewiesen wird.

Lösungen beim Aufblähen durch Formatierungen:
* Zeilen löschen
* Spalten löschen
* Formatierungen löschen:

* Mit Inquire „Übermäßige Zellformatierungen entfernen“
* Die Datei als Excel-Binärarbeitsmappe (XLSB) speichern. Dies verkleinert die Dateigröße um zirka 50%.
Formate vermeiden (so nicht!):

Wegen Rückrufaktion vorübergehend aus dem Sortiment genommen

Schon erstaunt.

Ich schreibe in eine Excelarbeitsmappe einen Text.

Ich speichere die Datei. Benenne die Endung um in „.zip“. Ich entzippe die Datei, suche im Ordner „xl“ nach der Datei „sharedStrings.xml“ und öffne sie in einem guten XML-Editor:

Ich will es wissen! Ich füge weitere Tags hinzu:

Speichere die XML-Datei, zippe das Archiv und sehe nach. Kein Fehler beim Öffnen der Datei (!), kein weiterer Text wird angezeigt. Das Ergebnis sieht so aus:

Ich schaue nach: Datei / Informationen / Auf Probleme überprüfen – Excel findet keine Probleme:

Keine Benutzerdefinierten XML-Daten. Ich schaue im Inquire nach – auch dort wird nichts gefunden:

Das heißt: Hacker aller Länder: versteckt Eure Daten in XML-Elementen! Das findet kein Mensch!

Randbemerkung: okay, okay – man darf nicht jeden beliebigen Knoten an jeder Stelle platzieren. Aber das hat man schnell herausgefunden, was man darf.

Diejenigen, die wissen, wie es nicht geht, sollen nicht diejenigen stören, die es bereits tun.

Ich bin sehr irritiert.

Auf unseren letzten Excel-Stammtisch haben wir folgendes Phänomen festgestellt:

Tragen Sie in eine Zelle den Wert 8625,21 ein. Speichern Sie die Datei. Ändern Sie den Dateinamen, indem Sie „.zip“ als Ende einfügen. Entzippen Sie die Datei. Öffnen Sie die Datei sheet1.xml, die Sie im Ordner xl/worksheets finden. Und was sehen Sie dort?

8625.2099999999991

???

Das heißt: nicht nur beim Rechnen und Herunterziehen hat Excel interne Rundungsfehler, sondern bereits bei der Eingabe. Und das schon bei „kleinen“ Zahlen.

Finden wir das komisch?

Alkohol löst keine Probleme, aber das tut Milch ja auch nicht …

Guten Tag Herr Martin,
vielen Dank für Ihre informative Seite, welche mir nun bereits schon einige Male helfen konnte. Dieses Mal wurde ich leider trotz intensiver Suche im gesamten Internet nicht fündigt. Es geht um folgendes Problem:
Eine Kollegin hat eine Excelmappe in der mehrere Zellen über Bedingte Formatierungen eingefärbt werden. Die werden jedoch beim drucken nicht übernommen. Schon der Druckvorschau (und auch beim drucken selber die Farben nciht verwendet, sondern alle Zellen mit weißen Hintergrund dargestellt bzw. gedruckt.

die bedingte Formatierung

die bedingte Formatierung

aber leider nicht sichtbar ...

aber leider nicht sichtbar …

Hallo Herr O.,

Mir ist folgendes aufgefallen:

Wenn ich von Ihrer Datei ein Tabellenblatt in eine neue Datei verschiebe (egal welches Blatt), habe ich dort den gleichen Effekt. Oder umgekehrt: Bedingte Formatierung „reagiert nicht“.

Ich habe die Datei im xlsx-Format gespeichert, entzippt und „reingeschaut“ und verglichen mit einer „normalen“ Excel-Datei.

Ich weiß nicht genau an welcher Stelle, aber bei der styles.xml (im Ordner xl) finde ich Unterschiede zur „normalen“ Datei.

Ich habe nun die gesamte Datei durch „meine“ styles.xml ersetzt, geöffnet – damit sind leider sämtliche Formatierungen weg, aber nun funktioniert die bedingte Formatierung wieder.

Das heißt: durch irgendein Speichern/Austausch/Öffnen, … wurde etwas in den Formaten „zerschossen“. Und zwar in den Formaten der Datei (nicht des Tabellenblattes). Ich weiß nicht wann, bei welcher Aktion und nicht genau was. Aber wenn Sie die Datei neu formatieren, können Sie mit Ihr arbeiten.

Wenn Sie einen Blick in meine Datei werfen, erhalten Sie eine Meldung, dass etwas nicht stimmt. Klar: ich habe ja die styles.xml ausgetauscht.

schöne Grüße

Rene Martin

PS: Wenn ich ganz viel Zeit habe, schaue ich mir Ihre Styles-Datei noch einmal genauer an – vielleicht kann ich die Stelle lokalisieren, wo der Fehler auftritt.

Ich kenne Zebras, die freiwillig hinter Gittern sitzen, um wie weiße Pferde auszusehen.

Verblüfft war ich schon. Ein Teilnehmer der letzten Excel-Schulung zeigte mit eine Datei, die er aus dem USA erhalten hat. Darin befanden sich mehrere Zellen mit bedingten Formatierungen:

20161120bedingteformatierung01

Ein Klick auf die „rote“ Bedingung (Zellwert<=0,81) zeigte allerdings die „grüne“ Bedingung (Zellwert = 1) an. Ich war verblüfft!

20161120bedingteformatierung02

Die Lösung fand ich als ich das Dokument entzippte und mit die Datei sheet1.xml im Ordner xl\worksheets anschaute. Dort war bei mehreren Bedingungen (nicht bei allen!) das Attribut priority auf den gleichen Wert gesetzt: mehrmals auf 4, auf 5, auf 6, … Natürlich müssen dort unterschiedliche Werte stehen. Per Hand geändert, die Dateien gezippt – und schon lief die bedingte Formatierung wieder.

Die XML-Datei

Die XML-Datei

Ich weiß zwar nicht, wann das Problem entstanden ist (USA – Deutschland) oder Excel 2007 – 2010, … aber immerhin – Problemursache gefunden und Problem gelöst.