Office - Word, Excel und Co. 9.744 Themen, 41.408 Beiträge

Tipp: Office - Word, Excel und Co.

Excel/Calc: Spalten- oder Zeilenfolge spiegeln mit WVERWEIS + SVERWEIS

Olaf19 / 19 Antworten / Baumansicht Nickles

Prosit Neujahr, alle zusammen!

Ich weiß nicht, ob der eine oder andere von euch schon einmal den Wunsch gehabt hat, komplette Zeilen oder Spalten einer Tabelle in Excel / OO-/LO-Calc in spiegelverkehrter Reihenfolge umzukopieren, also: aus A-H wird H-A oder aus 1-8 wird 8-1. Falls dieser Tipp also überflüssig oder gar doof ist, bitte einfach weiterlesen ;-)

Bei kleinen Tabellen macht man so etwas notfalls in Handarbeit, aber können ja auch einmal > 16k Spalten oder 1 Mio. Zeilen sein, und die Formelfunktionen hat man mitbezahlt (zumindest, wenn man eine Microsoft Excel-Lizenz nutzt).

Gegeben sei folgende Tabelle:

qwe asd yxc rtz fgh vbn
123 234 345 456 567 678
qay wsx edc rfv tgb zhn
!“§ „§$ §$% $%& %&/ &/(

Benutzt werden die Funktionen:

  • WVERWEIS (Waagerecht-Verweis = Suchfunktion, die zeilenweise arbeitet)
    => für das spiegelverkehrte Umkopieren von Spalten,
  • SVERWEIS (Senkrecht-Verweis = Suchfunktion, die spaltenweise arbeitet)
    => für das spiegelverkehrte Umkopieren von Zeilen.

Während der SVERWEIS für die meisten Anwender sicherlich zum täglich Brot gehört, ist der WVERWEIS vergleichsweise ungebräuchlich, wenn er auch analog zum SVERWEIS funktioniert. Deswegen möchte ich den WVERWEIS ausführlich behandeln:

  • Wir fügen in A eine neue Spalte ein und versehen Zeile 8 – 11 mit der Beschriftung 2, 3, 4, 5;
  • wir fügen ganz oben eine Zeile ein, um die Tabellenspalten horizontal mit den Ziffern 1 – 6 zu beschriften; hier kann ab C1 eine simple Formel benutzt (=B1+1) und horizontal kopiert werden,
  • Wir fügen unterhalb der Tabelle, in Zeile 7, eine ähnliche Beschriftung ein, diesmal aber absteigend von 6 – 1; von C7 an kann wieder eine Formel benutzt (=B7-1) und horizontal kopiert werden.

Nach dem Einfügen aller Beschriftungen und der Anwendung des WVERWEISes ab Zelle B8 sieht das Ergebnis so aus:

Der WVERWEIS in Zelle B8 lautet: =WVERWEIS(B7;B1:G5;A8;) und bewirkt folgendes:

  • Er liest zunächst das Suchkriterium aus B7, hier die Zahl 6,
  • sucht danach in der ersten Zeile der Matrix zwischen B1 und G5,
  • wird dabei in G1 fündig und gibt somit einen Wert aus Spalte G aus.
  • Welcher Wert das ist, bestimmt der letzte Parameter, der Index – da die Tabelle 5 Zeilen hat, muss hier ein Wert von 1 bis 5 stehen.
  • Das Semikolon vor der letzten Klammer ist wichtig – wer ganz sicher gehen will, kann dahinter noch den Wert FALSE setzen. Beim Wert TRUE, oder wenn man den letzten Parameter ganz wegließe, würde Excel nur nach einer "ungefähren" Übereinstimmung, nicht aber nach einem exakten Wert suchen, was in diesem Fall aber gewünscht ist.

Der Index steht in Zelle A8 mit Wert 2, somit findet der WVERWEIS den 2. Wert aus Spalte G, also: "vbn".

Bevor wir den WVERWEIS einmal kreuz und quer durch die Zieltabelle kopieren, müssen wir noch ein paar "Vorhängeschlösser" ("$"-Zeichen) setzen, damit Zeilen oder Spalten nicht ungewollt beim Kopieren mitverschoben werden: =WVERWEIS(B$7;$B$1:$G$5;$A8;), denn:

  • das Suchkriterium 6,...,1 steht immer in Zeile 7, deswegen: B$7;
  • die Matrix soll sich nie verändern, daher müssen hier alle 4 Vorhängeschlösser angebracht werden;
  • der Index, also Zeilennummer 2, 3, 4, 5 steht immer in Spalte A, also: $A8.

Nach dem horizontalen und vertikalen Kopieren von Zelle B8 zieht die Tabelle wie auf den Screenshots aus. Nebenbei könnte man nun sogar noch die Reihenfolge der Zeilen durch eine Veränderung der Werte 2, 3, 4, 5 manipulieren, z.B. durch 5, 4, 3, 2 einfach spiegeln.

Sollen anstelle der Spalten die Zeilen gespiegelt werden, so wäre der SVERWEIS das Mittel der Wahl, den ich einmal als bekannt voraussetze. Nur so viel: er funktioniert im Prinzip genau so, nur dass er Spalten anstelle von Zeilen durchsucht. Suchkriterium und Index, also 1. und 3. Parameter, bedeuten somit eine Spalten- statt einer Zeilennummer.

Erstreckt sich also eine Matrix von E1 bis J5, dann stehen die Indizes 1, 2, 3, 4, 5, 6 für die Spalten E, F, G, H, I, J.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „Excel/Calc: Spalten- oder Zeilenfolge spiegeln mit WVERWEIS + SVERWEIS“
Optionen

Nabend Olaf,

erst mal ein frohes neues Jahr.

Ich denke man könnte das ganze auch noch einfacher lösen durch direktes berechnen der Zellbezüge. Ich weiß allerdings leider spontan nicht wie die betreffende Funktion dazu heißt. Nur, dass es da was entsprechendes gibt.

Für die Zeilenweise Umkehr könnte man stattdessen auch einfach die Sortierfunktion nutzen (mit Temporärer Spalte für die Reihenfolge). In Kombination mit Transponieren geht es auch Spaltenweise (falls Excel nicht von Haus aus Spaltenweise sortieren kann; LO Calc kann es).

Gruß
bor

bei Antwort benachrichtigen
Olaf19 Borlander „Nabend Olaf, erst mal ein frohes neues Jahr. Ich denke man könnte das ganze auch noch einfacher lösen durch direktes ...“
Optionen

Nabend Borl, auch für dich ein frohes 2016!

Und du hast recht. Es gibt in Excel eine indirekte Adressierung, der Befehl heißt INDIREKT(...): http://www.computerwissen.de/office/excel/artikel/zellbezug-per-formel-berechnen.html – wenn ich also in Zelle E1 – E462 die natürlichen Zahlen von 1 bis 462 hinterlege (fantasieloses Beispiel zwar, ging aber am schnellsten), in Zelle F1 – F462 die Zellnamen e462 bis e1 und schließlich in G1 ff. die INDIREKTs, dann komme ich schneller ans Ziel als mit meinem Formel- und Beschriftungsauflauf:

Weniger günstig ist das Sortieren. Wenn im zu sortierenden Bereich Formeln hinterlegt sind, geht alles in die Grütze... das passiert bei INDIREKT nicht, der Befehl liest einfach stur die Werte aus.

THX!
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
mawe2 Olaf19 „Excel/Calc: Spalten- oder Zeilenfolge spiegeln mit WVERWEIS + SVERWEIS“
Optionen
in spiegelverkehrter Reihenfolge umzukopieren

Man könnte auch nach dem Kopieren die Werte transponiert einfügen, danach mit der Excel-internen Sortierung absteigend sortieren und dann erneut kopieren und wieder die Werte transponiert einfügen.

Grußm mawe2

bei Antwort benachrichtigen
Olaf19 mawe2 „Man könnte auch nach dem Kopieren die Werte transponiert einfügen, danach mit der Excel-internen Sortierung absteigend ...“
Optionen

Prosit Neujahr, mawe!

Sortieren hilft aber nur dann weiter, wenn die Werte "streng monoton" steigen oder fallen. Wenn du aber große und kleine Werte durcheinander hast, führt Sortieren nicht mehr zu einer Spiegelung, sondern nur zu einer Neuordnung.

Also aus 314592687 wird durch Umsortieren mitnichten ein 786295413, sondern entweder ein 123456789 oder 987654321 ;-)

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
Borlander Olaf19 „Prosit Neujahr, mawe! Sortieren hilft aber nur dann weiter, wenn die Werte streng monoton steigen oder fallen. Wenn du aber ...“
Optionen

Deshalb hatte ich oben auch ergänzend eine temporäre Hilfsspalte als Sortierschlüssel vorgeschlagen ;-)

bei Antwort benachrichtigen
Olaf19 Borlander „Deshalb hatte ich oben auch ergänzend eine temporäre Hilfsspalte als Sortierschlüssel vorgeschlagen -“
Optionen

Stimmt, die hatte ich jetzt ausgeblendet. Wenn man mawes Ausführungen um eine Hilfsspalte ergänzt, dann passt es wieder.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
mawe2 Olaf19 „Prosit Neujahr, mawe! Sortieren hilft aber nur dann weiter, wenn die Werte streng monoton steigen oder fallen. Wenn du aber ...“
Optionen
Wenn du aber große und kleine Werte durcheinander hast, führt Sortieren nicht mehr zu einer Spiegelung, sondern nur zu einer Neuordnung.

Du hast doch oben drüber die "Nummern", nach denen würde ich natürlich sortieren. Eine Hilfszeile (oder -spalte) zum Sortieren muss also vorhanden sein.

Gruß, mawe2

bei Antwort benachrichtigen
gelöscht_152402 Olaf19 „Excel/Calc: Spalten- oder Zeilenfolge spiegeln mit WVERWEIS + SVERWEIS“
Optionen

Warum kann man hier nicht einfach die Pivot-Funktion nehmen? Die ist doch genau dafür da?!

bei Antwort benachrichtigen
mawe2 gelöscht_152402 „Warum kann man hier nicht einfach die Pivot-Funktion nehmen? Die ist doch genau dafür da?!“
Optionen
Warum kann man hier nicht einfach die Pivot-Funktion nehmen? Die ist doch genau dafür da?!

Wirklich?

Die Pivot-Tabellen sind doch eher für die Auswertung (Zusammenfassung) umfangreicher Datenbankinhalte vorgesehen. Wie willst Du denn damit 1 Mio Werte in umgekehrter Reihenfolge abbilden?

Gruß, mawe2

bei Antwort benachrichtigen
gelöscht_152402 mawe2 „Wirklich? Die Pivot-Tabellen sind doch eher für die Auswertung Zusammenfassung umfangreicher Datenbankinhalte vorgesehen. ...“
Optionen

Zumindest kann man damit Spalten und Zeilen gegeneinander tauschen, ob das jetzt auch noch gespiegelt geht, weiß ich nicht.

https://de.wikipedia.org/wiki/Pivot-Tabelle

bei Antwort benachrichtigen
mawe2 gelöscht_152402 „Zumindest kann man damit Spalten und Zeilen gegeneinander tauschen, ob das jetzt auch noch gespiegelt geht, weiß ich ...“
Optionen
Zumindest kann man damit Spalten und Zeilen gegeneinander tauschen

Darum ging es aber nicht.

Und bei (z.B.) 1 Mio Zeilen klappt das auch nicht.

bei Antwort benachrichtigen
gelöscht_323936 mawe2 „Darum ging es aber nicht. Und bei z.B. 1 Mio Zeilen klappt das auch nicht.“
Optionen
1 Mio Zeilen

Schon mal, weil es arg wenig Spalten in EXCEL gibt. Mein letzter Versuch war bei

Ich weiß jetzt nicht, wieviel das in OO Calc und Libre Office sind.

Worksheet size 1,048,576 rows by 16,384 columns

Bei EXCEL bin ich oft genug an "nur" 16'384 gescheitert. (bei 300.000 bis 500.000 Zeilen)
Vielleicht sind es inzwischen mehr, aber eine Million...?

Anne

bei Antwort benachrichtigen
mawe2 gelöscht_323936 „Schon mal, weil es arg wenig Spalten in EXCEL gibt. Mein letzter Versuch war bei Ich weiß jetzt nicht, wieviel das in OO ...“
Optionen
Schon mal, weil es arg wenig Spalten in EXCEL gibt.

16.000 Spalten findest Du "arg wenig"?? Wofür braucht man denn mehr als diese 16.000 Spalten??

Ich war es viele Jahre lang gewohnt, mit 256 Spalten auszukommen. Da waren dann 16.000 schon arg viel...

Die Million Zeilen habe ich nur erwähnt, weil der Threadstarter sie ebenfalls erwähnt hatte.

I.d.R. verarbeite ich derartige Datenmengen nicht mehr mit Kalkulationstabellen sondern ausschließlich mit Datenbanken.

Gruß, mawe2

bei Antwort benachrichtigen
gelöscht_323936 mawe2 „16.000 Spalten findest Du arg wenig ?? Wofür braucht man denn mehr als diese 16.000 Spalten?? Ich war es viele Jahre lang ...“
Optionen

Das "arg wenig" bezog sich auf das Vertauschen von Zeilen und Spalten, war also mehr ein Witz.
Aber Zeilen- und Spaltenzahl sind in EXCEL schon sehr unterschiedlich viel. Es hat mich z.B. wegen Filtern und Sortieren manchmal geärgert, dass man nicht einfach transponieren konnte.

Ich habe für spezielle Sachen zum Teil mit riesigen Tabellen gearbeitet, die ja erst mal so eingelesen werden mussten wie sie kamen. Das ging auch erst unter EXCEL 2010.
Bis 2012 hatte ich nur Office 2000, recht unbequem in manchen Tools. (zu Hause wenigstens XP)
Und ACCESS gab es da nicht.

Jetzt habe ich  ACCESS auch nur noch unter XP (offline natürlich).
Aber da die Leute, für die ich noch was mache, allenfalls einfache Tabellen brauchen, reicht Open/Libre Office Calc. . 

  MySQL usw sind dann nur noch ggf. mein privates Hobby.

Mit Gruß
Anne

bei Antwort benachrichtigen
neanderix gelöscht_323936 „Schon mal, weil es arg wenig Spalten in EXCEL gibt. Mein letzter Versuch war bei Ich weiß jetzt nicht, wieviel das in OO ...“
Optionen

Wenn du wirklich >16000 Spalten brauchst, solltest du *dringend* deinen Tabellenaufbau überdenken.

Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
mawe2 neanderix „Wenn du wirklich 16000 Spalten brauchst, solltest du dringend deinen Tabellenaufbau überdenken.“
Optionen

Das haben wir doch schon geklärt, dass Anne nur einen Witz gemacht hatte.

bei Antwort benachrichtigen
Olaf19 neanderix „Wenn du wirklich 16000 Spalten brauchst, solltest du dringend deinen Tabellenaufbau überdenken.“
Optionen
Wenn du wirklich >16000 Spalten brauchst, solltest du *dringend* deinen Tabellenaufbau überdenken.

Meine Primzahlensammelwut in Excel kommt selbst mit 16.000 Spalten nicht aus ;-)

http://www.nickles.de/forum/office-word-excel-und-co/2015/ressourcenverbrauch-in-excel-und-oocalc-optimieren-539115249.html

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen
gelöscht_323936 neanderix „Wenn du wirklich 16000 Spalten brauchst, solltest du dringend deinen Tabellenaufbau überdenken.“
Optionen
wirklich >16000 Spalten brauchst

Ach, das wäre nur ein Traum gewesen. Nämlich die Daten, die etwa  bis 500 Tausend Zeilen hatten (aus Textformat), hätte ich dann sortieren können bzw. filtern.
Und es war eine einmalige spezielle Aufgabe.

So musste ich dann meine Kenntnisse aufpolieren und suchen und berechnen usw.

Das ist inzwischen Geschichte, wenn auch grade ein bis zwei Jahre her.

Aber danke für den Tipp.

Anne

bei Antwort benachrichtigen
Olaf19 gelöscht_152402 „Zumindest kann man damit Spalten und Zeilen gegeneinander tauschen, ob das jetzt auch noch gespiegelt geht, weiß ich ...“
Optionen
Zumindest kann man damit [Pivot] Spalten und Zeilen gegeneinander tauschen

Das geht aber auch mit der Funktion Transponieren. Mir ging es aber um eine horizontale und / oder vertikale Spiegelung.

CU
Olaf

Die Welt ist ein Jammertal ohne Musik. Doch zum Glueck gab es Bach, Beethoven, Haendel und Goethe (Helge Schneider)
bei Antwort benachrichtigen