Spalten mit 1 und 0 kopieren

Bild

Betrifft: Spalten mit 1 und 0 kopieren
von: Markus
Geschrieben am: 02.10.2003 12:15:57

Hallo Leute,
ich habe da mal ein Problem. Ich habe bereits eine Spalte angelegt (Spalte E)welche nur 1 oder 0 enthält (Können fünf mal 1 dann drei mal 0 dann wieder 1 usw. sein also nicht zusammenhängend) ich möchte nun aus allen Zeilen welche eine 1 haben die Spalte A nach B kopieren und zwar zusammenhängen, also wenn zwischendurch eine 0 kommt diese weglassen und alle mit einer 1 untereinanderkopieren. Ich hoffe ihr habt eine Idee die auch ich einsetzen kann.

Danke schon mal für Eure Hilfe.

Gruß Markus

Bild


Betrifft: Autofilter oder Formel
von: Günther Oppold
Geschrieben am: 02.10.2003 12:30:55

Hi Markus,

am leichtesten geht's wohl mit dem Autofilter.
in der die gefilterten Tabelle Spalte A markieren;
BEARBEITEN / gehe zu / Inhalte / nur sichtbare Zellen;
diese kopieren,
beim Autofilter "alle" anzeigen lassen;
nun in Spalte B die Werte eintragen.


2. Möglichkeit
in B1: {=INDEX(A:A;KKLEINSTE(WENN(E$1:E$999=1;ZEILE($1:$999));ZEILE()))}
ARRAY-Formel: die geschweifte Klammer nicht eingeben, sondern die Formeleingabe abschließen mit Strg+Umsch+Enter

Günther


Bild


Betrifft: Prima aber etwas hätte ich noch :-)
von: Markus
Geschrieben am: 02.10.2003 12:47:47

Hallo Günther.
erst mal vielen Dank geht echt Klasse. Aber eine Sache hätte ich noch in einigen Spalten ekomme ich den Ausdruck #Zahl! kann ich das unterdrücken ich hätte gerne leere Zeilen ist das möglich. Es geht darum ich möchte später alle Werte kopieren bis zur leeren Zeile. Noch eine Frage ist die Spaltenanzahl begrenzt können bis zu 50000 Daten werden??


Danke schon mal für deine Super schnelle Hilfe!

Gruß Markus

P.S. Wenn du auch noch eine Idee hast wie ich die alle Werte bis zur Leerzeile Kopiere wäre Super.


Bild


Betrifft: AW: Prima aber etwas hätte ich noch :-)
von: Günther Oppold
Geschrieben am: 02.10.2003 17:07:10

die Formel zur unterdrückung des Fehlers lautet:

{=wenn(istfehler(INDEX(A:A;KKLEINSTE(WENN(E$1:E$999=1;ZEILE($1:$999));ZEILE()));"";INDEX(A:A;KKLEINSTE(WENN(E$1:E$999=1;ZEILE($1:$999));ZEILE()))}

natürlich muss E$999 entsprechend deinen Zeilen angepasst werden!


zum schnellen Kopieren:
Du weist bestimmt, wie eine Zelle gezogen werden kann (mit dem dünnen Curser-Kreuz an der rechten unteren Zellecke). Statt ziehen - mach einen Doppelklick mit der linken Maustaste. Die Formel kopiert sich so weit nach unten, wie die linke Spalte gefüllt ist.
d.h. hast Du dort eine ununterbrochene Reihe dann gehts bis Zeile 65536. Oder du schreibst die Formel in Zelle B1, kopierst sie, markierst Spalte B und "Einfügen"

Es gibt meines Wissens keine Begrenzung der Zellen, jedoch wird die Berechnung (da die Formel eine ARRAY Formel ist und die ganze Tabelle von oben nach unten durchsucht) bei dieser Zeilenanzahl___s_e_e_e_e_h_r___langsam.


Günther


Bild


Betrifft: AW: Spalten mit 1 und 0 kopieren
von: ChrisL
Geschrieben am: 02.10.2003 12:38:52

Hi Markus

Hier noch ein Makro...

Option Explicit


Sub mach()
Dim iZeile As Long
Application.ScreenUpdating = False
Columns(2).ClearContents
For iZeile = 1 To Range("E65536").End(xlUp).Row
    If Cells(iZeile, 5) = 1 Then
        If Range("B1") = "" Then
            Range("B1") = Cells(iZeile, 1)
        Else
            Cells(Range("B65536").End(xlUp).Row + 1, 2) = Cells(iZeile, 1)
        End If
    End If
Next iZeile
Application.ScreenUpdating = True
End Sub



Gruss
Chris


Bild


Betrifft: Bräuchte noch mal Hilfe
von: Markus
Geschrieben am: 02.10.2003 14:21:15

Also das Programm von Chris funktioniert.
Wie kann ich den Code umschreiben damit er die Werte von Spalte D nach Spalte f Kopiert wenn Die Spalte E den Wert 1 hat.

Danke und schönes Wochenende

Gruß Markus


Bild


Betrifft: AW: Bräuchte noch mal Hilfe
von: ChrisL
Geschrieben am: 02.10.2003 14:36:47

Hi Markus

Cells(Zeile, Spalte)

Gruss
Chris




Sub mach()
Dim iZeile As Long
Application.ScreenUpdating = False
Columns(2).ClearContents
For iZeile = 1 To Range("E65536").End(xlUp).Row
    If Cells(iZeile, 5) = 1 Then
        If Range("F1") = "" Then
            Range("F1") = Cells(iZeile, 4)
        Else
            Cells(Range("B65536").End(xlUp).Row + 1, 6) = Cells(iZeile, 4)
        End If
    End If
Next iZeile
Application.ScreenUpdating = True
End Sub



Bild


Betrifft: AW: Bräuchte noch mal Hilfe geht so nicht
von: Markus
Geschrieben am: 06.10.2003 09:07:24

Hallo Chris oder alle anderen,
wenn ich denn Code so verwende kopiert sich nur der Wert von D3 nach F1 sonst nichts, kann es daran liegen, dass ich in der ersten Zeile Texte stehen habe und keine Werte oder woran liegt das, und wenn ja wie fange ich an erst ab der zweiten Zeile zu kontrollieren.

danke euch schon mal

Gruß Markus


Bild


Betrifft: AW: Bräuchte noch mal Hilfe geht so nicht
von: ChrisL
Geschrieben am: 06.10.2003 11:40:59

Hi Markus

Stell mal deine Datei in den Anhang.

Gruss
Chris


Bild


Betrifft: Tabelle mit Link für Chris
von: Markus
Geschrieben am: 06.10.2003 12:11:23

Hallo Chris,

in der Tabelle 3 möchte ich alle Werte der Spalte D nach F kopieren wenn in der Spalte E eine 1 steht. Dann möchte ich eine weitere Abfrage nach allen Werten die nun in F stehen machen (die gleiche Abfrage steht momentan noch in der Tabelle 4 Spalte E, soll aber in Tabelle3 Spalte G). Die Abfrage wieder mit 1 und 0 in der Spalte G. Und dann alle Werte die nun eine 1 haben nach Spalte H kopieren.


Ich hoffe du verstehst wie ich das meine.
Der Link hat folgenden Namen

https://www.herber.de/bbs/user/1297.xls


Danke für die ganze Arbeit die du dir machst.

Gruß
Markus


Bild


Betrifft: AW: Tabelle mit Link für Chris
von: ChrisL
Geschrieben am: 06.10.2003 13:47:07

Hi Markus

Versuch mal so...

Option Explicit


Sub test()
Dim iZeile As Long
Application.ScreenUpdating = False
Columns(6).ClearContents
For iZeile = 1 To Range("E65536").End(xlUp).Row
    If Cells(iZeile, 5) = 1 Then Cells(Range("F65536").End(xlUp).Row + 1, 6) = Cells(iZeile, 4)
Next iZeile
Application.ScreenUpdating = True
End Sub



Gruss
Chris


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Spalten mit 1 und 0 kopieren"