18.01.2016
Daniel Kroiß
Autor: Daniel Kroiß

Im­port von Mi­cro­soft Ex­cel™ nach ACL™ für Win­dows

Con­tent

In diesem Blog beschreibe ich die Möglichkeit Microsoft® Excel-Daten in ACL™ zu importieren und gebe Tipps um Probleme die hierbei entstehen zu lösen. Diese Importfunktionalität benötigt man in der Praxis häufiger. Ein Beispiel aus unserem Alltag: Wir führen mittels ACL™ für unsere Kunden aus dem Bereich „Banking“ Portfolioanalysen im Kontext der Kreditfinanzierung durch. Hierzu werden von verschiedenen Stellen die Vertrags-, Zahlungs- und Währungsdaten im Dateiformat Microsoft Excel™ geliefert und müssen in ACL™ importiert werden, um sie mit anderen Daten abzugleichen. Eine solche Vorgehensweise ist häufig anzutreffen, da in vielen Abteilungen operativ Microsoft Excel™ benutzt wird, um strukturierte Daten zu speichern und zu verarbeiten und die technischen Aspekte für die Fachbereiche eher im Hintergrund stehen. Mein Beispiel beginnt, nachdem Sie ACL™ für Windows (früher ACL™ Analytics oder ACL™ Desktop genannt) gestartet haben und ein Projekt geöffnet oder neu erstellt wurde. Ich zeige Ihnen Schritt für Schritt, wie eine Excel Datei importiert werden kann.

1. Schritt

Wählen Sie in der Menüleiste den Eintrag „Daten“ und in dem öffnenden Klappmenü „Externe Daten“. Es stehen für den Import von Daten 2 Methoden (Datenträger und ODBC) zur Verfügung. Für unser Beispiel verwenden wir „Datenträger…“, dies impliziert, dass die Datei auf dem Rechner selbst, einem Netzlaufwerk oder einem externen Datenträger / USB-Speicher liegt. Durch Auswahl dieses Menüpunktes startet der „Datendefinitions-Assistent“. (Tipp: Eine ausführlichere Erklärung an dieser Stelle sprengt den Rahmen, aber ich möchte Sie auf folgendes hinweisen: Wenn Sie einmal Schwierigkeiten haben bei der automatischen Erkennung von Datentypen oder Feldlängen, versuchen Sie die Option ODBC (Open Database Connectivity – möglicherweise erzielen Sie je nach installiertem ODBC Treiber ein besseres Ergebnis).

Abbildung 1: Starten des Import Assistenten

2. Schritt

In dem nun erscheinenden Dialog wählen Sie die zu importierende Datei aus. Wir verwenden offizielle ACL™ Beispieldaten und wählen die Excel Datei „Trans_May.xls“ aus.

Abbildung 2: Dialog für Dateiauswahl

3. Schritt

Anhand der Dateiendung trifft ACL eine Vorauswahl bezüglich des passenden Dateiformates für den Import. Es kann aber jederzeit verändert werden, falls die vom Programm getroffene Annahme nicht richtig oder nicht die beste Wahl aus Ihrer Sicht sein sollte. (Anmerkung: Hier sieht man gut, wie universell der Datenimport in ACL™ aufgebaut ist – neben Excel™ Daten können auch Daten aus Textdateien, PDF-Dateien, XML-Files, CSV (Delimited) Daten oder Access-Datenbanken eingelesen werden. ACL™ ist eine Art „Schweizer Offiziersmesser“, wenn es um den Datenimport geht, und hat damit aus unserer Sicht einen Vorteil gegenüber manch anderen Datenanalysetools im Desktopbereich.)

Abbildung 3: Auswahl des Dateiformats

4. Schritt

Als nächstes wählen wir das entsprechende Arbeitsblatt innerhalb der Excel Datei aus (da jedes Blatt eine andere Struktur, sprich andere Spalten und Daten beinhalten kann, muss für jedes Tabellenblatt ein eigener Importvorgang gestartet werden).

Außerdem gibt es Optionen ob die erste Zeile die Feldnamen bzw. Spaltenbezeichnung enthält und auf welcher Grundlage die Typen und Längen der Felder bzw. Spalten ermittelt werden. Dies sind wichtige Optionen. Beinhalten Ihre Daten eine Überschrift je Spalte, so kann diese automatisch übernommen werden. Was aber bedeutet es, „Typ und Länge“ zu ermitteln?

Es ist wichtig zu verstehen, dass in ACL™ jede Spalte (auch „Feld“ genannt) einen konkreten Datentyp bekommt. Dieser gilt für die gesamte Spalte. Datentypen sind etwa „Text“, „Zahl“ oder „Datum“, und sind Basis für die Analysemöglichkeiten, die man später hat. So kann man mit Texten z.B. keine Rechenoperationen durchführen, oder in Zahlspalten Textanalysen durchführen. ACL™ entscheidet also beim Import, welchen Datentyp eine Spalte bekommen soll, und wie lang (bzw. breit) eine Spalte sein muss, damit der komplette Inhalt hineinpasst und nicht abgeschnitten wird. Letzteres basiert auf dem Umstand, dass ACL™ Dateien mit festen Datensatzlängen und Feldbreiten erstellt, die an bestimmten Positionen (Offset) beginnen. Dies ermöglicht die hohe Verarbeitungsgeschwindigkeit – ACL™ muss die Datei bei einer umfangreichen Analyse nicht „durchlesen“, sondern kann direkt zu der entsprechenden Position springen.

Um die Entscheidung bezüglich Datentyp und Feldbreite zu treffen, kann bei kleinen Dateien mit nur wenigen hundert Datensätzen als Grundlage das gesamte Excel-Arbeitsblatt gewählt werden. Damit werden die Typen bzw. Längen auch auf dem kompletten Daten ermittelt und es werden keine Daten abgeschnitten. Bei sehr großen Dateien kann dies jedoch zu sehr langen Verarbeitungszeiten führen, womit die Option „Erste 100 Datensätze“ als Grundlage schneller ist, aber es kann vorkommen das die Längen der Datenfelder falsch ermittelt werden, wenn sich nach den ersten 100 Datensätzen die Feldlängen erhöhen. Sprich, diese Option bietet sich nur dann an, wenn Sie genau wissen, dass die Tabelle sehr homogen ist und die Daten in den ersten 100 Zeilen repräsentativ für die vielleicht restlichen 500.000 Datensätze sind.

Abbildung 4:Auswahl des Excel-Arbeitsblatts

Im nächsten Dialog werden die ermittelten Typen und Längen für jede Spalte angezeigt. Wurde die oberste Zeile als Feldbezeichnung ausgewählt, wird diese als Name des Feldes übernommen. Keine Sorge, falls etwas nicht exakt ermittelt werden konnte – von ACL™ festgelegten Feldeigenschaften können in diesem Dialog nachträglich manuell angepasst werden, falls die automatische Erkennung fehlerhaft oder ungenau war.

In dem Textfeld „Wert“ bekommt man auch eine Vorschau auf die zu erwartenden Ergebnisse mit den eingestellten Eigenschaften. Speziell bei Datums- oder Betragsspalten kann dies bei der manuellen Anpassung hilfreich sein, da man sofort sieht wie die Daten interpretiert würden bei der aktuellen Formatsauswahl. Bleibt das Textfeld „Wert“ leer, obwohl das Feld Daten enthält, passt das gewählte Eingabeformat nicht mit den gelesen Daten überein und kann somit nicht richtig übernommen werden – es empfiehlt sich eine Anpassung.

Abbildung 5: Beispiele wie die Vorschau funktioniert

Ein häufig zu hinterfragender Punkt ist die Formatierung von Dezimalzahlen: Wie wird in der zu verarbeitenden Excel Datei deren Darstellung vorgenommen? Dementsprechend müssen in ACL™ ggf. die Trennzeichen angepasst werden. Im vorliegenden Beispiel werden Dezimalzahlen nach dem englischen Format definiert. Also „.“ als Dezimaltrennzeichen und „,“ für Tausendertrennzeichen.

In Abbildung 6 sehen Sie im linken Bild, was passiert wenn in ACL die Trennzeichen nach deutschen Format „,“ Dezimaltrennzeichen und „.“ Tausendertrennzeichen gesetzt wurden: Es kommt zu falsche interpretierten Werten.

Im rechten Bild ist es richtig. Hier wurden die Trennzeichen in den Optionen von ACL™ vor dem Import entsprechend dem Format in der Excel Datei gesetzt. Tipp: Denken Sie daran, schon VOR dem Import die Formatierung der Zahlen in Ihrer Quelldatei (hier: Microsoft Excel™) zu prüfen und bereits im Vorfeld die Einstellungen in den ACL™ Optionen anzupassen. Dies spart oft Zeit und Doppelarbeit im Rahmen des Importes!

Abbildung 6: Unterschiede bei Dezimalzahlen

Eine weitere Möglichkeit an dieser Stelle: Sie können mit der Option „Dieses Feld ignorieren“ Felder komplett vom Import ausschließen, falls die Daten nicht benötigt werden oder es sich um leere Spalten handelt. Tipp: Schließen Sie nur Daten aus, die Sie sicher nicht benötigen. Datensparsamkeit ist gut und wichtig, aber wenn Sie nach 3 Stunden Datenanalyse feststellen, dass die Spalte mit der Rechnungsnummer doch wichtig wäre für Ihre Analyse, müssen Sie den Importvorgang wiederholen. Einfacher ist es oft, Daten umfangreicher zu importieren und im Nachgang bei den Analysen Informationen auf das Nötigste zu beschränken – so lässt sich im Bedarfsfalle auch etwas nachziehen.

Für einmalige Importe ist die automatische Erkennung der Feldeigenschaften in Ordnung. Tipp: Für regelmäßige Importe empfiehlt es sich die Feldeigenschaften genau zu planen und auf die möglichen Maximalwerte manuell anzupassen. Dadurch vermeiden Sie Datenverluste in der Zukunft. Einfacher ist dies aber, wenn Sie die Importe im Rahmen eines ACL™ Skriptes durchführen, wie ich weiter unten erkläre.

In Abbildung 7 sehen Sie die Spalte „Description“ mit einer Länge von 60. Sollten künftig Beschreibungen mit mehr als 60 Zeichen eingelesen werden, wird alles darüber hinaus abgeschnitten. Es sollte deshalb ein ausreichend großer Maximalwert angegeben werden, damit keine Daten verloren gehen.

Abbildung 7: Übersicht der ermittelten Datentypen und -längen

5. Schritt

Am Ende des Assistenten legen Sie noch den Namen für die Datei fest, in der ACL™ die Daten speichert. Die Analyse wird also nicht direkt auf der Excel Tabelle durchgeführt, sondern die Daten werden ausgelesen und in einer separaten Datei mit der Endung .FIL gespeichert. Dies steht für FIxed Length und hat damit zu tun, dass wie oben ausgeführt in ACL™ importierte Daten eine feste Datensatzlänge haben.

Abbildung 8: Bezeichnung für die ACL-Datendatei festlegen

6. Schritt

Zur Kontrolle erhalten Sie nochmals eine Übersicht über die Import Einstellungen und die festgelegten Feldeigenschaften.

Abbildung 9: Zusammenfassung über den Datei-Import

7. Schritt

Abschließend vergeben Sie noch den Namen des ACL-Tabellen-Layouts (also des Icons im Projektnavigator). Mit diesem Namen können Sie die Tabelle in ACL nach dem Import aufrufen. Es ist möglich, die FIL-Datei (Schritt 5) abweichend von dem Tabellenlayout (Schritt 7) zu benennen. In der Praxis kann dies aber zur Verwirrung führen. Tipp: Benennen Sie Datendatei und Tabellenlayout gleich, bestenfalls noch so wie die Excel Datei benannt ist – so können Sie auch ohne technisches Verständnis nachvollziehen, welche Elemente zusammengehören.

Abbildung 10: Bezeichnung des Tabellen-Layouts für die Verwendung in ACL

8. Schritt Ex­kurs: Im­port­skrip­te er­stel­len

Nach dem der Import ausgeführt wurde, können Sie im ACL™ Log den Befehl einsehen, der durch den Assistenten im Rahmen des Imports ausgeführt wurde. Für regelmäßige Datenimporte lässt sich nun dieser Befehl in ein Script integrieren, um den Import automatisiert ablaufen zu lassen. Mit etwas Kenntnis der Befehlssyntax lässt sich der Befehl hier auch leicht anpassen, falls sich der Aufbau der Excel Datei ändern sollte, oder um wie oben beschrieben gewisse Feldlängen sicherzustellen. Es ist dann nicht mehr notwendig den Assistenten zu verwenden. Außerdem könnte der Befehl für ähnliche Dateien ebenfalls angepasst werden. Tipp: Wenn Ihre Excel Dateien gleich aufgebaut sind, und Sie fortgeschrittener ACL™ User sind, erleichtern Sie sich durch ein Importskript Ihr Datenanalystenleben beträchtlich.

Hier unser Beispiel in Form von ACL™ Skriptcode.

IMPORT EXCEL

TO CreditCard_May "C:\ACL Data\Sample Data Files\CreditCard_May.fil"

FROM "Trans_May.xls" TABLE "Trans1_May$"

KEEPTITLE

FIELD "CARDNUM" C WID 19 AS ""

FIELD "CODES" N WID 4 DEC 0 AS ""

FIELD "DATE" D WID 19 PIC "YYYY-MM-DD" AS ""

FIELD "CUSTNO" C WID 6 AS ""

FIELD "DESCRIPTION" C WID 60 AS ""

FIELD "AMOUNT" N WID 9 DEC 2 AS ""

 

Vorteil eines Importskriptes

  • Es gibt detaillierte Möglichkeiten der Spaltendefinition
  • Es ermöglicht eine explizite Typdefinition im Skript, die auch leicht anpassbar ist wenn man mit der Befehlssyntax vertraut ist

Nachteil

  • Es müssen alle Spalten des Excel-Arbeitsblatts behandelt bzw. die Verarbeitung definiert werden, auch leere Spalten. Dies kann speziell bei regelmäßig durchgeführten Datenimporten Schwierigkeiten erzeugen, wenn das Format des Excel-Arbeitsblatts nicht stabil bleibt. Es reicht wenn eine Spalte ein Leerzeichen enthält, wird eine Definition erwartet.

Fa­zit

ACL bietet mehrere Möglichkeiten Excel Dateien zu importieren. Dieser Weg über den Assistenten hier ist jedoch einer der flexibelsten. Er bietet einerseits komfortable Unterstützung für Anfänger und andererseits viele manuelle Einstellmöglichkeiten für Profis.

Tipp: Versuchen Sie die Excel Datei (soweit Sie Einfluss darauf nehmen können) so einfach und geradlinig wie möglich zu gestalten; verzichten Sie auf Formatierungen oder mehrzeilige Überschriften bzw. Kategorienüberschriften, da dies die Spaltenerkennung erschwert. Sollte dies doch der Fall sein, dann macht es im Gegenzug Sinn vor dem Import die Excel Datei manuell zu restrukturieren. Grundsätzlich gilt: Je klarer die Excel Datei strukturiert ist, und je „robuster“ sie ist (Anzahl und Reihenfolge der Spalten, Inhalt), desto einfacher lässt sich die Datei i.d.R. importieren oder der Datenimport über ein Skript gestalten.

Link „ACL Richtlinien Excel-Import“

 

Für Fragen oder Kommentare können Sie sich gerne unter info@dab-gmbh.de an uns wenden.


Kommentare (0)
Sei der erste, der diesen Blog-Beitrag kommentiert.
Blog Anmeldung

Sie sind nicht angemeldet. Bitte melden Sie sich an um diesen Blogbeitrag zu kommentieren.

anmelden