Clever-Excel-Forum

Normale Version: Wenn-Dann
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich bin schon eine Weile auf der Suche und wäre unglaublich froh, wenn mir hier eine/r helfen könnte.

Folgendes Problem habe ich:
Ich habe zwei Tabellenblätter. Tabellenblatt 1 (Export) enthält Informationen und Daten, Tabellenblatt 2 (Auszug) ist leer. Zeile 1 ist in beiden Tabellenblättern gleich.
Sobald in Spalte I des Tabellenblattes 1 der Wert "unknown" oder "unavailable" auftaucht, soll die Zeile mit diesem Wert in Tabellenblatt 2 kopiert werden. Zeilen ohne diese Werte sollen nicht kopiert werden. Zusätzlich umfasst Tabellenblatt 1 ca. 2.500 Einträge - dies wäre der Bereich, der abgedeckt werden sollte.

Ich dank dir schon jetzt so sehr.
Vielen Dank und einen schönen Abend euch noch.
Hallo,

kombiniere mal die Funktionen INDEX() und AGGREGAT(). Für eine detailliertere Antwort benötige ich eine kleine Beispieltabelle (kein ScrShot!!). https://www.clever-excel-forum.de/thread-326.html
Hallo,

ich würde das nur mit Tabellenblatt 1 machen. Dort einfach filtern.
Das habe ich schon versucht - wichtig wäre hier vielleicht noch die Information, dass ein einfach Filtern zwar möglich wäre, aber ein automatisierter Vorgang einfacher. Parallel zu diesem Befehl muss, sobald ein Wert in Spalte A des Tabellenblattes 2 gleich einem Wert in Spalte A Tabellenblatt 3 ist rot hinterlegt werden.

Dies wird durch eine bedingte Formatierung möglich sein, richtig?
Hallöchen,

eine einfache Methode wäre, die Daten entsprechend zu filtern. Dann kannst Du sie einfach kopieren und in der anderen Tabelle einfügen. Dafür könnte man auch ein kleines Makro schrieben, im Prinzip so:

Code:
Sub Makro2()
    'Spalte I als letzte Spalte festlegen
    Const iCol As Integer = 9
    'Variable fuer letzte belegte Zeile
    Dim iRow As Integer
    'Letzte belegte Zeile anhand Spalte I festlegen
    iRow = Cells(Rows.Count, 9).End(xlUp).Row
    'Mit dem Bereich A1 bis I.. letzte belegte Zeile
    With Range(Cells(1, 1), Cells(iRow, iCol))
      'Autofilter setzen (ggf. code erweitern und pruefen, ob schon gesetzt)
      .AutoFilter
      'Nach SPalte I filtern
      .AutoFilter Field:=9, Criteria1:= _
        "=*unavailable*", Operator:=xlOr, Criteria2:="=*unknown*"
      'gefilterte Daten nach Tabelle 2 Zelle A1 kopieren
      .Copy Sheets("Tabelle2").Range("A1")
      'Autofilter aufheben
      .AutoFilter
    'Ende Mit dem Bereich A1 bis I.. letzte belegte Zeile
    End With
End Sub
Hi,

hier mein Vorschlag, wie bereits geschrieben mit INDEX() und AGGREGAT:

Arbeitsblatt mit dem Namen 'Export'
ABCDEFGHIJ
1LadenStandLandPLZStadtStraßeLadenbesitzerStandbesitzerStatusDatum
2ABCJD001DEXXXXXBerlinXXHeinzWilliunknownheute
3DEFJD001DEXXXXXBerlinXXHerbertWillineuheute
4ABDJD002DEXXXXXBerlinXXWolfgangWilliunavailableheute
5DFEJD002DEXXXXXBerlinXXPeterWilliunknownheute
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'Auszug'
ABCDEFGHIJ
1LadenStandLandPLZStadtStraßeLadenbesitzerStandbesitzerStatusDatum
2ABCJD001DEXXXXXBerlinXXHeinzWilliunknownheute
3DFEJD002DEXXXXXBerlinXXPeterWilliunknownheute
4
5

ZelleFormel
A2=WENNFEHLER(INDEX(Export!A:A;AGGREGAT(15;6;ZEILE(Export!$A$2:$A$5)/(Export!$I$2:$I$5="unknown");ZEILE(A1)));"")
B2=WENNFEHLER(SVERWEIS($A2;Export!$A$1:$J$5;SPALTE(B$1);0);"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Die Formel in A2 einfach runterziehen, die Formel in B2 nach rechts und nach unten.

Ja, die Markierung bei Gleichheit geht über die bedFormatierung.
Hallo, oder einfach(er) mit Power Query mit ohne Formeln...
(22.04.2019, 19:48)WillWissen schrieb: [ -> ]Hi,

hier mein Vorschlag...

Ja, die Markierung bei Gleichheit geht über die bedFormatierung.

Moin Günter, aber wie genau..?
Hallöchen,
Habe gerade anhand Günters Tabellenausschnitt gesehen, dass Deine Daten bis Spalte J gehen. Dann musst Du in meinem Code zum Kopieren Die Spalte mit 10 definieren.
Der Vorschlag von Jörg mit PowerQuery würde natürlich auch mein Makro ganz gut ersetzen, damit wird ja auch eine Kopie der Daten angelegt. :19:
Hi Jörg,

deine Frage ist nicht ernst, oder?

Arbeitsblatt mit dem Namen 'Auszug'
A
1Laden
2ABC
3DFE
4
5
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Arbeitsblatt mit dem Namen 'VIP'
A
1Laden
2ABC
3DEF
4ABD
5DFE

Zellebedingte Formatierung...Format
A21: ZÄHLENWENN(Auszug!$A$2:A2;A2)>0abc
Verwendete Systemkomponenten: [Windows (32-bit) NT 10.00] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Seiten: 1 2