Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2 Arrays zusammenführen...

Forumthread: 2 Arrays zusammenführen...

2 Arrays zusammenführen...
KLE
Hi,
ich lese eine Liste von Daten aus und "parke" sie in einem Array1. Dazu auch eine andere Liste in ein anderes Array2. Nun möchte ich gern beide zusammenführen und in einer Liste ausgeben.
Wie kann ich das tun ?
Aufbau Array1: (Produkte)
Artikel - ID | Bezeichnung | Typ | Warengruppe (WG) | Preis | Lieferdatum
Aufbau Array2: (Dienstleistungen)
DL-ID | Bezeichnung | DL-Typ | DL_Warengruppe | Preis | Angebotsdatum
Array3 - am Ende als Liste: (Gesamtübersicht)
ArtikelID + DL - ID | Bezeichnung A/DL | Typen | Warengruppen | Preise | Datum || Produkt/Dienstleistung
Wichtig:
Die "End-Liste" soll nach Lieferdatum/Angebotsdatum sortiert sein. und in einer "Neuen" Spalte am Ende den Hinweis enthalten, ob dieser Eintrag (Datensatz) aus dem Bereich Produkt (Array1) oder Dienstleistung (Array2) stammt.
Brauche einen Hinweis, wie ich die Arrays zusammenführen kann...d.h. wie ich die einzelnen Werte auslesen und übertragen kann in ein neues Array.
Eine Musterdatei habe ich nicht, aber ich hoffe ihr habt mich verstanden und könnt mir einen Ansatz liefern ?
Gruß und danke
Kay
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: 2 Arrays zusammenführen...
17.10.2011 21:37:27
Uduuh
Hallo,
schwer verständlich.
Letztlich läuft das auf eine Schleifen-Lösung raus. Aber keine Angst. Schleifen über Arrays laufen ratzfatz.
Für die Sortierung kann ich das empfehlen: http://www.online-excel.de/excel/singsel_vba.php?f=97
Gruß aus’m Pott
Udo

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Zwei Arrays in Excel zusammenführen


Schritt-für-Schritt-Anleitung

Um in Excel zwei Arrays zusammenzuführen, musst du die Daten aus beiden Arrays in ein neues Array übertragen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Daten einlesen: Stelle sicher, dass du die Daten in Array1 (Produkte) und Array2 (Dienstleistungen) hast. Diese können beispielsweise in zwei unterschiedlichen Tabellen oder Bereichen deiner Excel-Datei stehen.

  2. Neues Array erstellen: Erstelle ein neues Array (Array3), das die Struktur für die Gesamtübersicht hat:

    • Spalten: ArtikelID + DL-ID, Bezeichnung A/DL, Typen, Warengruppen, Preise, Datum, Produkt/Dienstleistung.
  3. Daten zusammenführen: Verwende eine Schleife, um die Daten aus Array1 und Array2 in Array3 zu übertragen. Hier ein Beispielcode in VBA:

    Dim Array1 As Variant
    Dim Array2 As Variant
    Dim Array3() As Variant
    Dim i As Long, j As Long, k As Long
    Dim RowCount As Long
    
    ' Arrays initialisieren
    Array1 = Range("A2:F" & Cells(Rows.Count, 1).End(xlUp).Row).Value
    Array2 = Range("H2:M" & Cells(Rows.Count, 8).End(xlUp).Row).Value
    
    ' Größe von Array3 festlegen
    RowCount = UBound(Array1, 1) + UBound(Array2, 1)
    ReDim Array3(1 To RowCount, 1 To 7)
    
    ' Array1 in Array3 übertragen
    For i = LBound(Array1, 1) To UBound(Array1, 1)
       For j = 1 To 6
           Array3(i, j) = Array1(i, j)
       Next j
       Array3(i, 7) = "Produkt"
    Next i
    
    ' Array2 in Array3 übertragen
    For i = LBound(Array2, 1) To UBound(Array2, 1)
       For j = 1 To 6
           Array3(UBound(Array1, 1) + i, j) = Array2(i, j)
       Next j
       Array3(UBound(Array1, 1) + i, 7) = "Dienstleistung"
    Next i
    
    ' Ergebnis in ein neues Arbeitsblatt schreiben
    Sheets.Add.Name = "Gesamtübersicht"
    Range("A1:G1").Value = Array3(1, 1) ' Spaltenüberschriften setzen
    Range("A2").Resize(RowCount, 7).Value = Array3
  4. Sortieren: Sortiere das Ergebnis nach Lieferdatum und Angebotsdatum. Du kannst dazu die integrierte Sortierfunktion in Excel verwenden oder dies ebenfalls über VBA erledigen.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt"
    Lösung: Stelle sicher, dass die Datentypen in beiden Arrays übereinstimmen (z.B. Text, Zahl).

  • Fehler: "Index außerhalb des Bereichs"
    Lösung: Überprüfe, ob die Schleifen korrekt eingerichtet sind und die Arrays die erwartete Größe haben.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch Excel-Formeln verwenden, um die Arrays zusammenzuführen. Eine Möglichkeit ist die Verwendung der VERKETTEN-Funktion oder die Nutzung von INDEX und VERGLEICH, um die Daten zusammenzuführen.


Praktische Beispiele

Nehmen wir an, du hast folgende Daten:

Array1 (Produkte): Artikel-ID Bezeichnung Typ Warengruppe Preis Lieferdatum
1 Produkt A Typ1 WG1 10€ 01.01.2023
2 Produkt B Typ2 WG2 20€ 02.01.2023
Array2 (Dienstleistungen): DL-ID Bezeichnung DL-Typ DL_Warengruppe Preis Angebotsdatum
1 Dienst A DL-Typ1 DL_WG1 30€ 01.01.2023
2 Dienst B DL-Typ2 DL_WG2 40€ 02.01.2023

Das Endergebnis (Array3) könnte so aussehen:

ArtikelID + DL-ID Bezeichnung A/DL Typen Warengruppen Preise Datum Produkt/Dienstleistung
1 Produkt A Typ1 WG1 10€ 01.01.2023 Produkt
1 Dienst A DL-Typ1 DL_WG1 30€ 01.01.2023 Dienstleistung

Tipps für Profis

  • Nutze Excel-Tabellen, um die Handhabung von Daten zu vereinfachen.
  • Verwende die SORTIEREN-Funktion, um deine Ergebnisse dynamisch zu sortieren, ohne manuelles Eingreifen.
  • Experimentiere mit den FILTER-Funktionen, um spezifische Daten aus deinen Arrays zu extrahieren.

FAQ: Häufige Fragen

1. Wie kann ich zwei Arrays in Excel ohne VBA zusammenführen?
Du kannst Excel-Formeln wie VERKETTEN, INDEX und VERGLEICH verwenden, um Daten aus verschiedenen Arrays zu kombinieren.

2. Funktioniert das auch in Excel 365?
Ja, die beschriebenen Methoden funktionieren in Excel 365 sowie in anderen Versionen von Excel, die VBA unterstützen.

3. Gibt es eine Möglichkeit, die Arrays automatisch zu aktualisieren?
Ja, wenn du die Daten in Excel-Tabellen speicherst, kannst du die Datenverbindung aktivieren, um Änderungen automatisch zu übernehmen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige