Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Excel: Tabelle nach Pärchen durchsuchen und gruppieren

Frage Microsoft Microsoft Office

Mitglied: lebmug

lebmug (Level 1) - Jetzt verbinden

22.12.2014 um 10:42 Uhr, 775 Aufrufe, 1 Kommentar

Hallo zusammen,

ich habe eine Excel-Sheet mit 6 Spalten, davon jeweils 3 aus einer Perspektive:

ID1, Volumen1, Anzahl1, ID2, Volumen2, Anzahl2

Darin sind in gerne mal mehr als 50.000 Zeilen eintragungen, die ich vergleiche muss.

In einer idealen Welt würden hierbei alle bei ID1 vorkommenden IDs ebenfalls in ID2 zu finden sind und umgedreht, was selten der Fall ist.

Bisher geh ich immer manuell los und verschieb mir alle Einträge so dass zum Schluss jede Zeile eine ID behandelt (wenn eine ID nur in einer der beiden Spalten vorkommt bleiben die drei dazugehörigen Felder des Schwesterbereichs leer).

Gibt es ein Script oder eine andere Möglichkeit das zu automatisieren?


Ein vereinfachtes Beispiel:

Aus

Apfel,2,1,Apfel,2,1
Birne,3,1,Birne,3,1
Banane,1,1,Plfaume,5,2

soll werden

Apfel,2,1,Apfel,2,1
Birne,3,1,Birne,3,1
Banane,1,1,(Leer),(Leer),(Leer)
(Leer),(Leer),(Leer),Plfaume,5,2

Kann mir da jemand weiterhelfen?

Vielen Dank!

MFG
lebmug
Mitglied: colinardo
22.12.2014, aktualisiert um 17:39 Uhr
Hallo lebmug, Willkommen auf Administrator.de!
Guckst du in dieses Demo-Sheet: match_pairs_258305.xlsm
01.
Sub MatchPairs() 
02.
    Dim ws As Worksheet, rngA As Range, rngB As Range, f As Range, cell As Range 
03.
    'Arbeitsblatt wählen 
04.
    Set ws = Sheets(1) 
05.
    Application.ScreenUpdating = False 
06.
    With ws 
07.
        'Bereich A 
08.
        Set rngA = .Range("A2:A" & ws.UsedRange.Rows.Count) 
09.
        'Bereich B 
10.
        Set rngB = .Range("D2:D" & ws.UsedRange.Rows.Count) 
11.
        ' Bei Bedarf vorher beide Bereiche sortieren 
12.
        'rngA.Sort rngA.Columns(1), xlAscending 
13.
        'rngB.Sort rngB.Columns(1), xlAscending 
14.
         
15.
        'Für alle IDs in Bereich A 
16.
        For Each cell In rngA 
17.
            'Wenn ID nicht leer 
18.
            If cell.Value <> "" Then 
19.
                'Suche aktuelle ID in Bereich B 
20.
                Set f = rngB.Find(cell.Value, LookIn:=xlValues, LookAt:=xlWhole) 
21.
                'Wenn passende ID gefunden wurde 
22.
                If Not f Is Nothing Then 
23.
                    'wenn aktuelle Zeile nicht gleich der gefundenenen (andernfalls is ja kein Umsetzen nötig) 
24.
                    If f.Row <> cell.Row Then 
25.
                        'Verschiebe die 3 Zellen der gefundenen ID in die aktuelle Zeile 
26.
                        f.Resize(1, 3).Cut 
27.
                        cell.Offset(0, 3).Resize(1, 3).Insert xlDown 
28.
                    End If 
29.
                Else 
30.
                    'es wurde keine passende ID gefunden füge leere Zellen ein 
31.
                    cell.Offset(0, 3).Resize(1, 3).Insert xlDown, xlFormatFromLeftOrAbove 
32.
                End If 
33.
            End If 
34.
        Next 
35.
    End With 
36.
    Application.ScreenUpdating = True 
37.
End Sub
Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Unterordner durchsuchen Excel VBA (1)

Frage von schwalbepilot zum Thema Microsoft Office ...

VB for Applications
Mehrere Spalten Durchsuchen und Ergebnisse in neuer Tabelle Ausgeben (3)

Frage von Mr.Green zum Thema VB for Applications ...

Microsoft Office
EXCEL VBA Termindaten aus Tabelle Filtern

Frage von t3jxbus zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
gelöst Raid-Controller (Areca) Datenverlust trotz R5 (16)

Frage von sebastian2608 zum Thema Festplatten, SSD, Raid ...

Server-Hardware
HP ProLiant DL380 G7, POST Error: 1785-Drive Array not Configured (10)

Frage von Paderman zum Thema Server-Hardware ...

Microsoft Office
gelöst Office 365 Pro Domäne einrichten OHNE Webseite (9)

Frage von thklemm zum Thema Microsoft Office ...

Voice over IP
48 Port VOIP Switch mit POE gesucht (8)

Frage von brutzler zum Thema Voice over IP ...