Wir haben unser Frühbucherangebot für die Inspire 2023 verlängert! Die Sonderpreise gelten bis zum 24. Februar - sichern Sie sich Ihren Platz!

Free Trial

Blog - Deutsch

Erkenntnisse und Ideen von den besten Analytics-Experten.
RolandSchubert
16 - Nebula
16 - Nebula

Vermutlich bin ich nicht der einzige Alteryx-Anwender, der häufig Daten aus Excel-Dateien verarbeitet oder Excel-Tabellen nutzt, um die Ergebnisse eines Workflows weiterzugeben. In beiden Fällen sind gelegenlich Einschränkungen auf Bereiche notwendig - auf der einen Seite vielleicht, um nur bestimmte Daten zu importieren, auf der anderen möglicherweise, um gezielt entsprechend formatierte Zellen zu füllen.

 

 

Bereiche lesen

 

Bei der folgenden Excel-Tabelle könnte es sich anbieten, nur die Zellen A1:M6 zu lesen - Summenzeile und Summenspalte werden im Workflow nicht gebraucht. Natürlich wäre es auch möglich, einfach alle Daten zu lesen und dann die "überflüssigen" Werte herauszufiltern, aber auf diesen Schritt kann man verzichten, wenn von vornherein nur der korrekte Bereich gelesen wird. 

 

P01.png

 

Wir verwenden ein Input Data Tool und wählen zunächst wie gewohnt die entsprechende Excel-Datei aus:

P02.png   

 

Im zweiten Schritt der Konfiguration kann zusätzlich zum Tabellenblatt noch die "Select a range" Option gewählt werden - dann ist es möglich, gezielt den gewünschten Bereich auszuwählten:

P03.png 

 

In diesem Beispiel haben wir den vorhin genannten Bereich angegeben und erhalten nur die entsprechenden Zellen:

P04.png 

 

Es ist aber auch möglich, komplette Zeilen oder Spalten auszuwählen:

P05.png

 

Wichtig - auch wenn nur eine Zeile oder eine Spalte gewünscht ist, müssen immer beide Auswahlfelder (also von-bis) gefüllt werden!

 

Deutlich flexibler als die Variante, Bereiche über ihre "Eckpunkte" zu adressieren, ist die Verwendung benannter Bereiche - hier habe ich zum Beispiel den gerade markierten Bereich einfach "Daten" genannt:

P06.png

 

Auch über diese Benennung kann man Bereiche aus Alteryx ansprechen. Wenn eine Excel-Datei benannte Bereiche enthält (und auch nur dann!!) kann man in der Konfiguration des Input Data Tools die entsprechende Option auswählen:

P07.png 

 

In einer Drop Down Liste werden dann die in der Excel-Datei angelegten Bereiche angeboten - wir müssen dann nur den Bereich auswählen, den wir importieren wollen. 

 

Das Ergebnis unterscheidet sich natürlich nicht von der Auswahl über die entsprechenden Zellen!

 

P08.png 

 

Eine Option im Input Data Tool steht allerdings nicht zur Verfügung, wenn man einen Bereich verwendet (benannt oder über Zellen definiert). Die "Startzeile", ab der eingelesen werden soll, muss immer "1" sein -  es macht keinen Sinn, einen Bereich anzugeben, der dann erst aber Zeile 2 gelesen werden soll; in diesem Fall sollte einfach der Bereich anders gewählt werden.

 

P09.png 

 

 

Bereiche lesen mit dem Dynamic Input Tool

 

Auch in Verbindung mit dem Dynamic Input Tool können Bereiche verwendet werden, um beispielsweise aus mehreren Excel-Dateien jeweils den gleichen (gleich benannten) Bereich zu lesen. In diesem Fall muss einfach der Name des Bereiches an den Dateinamen angehängt werden; als Trenner wird dabei "|||" verwendet. 

 

P10.png

 

Wenn der Bereich nicht durch den Namen, sondern die entsprechenden Zellen identifiziert wird, muss der Name etwas anders aufgebaut werden; "|||" trennt den Dateinamen vom Namen der Tabelle, "$" den Tabellennamen von der Bereichsangabe.

 

P11.png

 

 

Bereiche schreiben

 

Und natürlich kann man auch gezielt auf Bereiche in einer Excel-Tabelle schreiben. Warum sollte man so etwas tun? Nun, ich habe beispielsweise einige Berichte auf eine "Alteryx-Datenversorgung" umgestellt , d.h. die Daten werden von Alteryx geliefert, aufbereitet und berechnet, aber der Bericht bleibt unverändert - oft ist es den Berichtsempfängern ja wichtig, dass sich bewährte Formate nicht ändern. Da aber Excel-Berichte so sind, wie sie nun mal sind, muss gezielt in die vorgesehenen Bereiche geschrieben werden. Und das geht mit dem Output Data Tool problemlos, wenn man Bereiche verwendet.

 

Der Bericht könnte etwa so aussehen (okay, ist jetzt nicht besonders schön ...):

 

P12.png

 

Wir wollen die Ergebnisse des Workflows in unserem Beispiel genau in den Bereich B5:N9 schreiben, den Rest (Summenberechnung, bedingte Formatierung) erledigt Excel. Dazu wählen wir im Output Data Tool zunächst die entsprechende Excel-Datei, die den formatierten Ausgabebereich enthält.

 

P15.png

 

Etwas irritieren könnte jetzt die Frage, ob die Datei überschrieben werden soll - genau das wollen wir doch eigentlich nicht. Aber keine Sorge, hier können wir einfach bestätigen, das gewünschte Verhalten lässt sich in der Konfiguration noch wie gewünscht anpassen. 

 

P16.png

Nun müssen wir das Tabellenblatt und den Bereich angeben, in den geschrieben werden soll - im Standard würde ja die vorhandene Datei überschrieben und ein neues Blatt erzeugt.  

 

P17.png

 

Entsprechend korrigiert sieht das dann so aus:

 

P18.png

 

Als "Ziel" ist im Output Data Tool jetzt richtig die Datei, das Blatt und der Bereich eingetragen - aber noch steht da "Create New Sheet", dass muss noch angepasst werden. Hier wählen wir die Output Option "Overwrite Sheet or Range", damit bleibt das Blatt erhalten, nur der Inhalt des entsprechenden Bereiches wird überschrieben.

 

P19.png

 

So ganz funktioniert es aber noch nicht, stattdessen erscheint eine Fehlermeldung:

 

P20.png

 

Die Daten aus unserem Workflow passen schlichtweg nicht in den definierten Bereich - seltsam, eigentlich sind es doch 6 Datensätze, die geschrieben werden sollen, dazu passen die Zeilen im Bereich. Dabei haben wir allerdings die Feldnamen nicht mitgezählt, die standardmäßig auch geschrieben werden - dann sind es 7 Zeilen, das ist eine zuviel!

 

P21.png   

Dieses Problem lässt sich leicht lösen, indem wir "Skip Field Names" wählen - jetzt werden nur noch die Daten geschrieben. Bei der Gelegenheit können wir auch gleich "Preserve Formatting" aktivieren, damit bleibt dann auch die Formatierung erhalten, die sonst verloren gehen würde!

 

Alternativ können wir auch hier statt Tabellenblatt + Bereich auch einen Bereichsnamen einsetzen, leider nur, indem wir die "Adresse" in der Konfiguration überschreiben, also nicht über eine Auswahlliste wie im Input Data Tool.  

 

P22.png

 

Kleine Einschränkung: Die Formatierung bleibt (zumindest in Version 2021.4) bei dieser Variante nur teilweise erhalten - also zur Sicherheit vielleicht besser die Adressierung über Zellen verwenden.

 

 

Was aber, wenn aus einem Workflow mehrere Bereiche in einer Excel-Datei zu füllen sind? Das muss natürlich nacheinander passieren (jeder einzelne Schreibvorgang sperrt die Excel-Datei) - hier müsste dann ein Block Until Done Tool zum Einsatz kommen - wie das gehtm habe ich in Tuesday Tipp #024 beschrieben. 

 

 

 

 

 

Weitere Tipps Tuesday Beiträge

Dieser Eintrag ist Teil der Tipps Tuesday-Serie, alle Einträge dieser Serie findest du in unserem Index aufgelistet.

Beschriftungen