[Excel] Zeile von einem Tabellenblatt in das andere kopieren
#1
Hallo,

immer wieder tauchen solche oder ähnliche Fragen auf:

Zitat:Ich habe ein Tabellenblatt in dem in Spalte B eine Menge eingetragen wird. Wenn dort eine Zahl eingetragen wird dann soll die ganze Zeile in ein anderes Tabellenblatt kopiert werden.

Dafür gibt es, wie so oft in Excel, mehrere Möglichkeiten.

Eine Variante ist die Nutzung einer Matrixformel die auch in der angehängten Beispielsdatei enthalten ist.

Die Ausgangstabelle

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABC
1ArtikelMengePreis
2A1610
3A2 20
4A3130
5A4 40
6A5 50
7A6260
8A7170
9A8 80
10A9390
11A105100
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Eine der Zieltabellen (Tabelle2):

Arbeitsblatt mit dem Namen 'Tabelle2'
 ABC
8ArtikelMengePreis
9A1610
10A3130
11A6260
12A7170
13A9390
14A105100

ZelleFormel
A9{=WENN(ZEILE(Tabelle1!1:1)>ZÄHLENWENN(Tabelle1!$B$2:$B$20;">0");"";INDEX(Tabelle1!A:A;KKLEINSTE(WENN(Tabelle1!$B$2:$B$20>0;ZEILE(Tabelle1!$2:$20));ZEILE(A1))))}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Die Formel in A9, die mit Strg-Shift-Enter abgeschlossen werden muss, kann dann nach rechts und nach unten kopiert werden.

Überwacht wird der Bereich von B2 bis B20 - das kann natürlich entsprechend angepasst werden.

Ab Excel 2007 kann der Zählenwenn-Teil in der Formel durch Funktion Wennfehler ersetzt werden.

Die Formel für A9 würde dann so aussehen:

=WENNFEHLER(INDEX(Tabelle1!A:A;KKLEINSTE(WENN(Tabelle1!$B$2:$B$20>0;ZEILE(Tabelle1!$2:$20));ZEILE(A1)));"")

Allerdings muss auch diese Formel mit Strg-Shift-Enter abgeschlossen werden.


Wenn nur Zeilen übernommen werden sollen die in Spalte B eine bestimmte Menge aufweisen dann reicht eine kleine Änderung der Formel:

=WENN(ZEILE(Tabelle1!1:1)>ZÄHLENWENN(Tabelle1!$B$2:$B$20;1);"";INDEX(Tabelle1!A:A;KKLEINSTE(WENN(Tabelle1!$B$2:$B$20=1;ZEILE(Tabelle1!$2:$20));ZEILE(A1))))

wobei auch in diesem Fall die Formel mit Strg-Shift-Enter abgeschlossen werden muss.

In der angehängten Beispielsdatei sind mehrere Varianten dargestellt:

Tabelle2: Es werden die Zeilen übernommen bei denen die Menge in Spalte B größer 0 ist

Tabelle3: Es werden die Zeilen übernommen bei denen die Menge in Spalte B gleich 1 ist

Tabelle4: Es werden die Zeilen übernommen bei denen die Menge zwischen einer frei definierbaren Ober- und Untergrenze liegen

Tabelle5: Es werden die Zeilen übernommen bei denen die Artikelnummer einer frei wählbaren Artikelnummer entspricht und die Menge einen frei wählbaren Wert übersteigt.

Allerdings sind Matrixformeln rechenintensiv, d.h. wenn der überwachende Bereich sehr groß ist, dann wäre die Nutzung einer VBA-Lösung ratsam.

Mit dieser von Thomas Ramel erstellten Datei habe ich sehr gute Erfahrungen gemacht.

Die notwendigen Anpassungen sind in der Datei erläutert und auch ohne VBA-Kenntnisse recht schnell vollzogen.


Angehängte Dateien
.xls   Zeile_in_Tabellenblatt_kopieren.xls (Größe: 70,5 KB / Downloads: 149)
Gruß
Peter
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste