2 Zahlenpools miteinander vergleichen -> Ausgabe, der Zahlen die in Pool2 fehlen

o0Pascal0o

Vice Admiral Special
Mitglied seit
24.01.2004
Beiträge
519
Renomée
1
Standort
NRW
Hallo,

ich habe 2 Pools an Zahlen. Pool1 hat alle Zahlen. Pool2 fehlen einige. Wie kann ich den Computer jetzt sagen, dass er die Zahlen ausspucken soll, die im Zahlenpool2 fehlen(im Vergleich zu Zahlenpool1).

Kann ich das mit Excel machen oder per Batch-Befehl, oder wie?

Beispiel(könnten natürlich auch 2 Spalten(Pool1 & Pool2) in Excel sein):

Pool1.txt
Code:
22
32
56
67
78

Pool2.txt
Code:
22
32
67
78

Als Ergebnis möchte ich die Zahl '56' erhalten.

Geht das?

Vielen Dank - auch wenn es beim Grübeln geblieben ist!

Pascal
 
Mmh, nur ein leichter Ansatz von mir. Wie wär's mit Sortieren der Zahlenpools und dann eine Differenzmenge (Restmenge) bilden?
Im Excel kann man ggf. auch einfach die Funktionen benutzen: stimmt der Inhalt der Zelle der Spalte 1 nicht mit dem Inhalt der Zelle der Spalte 2 überein, ist sie nicht enthalten. Geht aber nur für die erste Nicht-Übereinstimmung...
Ich hab keine Ahnung, ob es schon fertige Implementationen für Differenzmengen für diverse Programmiersprachen gibt, aber vorstellen kann ich's mir schon.

Mit Batch wirste da nicht weit kommen, aber mit AutoIt kann man schon ne Menge machen, wenn man nicht gleich den Compiler oder die IDE rauskramen will.

MfG Dalai
 
Mmh, nur ein leichter Ansatz von mir. Wie wär's mit Sortieren der Zahlenpools und dann eine Differenzmenge (Restmenge) bilden?
Hmmm... Auto-It - nur wie?
Die anderen Sachen sind mir auch schon in den Kopf gekommen - aber bring ja nicht viel (bis zur ersten differenz in Excel z.B.)
Aber das mit dem Sortieren und Differenzmenge, was ich zitiere? Was soll das bringen?

Gruß

Pascal
 
Ganz einfach, die Differenzmenge besteht aus jenen Zahlen, die nicht in beiden Mengen enthalten sind also !A oder !B sind...

Die Frage die sich mir stellt ist WIE du es nun lösen willst. Willst du das mit Excel lösen oder mit der Programmiersprache XYZ. Einfallen würde mir unter linux einfach ein Script das die Zahlen (die sich jeweils in einer Datei befinden) in der Datei sortiert und dann das Programm diff verwendet um die Unterschiede herauszufinden...war jetzt allerdings nur eine "schnell mal drüber nachgedacht"-Idee ;)
 
Pascal1 schrieb:
Hmmm... Auto-It - nur wie?
Je nachdem, wo die Zahlenpools vorliegen (Datei oder woanders), musst du sie einlesen - ich schlage dafür ein Array vor.
Dann nimmst du dir eine (einfache oder doppelte) for-Schleife und die Funktion _ArraySearch() aus den UDFs und speicherst Stück für Stück die Ergebnisse in ein drittes Array. In Array3 sind dann die Zahlen gespeichert, die nur in Array1 enthalten sind, sofern man den Algorithmus richtig schreibt.

Pascal1 schrieb:
Aber das mit dem Sortieren und Differenzmenge, was ich zitiere? Was soll das bringen?
OK, das Sortieren ist nicht zwingend notwendig. Aber dass du eine Differenzmenge suchst, ist dir hoffentlich klar, oder?

MfG Dalai
 
ja, Differenzmenge = die Zahlen, die nicht in beiden Pools vorhanden sind. So ist das jetzt schon klar.

Aber ich bin nicht der Überprogrammierer, dass ich mal eben diese Arraygeschichte machen könnte. Meine Arrays sind die Exelspalten ^^ Nur kann ich da jetzt keine Schleife ablaufen lassen :(
 
Pascal1 schrieb:
Aber ich bin nicht der Überprogrammierer, dass ich mal eben diese Arraygeschichte machen könnte.
Wie Blutsturz schon erwähnte, sollte erstmal klar sein, wo und wie genau du die Daten vorliegen hast und womit du sie verarbeiten kannst/musst und auch wo sie letztlich landen sollen/müssen. Vorher braucht man sich keine Gedanken über die Durchführung zu machen.

MfG Dalai
 
Dürfte doch mit einem SVERWEIS in Excel ganz schnell gelöst sein!

Tabelle 1
1
2
3
4

Tabelle 2
1 x
2 x
4 x

=SVERWEIS(A1;Tabelle2!$A$1:$B$8;2;)

Beispiel im Anhang erst von .txt in .xls ändern!
 
Also die Zahlenreihen habe ich in einer Textdatei vorliegen.

Ich habe sie mal in Excel in die Tabelle kopiert und auch die Sverweis-Formel runterkopiert. Auch habe ich in Tabelle2 die X-es runterkopiert(keine Ahnung - sind die wichtig?). Aber es funktioniert nicht, bei fast allen Zahlen schreibt der mir jetzt #NV in Tabelle1 in der zweiten Spalte, obwohl diese Zahlen in beiden Tabellen in der ersten Spalte vorhanden sind.

Warum zeigt mir Excel in Tabelle1 überigens in Spalte 2 X-Zeichen an, obwohl dort eine Formel drinsteht, zumindest in den oberen 8 Zeilen?

Vielen Dank schonmal,

Pascal
 
Tabelle 1 soll die vielen Zahlen drin sein.
Tabelle 2 dann die mit weniger Zahlen und einem "X".

Der Sverweis soll prüfen ob es die Zahl in zB A1 in der ganzen Tabelle 2 Finden kann und dann den Wert aus der Spalte B (in dem Fall ein "X") ausgeben.
Somit sind alle Zahlen bei denen ein #NV steht nicht vorhanden.

Kannst mir auch gerne eine PM schicken.
Bekommst dein meine EMail und ich versuch das schnell mal zu machen. ;)

[...]zumindest in den oberen 8 Zeilen?
Das liegt wahrscheinlich daran, das du die Formel so gelassen hast wie ich sie geschrieben habe.
Du musst sie natürlich um die Größe deiner Tabelle 2 ändern.
 
Zuletzt bearbeitet:
oh, vielen Dank - jetzt habe ich es auch kapiert :)
Funktioniert einwandfrei!

Gruß

Pascal
 
Noch besser, freut mich. 8)
Hatte nämlich das Gefühl, es wurde hier etwas zu kompliziert gedacht!
 
Doc_Evil schrieb:
Hatte nämlich das Gefühl, es wurde hier etwas zu kompliziert gedacht!
Nö, ich hab nicht kompliziert gedacht. Ich kenne nur Excel nicht gut genug, und das ist mir noch nicht mal peinlich. Dafür kenne ich mich in anderen Bereichen aus. Demzufolge habe ich eine Möglichkeit aus dem Bereich vorgeschlagen, in dem ich mich gut auskenne.

Naja, freut mich, dass das Problem gelöst werden konnte :).

MfG Dalai
 
Das sollte ja wohl keinem peinlich sein oder? *noahnung*

Je nachdem, wo die Zahlenpools vorliegen (Datei oder woanders), musst du sie einlesen - ich schlage dafür ein Array vor.
Dann nimmst du dir eine (einfache oder doppelte) for-Schleife und die Funktion _ArraySearch() aus den UDFs und speicherst Stück für Stück die Ergebnisse in ein drittes Array. In Array3 sind dann die Zahlen gespeichert, die nur in Array1 enthalten sind, sofern man den Algorithmus richtig schreibt.
Nicht kompliziert? ;D;)
 
Doc_Evil schrieb:
Nicht kompliziert?
Nö. Die Umschreibungen für Algorithmen sind oftmals viel länger und schwieriger zu lesen/verstehen als wenn man den Algorithmus selbst liest oder schreibt. Ich hab jetz auch keine Lust, das Teil als Pseudo-Code aufzuschreiben, zumal das Problem ja gelöst ist.

MfG Dalai
 
Nö. Die Umschreibungen für Algorithmen sind oftmals viel länger und schwieriger zu lesen/verstehen als wenn man den Algorithmus selbst liest oder schreibt. Ich hab jetz auch keine Lust, das Teil als Pseudo-Code aufzuschreiben, zumal das Problem ja gelöst ist.

MfG Dalai
Ihhhhhhh, nicht gleich zickig werden! ---> ;D;)
 
Zuletzt bearbeitet:
Nicht kompliziert? ;D;)

Wenn es im Forum "Programmierung" zu kompliziert ist, wenn man umschreibt, dass die Zahlen in ein Array eingelesen und verglichen werden, dann stimmt da was mit dem Forumstitel nicht ;)
 
Wenn es im Forum "Programmierung" zu kompliziert ist, wenn man umschreibt, dass die Zahlen in ein Array eingelesen und verglichen werden, dann stimmt da was mit dem Forumstitel nicht ;)
recht hat er*lol*
 
Jupp, das hat er! :-[;)

Planet 3DNow! Forum > Software und Treiber > Programmierung

Ich klicke immer auf "neue Beiträge". Da schaue ich dann nicht auf das Unterforum.
 
In Python könnt man das schön scripten.

Code:
file1 = open("datei1.txt", "r")
file2 = open("datei2.txt", "r")

list1 = file1.readLines()
list2 = file2.readLines()

print [x FOR x IN list1 IF x NOT IN list2]


Hab das jetzt schnell mal aus dem Kopf gemacht, müsste aber eigentlich passen.
 
Zurück
Oben Unten