Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1512to1516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte zuordnen in einer unstrukturierten Tabelle

Werte zuordnen in einer unstrukturierten Tabelle
16.09.2016 15:03:01
Paul
Hallo Zusammen,
ich probiere sehr gerne selber an VBA Problemen herum, aber an dieser Stelle komme ich leider nicht wirklich weiter.
Es ist folgender Maßen. Ich habe Tabelle bestehend aus mehreren Tabellenblättern. In der Tabelle1 habe ich einen CommandButton, der aus der dortigen Spalte A alle Werte ohne Duplikate in Tabelle2 Spalte A kopiert.
In Tabelle2 werden alle diesen Werten weitere jeweils unterschiedliche Werte (z.B. A, B, C, etc) manuell zugeordnet.
Und jetzt kommt mein Problem:
Ich möchte, dass Werte ( A, B, etc.) die genau einem Wert aus Spalte A zugeordnet wurden in die Tabelle1 an entsprechende Stelle eingefügt werden. Nun kommt es aber in Tabelle1 Spalte A vor, dass die Werte alle durcheinander sind und wie gesagt auch mehrmals vorkommen. Trotzdem soll jedem Wert sein richtiges A, B, C usw. zugeordnet werden.
Für einen Denkanstoß wäre ich sehr dankbar.
Vielen Dank im Voraus.
Hier ein Beispiel wie ich es meine:

Die Datei https://www.herber.de/bbs/user/108217.xlsm wurde aus Datenschutzgründen gelöscht


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte zuordnen in einer unstrukturierten Tabelle
16.09.2016 15:25:25
UweD
Hallo
kopiere in ´die Zellen von Tabelle1 die Formel =SVERWEIS($A8;Tabelle2!$A:$J;VERGLEICH(B$7;$A$7:$J$7);0)
Gruß UweD
AW: Werte zuordnen in einer unstrukturierten Tabelle
16.09.2016 15:38:50
Paul
Vielen Dank für die schnelle Antwort. Aber gibt es auch noch eine andere Möglichkeit, da die Originaldatei aus so vielen Zellen besteht, dass ich die Formel in circa 48.000 Zellen eintragen müsste.
Vielen Dank nochmals
AW: Werte zuordnen in einer unstrukturierten Tabelle
16.09.2016 16:08:37
UweD
Hi
Aber gibt es auch noch eine andere Möglichkeit, da die Originaldatei aus so vielen Zellen besteht, dass ich die Formel in circa 48.000 Zellen eintragen müsste.
ja, z.B.
48.000 Zellen einzeln in einer Schleife prüfen und setzen. :-( Laufzeit?
ich würde es so machen.
Private Sub CommandButton22_Click()
    Dim lngZQ As Long, lngZZ As Long 'Zeilen-Variablen für Quelle/Ziel 
    Dim lngSQ As Long, lngSZ As Long 'Spalten-Variablen für Quelle/Ziel 
    Dim LR As Long
    lngSQ = 1 'Werte aus Quell-Spalte 1 = Spalte A 
    lngSZ = 15 'Werte nach Ziel-Spalte 78 = Spalte O 
    With Sheets("Tabelle1") 'In diesem Blatt soll das Makro die Werte kopieren 
        .Columns(lngSZ).ClearContents 'Zielspalte zuvor löschen ! 
        LR = .Cells(Rows.Count, lngSQ).End(xlUp).Row
        
        'Duplikate raus 
        .Range("A8:A" & LR).Copy Sheets("Tabelle2").Range("A6")
        Sheets("Tabelle2").Range("A6:A" & LR).RemoveDuplicates Columns:=1, Header:=xlNo
        
        'Formel und dann in Werte verwandeln 
        .Range("B8:I" & LR).FormulaR1C1 = _
            "=VLOOKUP(RC1,Tabelle2!C1:C10,MATCH(R7C,R7C1:R7C10),0)" ' Formel wird gesetzt 
        .Range("B8:I" & LR).Value = .Range("B8:I" & LR).Value
        
        
        .Range("O2:O100").Copy Worksheets("Tabelle2").Cells(6, 1)
        .Range("O2:O100").Value = Empty
    End With
End Sub

Tipp: Select und Activate werden in 99% der Fälle nicht benötigt
LG UweD
Anzeige
AW: Werte zuordnen in einer unstrukturierten Tabelle
16.09.2016 16:43:35
Daniel
Hi
der SVerweis ist schon mal gut. Wenn die Anordnung der Spalten in beiden Listen die gleiche ist, kann der innere Vergleich für die Spaltennummer wegfallen und du nimmst stattdessen einfach die Funktion Spalte()
um das zu beschleunigen gibt es zwei Methoden, die man unabhängig von einander oder auch kombiniert einsetzen kann.
1. sortiere die Liste in Tabelle2 nach der Spalte A. Du kannst dann den SVerweis mit 4. Parameter = WAHR verwenden, dieser ist bei grossen Datenmengen um Welten schneller als sein "falscher" Bruder und kommt daher auch mit wesentlich grösseren Datenmengen problemlos zurecht.
da die Daten in Tabelle2 aus der Tabelle1 generiert wurden, ist sichergestellt das alle gesuchten Werte auch vorkommen und somit eine diesbezügliche Prüfung nicht notwendig.
2. du fügst mehrere Spalten für die gleiche Zeilennummer ein. Dann ist es nicht notwendig, in jeder Spalte die Zeilennummer neu zu berechnen.
Berechne die Zeilennummer in einer Hilfsspalte und lies die Daten dann mit INDEX und Verwendung dieser Hilfsspalte aus.
bei 10 Spalten hast du dann nur noch 10% des ursprünglichen Rechenaufwandes (die Suche ist das aufwendigste, das Lesen mit Index geht sehr schnell.
Ein Makro müsste dann nur noch die Tabelle2 sortieren und in Tabelle1 die entsprechenden Formeln einfügen. bei Bedarf kann man dann auch die Formeln wieder durch ihren Wert ersetzen.
Bei VBA-gut solltest du das alleine hinbekommen.
hier mal die Beispieldatei mit beiden Beschleunigungsmethoden kombiniert.
https://www.herber.de/bbs/user/108218.xlsm
Gruß Daniel
Anzeige
AW: Werte zuordnen in einer unstrukturierten Tabelle
19.09.2016 15:17:24
Paul
Hallo Daniel,
das hat gut geklappt. Vielen Dank für die Unterstützung.
Gruß
Paul

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige