Clever-Excel-Forum

Normale Version: 2 Listen vergleichen und auswerten?
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Zitat:Kann man das auch ohne Power Query lösen?

Wenn ich die Wahl habe, etwas schnell und recht einfach mit Power Query zu lösen, oder mich stattdessen mit mit VBA abzumühen, dann entscheide ich mich immer für Power Query. Wobei dies nicht heißen soll, dass es mit VBA nicht auch schnell und einfach gehen kann.

Aber wer bis dato weder das eine noch das ander beherrscht, lernt schneller Power Query. Wobei auch dies nicht heißen soll, dass alle was mit VBA geht, auch mit Power Query realisiert werden kann.

Aber das, was mit Power Query geht, lässt sich oft recht schnell zusammenklicken.

Zitat:each List.Average({[Liste Woche 1], [Liste Woche 2]}), type number)

Sehr schön! Ist in diesem Fall einfacher als eine if-Abfrage.
Zitat:Kann man das auch ohne Power Query lösen?

Sofern dein Excel das schon hergibt, lässt sich das auch sehr gut mit LET lösen, wie du an den nachfolgenden Lösungen sehen kannst.

Dabei zeigt die Erste LET, alle erforderlichen Schritte einzeln an. 
PHP-Code:
=LET(
vorW;B2:B6;
lfdW;C2:C6;
allW;VSTAPELN(vorW;lfdW);
allT;EINDEUTIG(allW);
sum;WENN(ISTZAHL(VERGLEICH(allT;vorW;0));1;0)+WENN(ISTZAHL(VERGLEICH(allT;lfdW;0));2;0);
status;VERWEIS(sum;{1.2.3};{"Closed"."New"."Open"});
Hdr;HSTAPELN("Ticket-Nr.";"Status");
List;
HSTAPELN(allT;status);
Res;VSTAPELN(Hdr;List);
Res


Die Zweite Let ist etwas zusammengekürzt.
PHP-Code:
=LET(
vorW;B2:B6;
lfdW;C2:C6;
allT;EINDEUTIG(VSTAPELN(vorW;lfdW));
sum;WENN(ISTZAHL(VERGLEICH(allT;vorW;0));1;0)+WENN(ISTZAHL(VERGLEICH(allT;lfdW;0));2;0);
status;VERWEIS(sum;{1.2.3};{"Closed"."New"."Open"});
Res;VSTAPELN(HSTAPELN("Ticket-Nr.";"Status");HSTAPELN(allT;status));
Res


Garantiert gibt es auch noch andere Möglichkeiten, die Frage mit Formellösungen zu beantworten.
Besteht die Möglichkeit dies als Makro zu übernehmen?
Zitat:ich bin kompletter Excel Anfänger


Aber eine VBA-Lösung würdest du wohl inhaltlich verstehen und an deine tatsächlichen Gegebenheiten anpassen können?
Ich muss dies als Aufgabe erledigen. Ich hab jetzt die ganze zeit versucht die Power Query Schritt auf eine neue Datei anzuwenden, jedoch kriege ich dies nicht hin. Ich muss halt ein Makro erstellen für die von mir beschriebene Situation. Gibt es nicht die Möglichkeit dies mit den Basic befehlen zu erledigen sodass ich diese als Makro speichern kann?
Zitat:Ich hab jetzt die ganze zeit versucht die Power Query Schritt auf eine neue Datei anzuwenden, jedoch kriege ich dies nicht hin.


Eine Demomappe, bzw, Demomappen sollten zwar keine echten Daten enthalten, aber gerade wenn man noch Anfänger ist, von der Struktur und den Spaltentiteln immer dem Original entsprechen. Andernfalls gehen Helfer i.d.R. davon aus, die Fragesteller angebotene Lösungen adaptieren können!

Auch mit Power Query ist einfach dynnamisch wechselnde Quellen zuzuordnen. Es ist auch durchaus möglich, das wöchentlich die wechselenden Quellen automatisch erkannt werden. Somit diese oder auch fallweise andere für die Auswertung zu verwenden.
Ich versteh leider nur Bahnhof....
Ich will ja nur eine Möglichkeit wie ich Support-Ticketlisten miteinander vergleichen kann sodass mir der Status etc angezeigt wird und dies soll umgesetzt werden als Makro. Nur weiß ich jetzt nicht wie ich diesen Power Query Code überhaupt nutzen kann, weil man den ja nicht einfach copy pasten kann, da er die Liste dann nicht mehr findet....
(12.01.2023, 10:07)haze schrieb: [ -> ]Nur weiß ich jetzt nicht wie ich diesen Power Query Code überhaupt nutzen kann, weil man den ja nicht einfach copy pasten kann, da er die Liste dann nicht mehr findet....
Jeder Code muss angepasst werden.
Im PQ-Code z.B. die Tabellen- und Spalten-Bezeichnungen.
Ein Forum ist kein Excelkurs oder ExcelHandbuch Ersatz.
Hi,

nur weil du es bist hier mal ne Möglichkeit per Makro

Code:
Sub x()
Dim vListe1 As Variant, vListe2 As Variant, vOut() As Variant
Dim i As Long, z As Long
'Liste 1 und 2 in Array einlesen
vListe1 = Range(Cells(2, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2))
vListe2 = Range(Cells(2, 3), Cells(Cells(Rows.Count, 3).End(xlUp).Row, 3))
z = 1
'Vergleich Liste 1 mit Liste 2
For i = 1 To UBound(vListe1)
ReDim Preserve vOut(1 To 2, 1 To z)
If InStr(1, Join(Application.Transpose(vListe2)), vListe1(i, 1)) > 0 Then
  vOut(1, z) = vListe1(i, 1)
  vOut(2, z) = "open"
Else
  vOut(1, z) = vListe1(i, 1)
  vOut(2, z) = "close"
End If
z = z + 1
Next

'Vergleich Liste 2 mit Liste 1
For i = 1 To UBound(vListe2)
  If InStr(1, Join(Application.Transpose(vListe1)), vListe2(i, 1)) = 0 Then
    ReDim Preserve vOut(1 To 2, 1 To z)
    vOut(1, z) = vListe2(i, 1)
    vOut(2, z) = "new"
    z = z + 1
  End If
Next

'Ergebnis ausgeben
Cells(2, 6).Resize(UBound(vOut, 2), 2) = Application.Transpose(vOut)
End Sub

VG Juvee
Seiten: 1 2