Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
nicht gemeinsame Werte aus zwei Arrays
zurück: Zelleninhalt per Makro aus Excel Datei senden weiter: Benutzer Attachment verkleinern Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Eddy_007
Gast


Verfasst am:
26. Nov 2012, 21:31
Rufname:

nicht gemeinsame Werte aus zwei Arrays - nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

Hallo,
ich habe zwei eindimensionale Arrays (String-Werte) aus denen ich die nicht gemeinsamen Elemente finden und in eine Spalte schreiben muss.
Also z.B.
Array1 (VW, BMW, Ford, Fiat, Audi,)
Arry2 (VW, MB, Ford, Fiat)
Lösung (BMW, Audi, MB)

Hat vielleicht jemand eine Idee? Arrays sind nicht meine Stärke Embarassed

Gruß
Eddy
Isabelle :-)
Menschin


Verfasst am:
26. Nov 2012, 22:52
Rufname:
Wohnort: Westlicher Spiralarm der Galaxis


AW: nicht gemeinsame Werte aus zwei Arrays - AW: nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

Hallöchen,

mal ein ganz einfaches Beispiel:

Code:
Public Sub Test()

    Dim avntArray1 As Variant, avntArray2 As Variant
    Dim avntOutput() As Variant
    Dim ialngIndex1 As Long, ialngIndex2 As Long
    Dim ialngCount As Long
    Dim blnFound As Boolean

    avntArray1 = Array("VW", "BMW", "Ford", "Fiat", "Audi")
    avntArray2 = Array("VW", "MB", "Ford", "Fiat")

    For ialngIndex1 = LBound(avntArray1) To UBound(avntArray1)
        For ialngIndex2 = LBound(avntArray2) To UBound(avntArray2)
            If avntArray1(ialngIndex1) = avntArray2(ialngIndex2) Then
                blnFound = True
                Exit For
            End If
        Next
        If Not blnFound Then
            ReDim Preserve avntOutput(ialngCount)
            avntOutput(ialngCount) = avntArray1(ialngIndex1)
            ialngCount = ialngCount + 1
        Else
            blnFound = False
        End If
    Next

    For ialngIndex2 = LBound(avntArray2) To UBound(avntArray2)
        For ialngIndex1 = LBound(avntArray1) To UBound(avntArray1)
            If avntArray2(ialngIndex2) = avntArray1(ialngIndex1) Then
                blnFound = True
                Exit For
            End If
        Next
        If Not blnFound Then
            ReDim Preserve avntOutput(ialngCount)
            avntOutput(ialngCount) = avntArray2(ialngIndex2)
            ialngCount = ialngCount + 1
        Else
            blnFound = False
        End If
    Next

    If ialngCount > 0 Then _
        Cells(1, 1).Resize(ialngCount, 1).Value = Application.Transpose(avntOutput)

End Sub

_________________
LG Isi

Die Mitgliedschaft im Forum erhöht deine Chance auf eine Antwort von mir um 99,999%
Gerd L
Just for fun


Verfasst am:
26. Nov 2012, 22:58
Rufname:
Wohnort: Mannheim

AW: nicht gemeinsame Werte aus zwei Arrays - AW: nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

Hallo Eddy!

Code:
Private Sub once()

Dim X, Y, Z
Dim L As Long, M As Long


X = Array("VW", "BMW", "Ford", "Fiat", "Audi")
Y = Array("VW", , "MB", "Ford", "Fiat")

ReDim Z(UBound(X) + UBound(Y))
X = Join(X, ", ") & ", " & Join(Y, ", ")
Y = Split(X, ", ")

For L = 0 To UBound(Y)
    If Len(Y(L)) = Len(X) - Len(Replace(X, Y(L), "")) Then
        Z(M) = Y(L)
        M = M + 1
    End If
Next

If M > 0 Then
    ReDim Preserve Z(M - 1)
    Cells(2, 1).Resize(UBound(Z) + 1) = Application.Transpose(Z)
End If


End Sub

_________________
Gruß Gerd
pefeu
Im Profil kannst Du frei den Rang ändern


Verfasst am:
26. Nov 2012, 23:08
Rufname: Peter
Wohnort: Hamburg

AW: nicht gemeinsame Werte aus zwei Arrays - AW: nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

Hallo Eddy,

und noch eine Variante
Code:
Option Explicit

Sub Wer_fehlt()

Dim WkSh    As Worksheet
Dim Array1  As Variant
Dim Array2  As Variant
Dim iIndx   As Integer
Dim lZeile  As Long
Dim lStart  As Long

   Array1 = Array("VW", "BMW", "Ford", "Fiat", "Audi")
   Array2 = Array("VW", "MB", "Ford", "Fiat")
   
   Set WkSh = ThisWorkbook.Worksheets("Tabelle1")
   
   WkSh.Columns(1).ClearContents
   
   WkSh.Range("A1:A" & UBound(Array1) + 1) = Application.Transpose(Array1)
   
   For iIndx = 0 To UBound(Array2)
      For lZeile = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row To 1 Step -1
         If Array2(iIndx) = WkSh.Range("A" & lZeile).Value Then
            WkSh.Range("A" & lZeile).Delete shift:=xlUp
            Exit For
         End If
      Next lZeile
   Next iIndx
   
   lStart = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
   
   WkSh.Range("A" & lStart + 1 & ":A" & UBound(Array2) + 1 + lStart) = Application.Transpose(Array2)
   
   For iIndx = 0 To UBound(Array1)
      For lZeile = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row To lStart + 1 Step -1
         If Array1(iIndx) = WkSh.Range("A" & lZeile).Value Then
            WkSh.Range("A" & lZeile).Delete shift:=xlUp
            Exit For
         End If
      Next lZeile
   Next iIndx
 
End Sub

oder auch so:
Code:
Sub Doppelte_raus()

Dim WkSh      As Worksheet
Dim Array1    As Variant
Dim Array2    As Variant
Dim lZeile_A  As Long
Dim lStart    As Long
Dim lZeile_B  As Long

   Array1 = Array("VW", "BMW", "Ford", "Fiat", "Audi")
   Array2 = Array("VW", "MB", "Ford", "Fiat")
   
   Set WkSh = ThisWorkbook.Worksheets("Tabelle2") ' den Tabellenblattnamen ggf. anpassen!
   
   WkSh.Columns(1).ClearContents
   
   WkSh.Range("A1:A" & UBound(Array1) + 1) = Application.Transpose(Array1)
   lStart = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
   WkSh.Range("A" & lStart + 1 & ":A" & UBound(Array2) + 1 + lStart) = Application.Transpose(Array2)
   
   For lZeile_A = 1 To WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
      If Application.WorksheetFunction.CountIf(WkSh.Columns(1), WkSh.Range("A" & lZeile_A).Value) = 1 Then
         lZeile_B = lZeile_B + 1
         WkSh.Range("B" & lZeile_B).Value = WkSh.Range("A" & lZeile_A).Value
      End If
   Next lZeile_A
   
   WkSh.Columns("A:A").Delete Shift:=xlToLeft
 
End Sub

Gruß Peter
Eddy_007
Gast


Verfasst am:
28. Nov 2012, 22:24
Rufname:

AW: nicht gemeinsame Werte aus zwei Arrays - AW: nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

Hallo zusammen,

danke für die Vorschläge. Ich werde sie testen und etwas davon einsetzen.

...gehe davon aus, dass es funktionieren wird und ich setzte den Satus auf Feedback Laughing

Gruß
Eddy
Phelan XLPH
Fortgeschritten


Verfasst am:
29. Nov 2012, 00:50
Rufname: Phelan


AW: nicht gemeinsame Werte aus zwei Arrays - AW: nicht gemeinsame Werte aus zwei Arrays

Nach oben
       Version: Office XP (2002)

...oder so:

Code:
Sub x()
    Dim i As Long
    Dim ar_1 As Variant
    Dim ar_2 As Variant
    Dim match As Object
   
    Set match = CreateObject("scripting.dictionary")
   
    ar_1 = Array("VW", "BMW", "Ford", "Fiat", "Audi")
    ar_2 = Array("VW", "MB", "Ford", "Fiat")
   
    For i = LBound(ar_1) To UBound(ar_1)
        match(ar_1(i)) = 0
    Next
   
    For i = LBound(ar_2) To UBound(ar_2)
        If match.exists(ar_2(i)) Then
            match.Remove (ar_2(i))
        Else
            match(ar_2(i)) = 0
        End If
    Next
   
    Cells(1).Resize(match.Count) = WorksheetFunction.Transpose(match.keys)
   
End Sub
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Excel Problem mit Suche/Vergleich/werte nehmen 7 Darwin 1464 25. Apr 2005, 14:26
Darwin Excel Problem mit Suche/Vergleich/werte nehmen
Keine neuen Beiträge Excel Formeln: Wenn Funktion mit zwei Bedingungen und Prozentberechnung 4 manti 1698 12. Apr 2005, 17:19
ae Wenn Funktion mit zwei Bedingungen und Prozentberechnung
Keine neuen Beiträge Excel Formeln: Werte auslesen und anzeigen 5 El-Gringo 2733 29. März 2005, 18:05
El-Gringo Werte auslesen und anzeigen
Keine neuen Beiträge Excel Formeln: Werte aus einer Tabelle nach mehreren Kriterien auswerten 3 Daniel 2901 07. März 2005, 14:15
Hübi Werte aus einer Tabelle nach mehreren Kriterien auswerten
Keine neuen Beiträge Excel Formeln: Zwei Sverweis-Formeln verbinden, geht das?? 2 sunset 2029 23. Feb 2005, 10:36
sunset Zwei Sverweis-Formeln verbinden, geht das??
Keine neuen Beiträge Excel Formeln: Formel, wenn Zelle mehrere Werte enthält 2 Angeli 1148 15. Feb 2005, 08:50
Angeli Formel, wenn Zelle mehrere Werte enthält
Keine neuen Beiträge Excel Formeln: Werte aus einer Matrix auswählen, vermute VERWEIS o. INDEX? 2 optimist 1666 09. Feb 2005, 12:30
optimist Werte aus einer Matrix auswählen, vermute VERWEIS o. INDEX?
Keine neuen Beiträge Excel Formeln: gemeinsame Formel fuer alle Sheets 1 Gast....... 505 05. Jan 2005, 13:47
Arnim gemeinsame Formel fuer alle Sheets
Keine neuen Beiträge Excel Formeln: zwei zellen gleichzeitig mit zwei anderen zellen vergleichen 4 excelfinki 2684 23. Dez 2004, 17:01
excelfinki zwei zellen gleichzeitig mit zwei anderen zellen vergleichen
Keine neuen Beiträge Excel Formeln: Verschiedene Werte in einer Spalte 4 Toledo 2408 23. Nov 2004, 19:54
Toledo Verschiedene Werte in einer Spalte
Keine neuen Beiträge Excel Formeln: Höchste werte automatisch herausfiltern 2 tonictyran 1072 01. Nov 2004, 16:43
tonictyran Höchste werte automatisch herausfiltern
Keine neuen Beiträge Excel Formeln: Werte aus Liste mit Validation in Zelle 1 Gast 2516 18. Okt 2004, 15:20
icke Werte aus Liste mit Validation in Zelle
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft-Excel Diagramme