Moin auch,
ich habe 2 unterschiedlich große, jeweils eindimensionale Arrays. Das eine enthält Soll-Werte (ArraySoll), das andere Ist-Werte (ArrayIst). Ich will jetzt vergleichen, ob Werte aus ArraySoll nicht in ArrayIst vorkommen und diese Werte auf einem Tabellenblatt ausgeben, aber ich bin zu doof dafür. Kann einer helfen?
R.
Hallo.
- Array steht in den Zellen A1-A100,
- Array steht in den Zellen B1-B100.
In Zelle C1 schreibst du: =WENN(ZÄHLENWENN($A$1:$A$100;B1)>0;"";B1)
und kopierst die Formel nach unten.
Wenn du das Ergebnis auf einem anderen Tabellenblatt haben willst, einfach ausschneiden und an der gewünschten Stelle wieder einfügen.
Etwas unschön ist, dass identische Werte mehrmals übernommen werden, und dass die Zeilennummern denen des Vergleichsarrays entsprechen, aber vielleicht reicht’s dir ja so schon.
Gruß,
Kannitverstan
Fast richtig. Ich hätte erwähnen sollen, dass ich das Ganze in VBA mache; das Makro enthält noch eine ganze Ecke anderes Zeug. Mit ZÄHLENWENN komme ich leider nicht weiter. Hast Du einen VBA Schnipsel dafür?
R.
Hättest du. Wobei du natürlich weißt, dass du von VBA aus auch auf die Ergebniszellen zugreifen kannst 
Wie auch immer:
Mach zwei verschachtelte for-Schleifen.
In der äußeren Schleife holst du den dem Schleifenindex entsprechenden Wert aus Array „soll“.
In der inneren Schleife vergleichst du diesen Wert mit allen Werten aus „ist“.
Bei Übereinstimmung beider Werte wird die innere Schleife abgebrochen („exit for“ heißt es hier glaub ich). Stimmt kein Wert aus „ist“ mit dem aktuellen „soll“ überein, ist der Schleifenindex der inneren Schleife um 1 höher als die obere Grenze, was du als Entscheidung nehmen kannst, den Wert in die Tabelle zu schreiben.
Gruß,
Kannitverstan
So würde ich es in php machen 
Jupp, habs hinbekommen. arrlangu 1 enthält die Sollwerte, Datenfeld die Ist-Werte. Ein Sollwert wird in variable miss geschrieben, wird der Wert in den Ist-Werten gefunden, wird der Inhalt von miss gelöscht. Wahrscheinlich nicht elegant, funktioniert aber.
'compare existing vs. necessary languages
Dim x As Long, y As Long, miss As String
For x = 1 To UBound(arrlangu1)
miss = arrlangu1(x, 1)
For y = 1 To UBound(Datenfeld)
If Datenfeld(y, 1) = arrlangu1(x, 1) Then
miss = ""
Exit For
End If
Next
'output missing languages
If miss <> "" Then
Worksheets(3).Activate
Cells(r, 1).Value = key
Cells(r, z).Value = miss
z = z + 1
Worksheets(1).Activate
End If
Danke für die Hilfe
R.