Excel-Listen neu sortiert

Neulich rief Tim Gouder (vom InDesign-Blog) mal wieder bei mir an. Er hatte da ein Problem mit einer Liste…

Die Ausgangslage

Tim hatte eine Liste, die Kontaktdaten enthielt. Allerdings standen alle Werte nicht etwa schön als Datensätze zeilen- oder spaltenweise sortiert darin, sondern alle Werte untereinander in SpalteA. Zusätzlich war natürlich noch eine Leerzeile zwischen zwei „Datensätzen“ eingefügt. Damit es gut lesbar ist ;-) Wie sollte es aussehen? Naja, so wie man das halt braucht, alle Datensätze zeilenweise untereinander und die Einzelwerte jeweils in eigenen Spalten.

INDIREKT – Die Ausgangslage

Mein Ansatz/Lösung

Zur Lösung komme ich mit der Funktion INDIREKT(Bezug;A1)

Was macht diese Funktion?

Statt einem direkten Bezug (bspw. =B1), kann ich mit INDIREKT den Bezug „zusammenbauen“. Dabei kann ich zum einen Text übergeben aber auch Zellbezüge. Und natürlich auch gemischt. Also bspw. „C“&B1. Wer das nicht versteht: Als Ergebnis würde die Funktion jetzt ein C und den Wert der in der Zelle B1 steht ausgeben. Wenn da „6“ drinsteht, dann wäre der Bezug: B6. Sprich, in meiner Zelle, in der die Funktion INDIREKT drin ist, steht den dann der Wert der in Zelle B6 drin steht.

In D6 steht die Formel =INDIREKT("A"&B1;1)

Der zweite Parameter von INDIREKT ist weniger wichtig. Kleiner Exkurs: Es gibt in Excel zwei Arten von Bezügen. Sogenannte Z1S1-Bezüge und A1 Bezüge. In den allermeisten(!) Fällen finden die A1-Bezüge Verwendung. Und mit dem zweiten Parameter gibt man eigentlich nur an, welche Art man haben möchte. 0(auch „falsch“) für Z1S1-Bezüge und 1 (auch „richtig“) für A1-Bezüge. In unserem Fall also 1. Deshalb steht in D4: =INDIREKT(„A“&B1;1) Damit kommt als Ergebnis raus: „Müller„.

Und was muss Tim jetzt machen?

Zunächst braucht er eine Hilfsspalte. Das steht dann die Zeilennummer drin, aus der er sich den jeweiligen Wert holt. Kleines Problem dabei: Die Reihenfolge ist nicht 1,2,3,.. sondern: 1,9,17,25,33,… Warum? Na weil der erste „Datensatz“ in Zeile 1, der zweite in Zeile 9, der dritte in Zeile 17, usw. beginnt. Aber das bekommt Tim schon hin. Nun trägt er nur noch die Formel ein. Im Screenshot sieht man; in F2 steht =INDIREKT(„A“&D2;1)

INDIREKT - Lösung, Teil 1

Okay, und die restlichen Spalten?

Es gibt noch einen Trick. Man kann in der Funktion INDIREKT auch rechnen. Wenn man also sowas eingibt =INDIREKT(„A“&D1+1;1), dann zeigt der eigentliche Bezug auf A2. Weil: 1 + 1 = 2 ;-) Das machen wir jetzt einfach einmal komplett für alle Spalten (bei Name ist das dann eben +2, bei Firma +3 usw.). Ziehen das wieder runter, fertig.

Bildschirmfoto 2015-10-01 um 14.43.30

Das Ganze hat dem Tim viel Zeit erspart und wir konnten noch eine Runde quatschen. :-)