Hallo,
ich möchte gerne die Inhalte aus einer Zeile in einer vorhandenen Tabelle auslesen lassen und dann vertikal untereinander in eine Spalte einfügen.
Das heißt also, dass alle Werte, die in Zeile A6:Z6 stehen in der neuen Tabelle von A1:A26 stehen sollen.
Noch toller wäre, wenn ich nicht alle Werte automatisch übernehme, sondern nur bestimmte Kürzel. Also dass in der neuen Tabelle nur die aussortierten Kürzel chronologisch der Reihenfolge von A6:Z6 nun untereinander aufgelistet stehen.
Puh… hoffe, ich hab mich verständlich ausgedrückt, ansonsten gerne nochmal fragen!
Vielen Dank schon mal!
Drousi
Hallo Drousi
da ich mich für Excel nur als Interessierter eingetragen habe (im besten Fall Anfänger) wirst Du verstehen, dass ich Dir nicht weiterhelfen kann. Das ist eine Nummer zu gross für mich.
Liebe Grüsse
PAUL
Hallo drousilla,
was Du suchst, nennt man Transponieren. Dafür hat Excel eine Funktion MTRANS. Einfach in der 2. Tabelle die Zellen A1 bis A26 auswählen und folgende Formel eingeben: =MTRANS(Tabelle1!A6:Z6). Wichtig: Es handelt sich um eine Arrayformel, also ctrl-shift-return drücken.
Das mit den Kürzeln verstehe ich nicht. Wenn Du noch weiter filtern willst, musst Du evtl. den Umweg über eine 3. Tabelle gehen, in der Du die Werte der 2. Tabelle verarbeitest.
VG, Mertel
Sieh mal unter SVerweis nach.
Ansonsten habe ich nur wenig von dem verstanden, was Du geschrieben hast.
Gruß
Vincenz
Da fällt mir auch nichts ein.
Guten Morgen
versuche es doch mit transponieren. In der neuen Tabelle A1 bis A26 markieren. Formel =MTRANS(Tabelle1!A6:Z6)eingeben und (wichtig!) mit ctrl-shift-enter abschliessen da es sich um eine Arrayformel handelt. Die Formel steht dann in geschweiften Klammern.
Die Frage mit den Kürzeln verstehe ich nicht.
Grüsse
Xaver
Ja, den kenne ich auch und damit hab ichs nun auch gemacht. Ist zwar nicht ganz so automatisch, wie ich es eigentlich gern hätte, aber läuft 
Beim Transponieren ist nur das Problem, dass auch die Leeren Zellen übernommen werden.
Hallo drousilla,
das ist dann wohl ein Fall für Visual Basic. Da kann ich leider nicht weiterhelfen.
VG, Mertel
Zeilen und Spalten vertauschen geht über kopieren, Inhalte einfügen, transponieren.
Der Rest müsste in VBA geschrieben werden.
Moin
Das ist relativ einfach.
(Leider hast du nicht angegeben, welche Excel-Version du nutzt, daher hier eine etwas allgemeine Beschreibung)
Man markiere den gewünschten Bereich und kopiere ihn.
Dann an die Stelle hüpfen, wo die neue Tabelle hin soll.
Dann nicht den Befehl Einfügen sondern Inhalte einfügen wählen. (zur Not mit der rechten Maustaste)
Je nach Version erscheint ein Kontextmenü, mit dem Befehl transponieren oder ein entsprechendes Symbol…
Wenn du beim Auswählen der gewünschten Werte mittels gedrückter strg-Taste nur die Werte anklickst, die du auch haben willst, werden auch nur diese transponiert.
Grüsse aus Bremen/Berlin
Matthias
Hallo, weiss nicht ob es noch von Nöten ist. Ich hab heute morgen erst gecheckt, dass du mich was gefragt hast. Habe schnell was programmiert. Vielleicht hilft es dir. Standardmäßig ist mir nichts bekannt in Excel, um Daten von waagrechter Anordnung auf Senkrechte umzustellen. Das Sortieren in der neuen „Vertikal“-Tabelle geht relativ einfach von Hand mit den Standardwerkzeugen von Excel. Das mit den Kürzeln hab ich nicht verstanden. Da müsste ich mehr Informationen haben, vielleicht ein Beispiel.
Gruß Acki
Hier das Makro. Wenn du dich auskennst, ok.
sonst schick mir mal eine email-adresse. Ich hab ne kleine Doku in der Excel-Datei vorbereitet. Kann hier leider nix hochladen…
Meine eMail: [email protected]
'------------------------------------------------------
’ H I E R M A K R O S T A R T
'------------------------------------------------------
’
’ D E C L A R A T I O N S
’
’ -----------------------------------------------------------------------------------
’ V a r i a b l e n - N a m e n
’ -----------------------------------------------------------------------------------
’
’ ’ Name der Tabelle aus der gelesen wird
’ ’ ---------------------------------------------------
Const read_table = „hier wird gelesen“
’
Const zeile = 2 ’ in welcher Zeile soll gelesen werden
Const ABspalte = 1 ’ Spalte ab der in der Zeile gelesen wird
Const BISspalte = 0 ’ Spalte bis zu der in der Zeile gelesen wird
’ ’ ( Ist die Variable „BISspalte“ größer als „0“ ,
’ ’ dann werden nur Werte bis zu dieser Spalten-Nr.
’ ’ berücksichtigt. Beim Wert „0“ wird von
’ ’ „ABspalte“ nach rechts jede Spalte gelesen,
’ ’ bis in der Lesezeile die erste leere Zelle
’ ’ gefunden wird ).
’
’
’ ’ Name der Tabelle in die geschreiben wird
’ ’ ---------------------------------------------------
Const write_table = „Hier wird geschrieben“
’
Const spalte = 4 ’ in welche Spalte soll geschrieben werden
Const ABzeile = 2 ’ Zeile ab der in die Spalte geschrieben wird
’
’ -----------------------------------------------------------------------------------
’ -----------------------------------------------------------------------------------
’ M a c r o
’ -----------------------------------------------------------------------------------
’
Sub ReadZeWriteSp()
’
’ erstellt von : Dipl.-Ing. Klaus Ulrich Ackermann
’ erstellt am : 22.05.2012
’
’ Beschreibung : liest Wert für Wert aus einer Zeile in Tabelle „A“
’ und schreibt sie untereinander in eine Spalte in Tabelle „B“
’
’ Änderung : x
’ Änderung von : x
’ Änderung am : x
’
’ -------------------------------------------------------------------------------
’
TABELLEaktuell = ActiveSheet.Name
ZEILEaktuell = ActiveCell.Row
SPALTEaktuell = ActiveCell.Column
Select Case spalte
Case Is BISspalte Then Exit For
End Select
Select Case i
Case Is
Oh, das ist total nett!!!
Ich hab das nun vereinfacht gemacht. Es geht um eine Dienstplanauswertung und meine Kollegen (nicht PC-tauglich
) müssen da ja auch mit „klar kommen“…
Ich weiß leider nicht, wie man hier so eine Frage wieder löschen bzw. schließen kann.
Gruß Drousilla
Hallo,
ich bin mit meiner Antwort vielleicht etwas spät dran, weil ich letzte Woche viel zu tun hatte.
Das, was du haben möchtest, müsste mit den „normalen“ Excel-Formeln umzusetzen sein. Bei anspruchsvolleren Aufgaben kann man auch Macros, die man in „VBA“ programmiert, einsetzen.
Aber zunächst zu den „eingebauten“ Excel-Formeln:
Wenn du Werte, die nebeneinander in einer Zeile stehen, in einer Spalte angeordnet haben möchtest, so ist dafür die Matrix-Formel „MTRANS“ geeignet.
So gehst du vor:
- Du markierst den Bereich A1:A26 (da soll die Formel hin)
- Du gibst die Formel ein: =MTRANS(Tabelle!A6:Z6) - „Tabelle“ steht hier symbolisch für den Namen der Tabelle, in der die zu lesenden Werte in einer Zeile stehen. Du kannst auch nur =MTRANS( eingeben und dann den Wertebereich mit der Maus markieren.
Wenn du die Formel eingegeben hast, drückst du zum Abschluss nicht einfach die Eingabetaste, sondern stattdessen Shift+Strg+Eingabe. Damit wird die Formel als Matrix eingegeben. Man erkennt die erfolgreiche Eingabe einer Matrixformel daran, dass die Formel dann in geschweiften Klammern steht: {=MTRANS(Tabelle!A6:Z6)}, und in jeder Zelle steht dieselbe Formel. Eigentlich ist es nur eine einzige Formel.
Zum zweiten Teil deiner Frage mit den Kürzeln.
Hier bräuchtest du zunächst eine „Übersetzungtabelle“. Da steht dann drin, welcher Langtext in welches Kürzel übersetzt werden soll, also zum Beispiel:
Langtext Kürzel
Kühlschrank KS
Waschmaschine WM
Fernseher TV
Diese Übersetzungstabelle kannst du z.B. in einer eigenen Tabelle anlegen.
Die Formel, die du dann brauchst, übersetzt alle Langtexte in Kürzel, oder sie zeigt den Fehlerwert „#NV“ an, wenn ein Wert in der Übersetzungstabelle fehlt. Die Übersetzungstabelle muss auch eindeutig sein, d.h. es darf nicht zu einem Langtext zwei verschiedene Kürzel geben.
Die Formel sieht so aus:
=SVERWEIS(MTRANS(Tabelle!A6:Z6);Übersetzen!A1:B26;2;FALSCH)
Diese Formel wird ebenso als Matrix-Formel abschließend mit Shift+Strg+Eingabe eingegeben.
Der Bezug „Übersetzen!A1:B26“ weist darauf hin, dass die Tabelle mit der Übersetzungstabelle „Übersetzen“ heißt, dass die Langtexte im Bereich A1:A26 stehen und die Kürzel in B1:B26. Dies kannst du natürlich für deine Vorstellungen anpassen.
Ich hoffe, das hilft dir erst mal weiter.