Fast 2k verschiedene Werte in Spalte A, für jeden gibt es genau 1k-Werte in Spalte B, die sich möglicherweise wiederholen.
Gibt es einen automatisierten Weg, dies zu tun?
Verwenden Sie eine PivotTable!
Eric F vor 6 Jahren
1
Ähnliche Frage hier: https://superuser.com/q/244507/76571 Sie können wahrscheinlich die Lösungen dort verwenden und dann am Ende einen einfachen Transponierungsschritt hinzufügen, um das zu erhalten, was Sie möchten.
Excellll vor 6 Jahren
1
Eine PivotTable speichert die Daten nicht. Ich kann nur bestimmte Funktionen extrahieren, die für alle Spalten gelten (Min, Max, Durchschnitt, Stddev, Summe, Produkt usw.).
RSFalcon7 vor 6 Jahren
1
Ich habe auch "vlookup" ausprobiert, aber es findet nur den letzten Wert von Spalte B für jeden Wert von Spalte A
RSFalcon7 vor 6 Jahren
0
@Excellll in der Tat würden diese Antworten mein Problem lösen, aber weder das VBA-Skript noch die Google Spreadsheet-Lösung waren in der Lage, die Datenmenge zu verarbeiten. Sie stürzen mit Speicherfehlern ab (obwohl ich noch genügend freien Speicher habe)
RSFalcon7 vor 6 Jahren
1
Welche Version von Excel verwenden Sie?
Excellll vor 6 Jahren
0
Excel 2016 von Office 365
RSFalcon7 vor 6 Jahren
0
Ich weiß, dass Sie eine Python-Lösung haben, aber Sie können dies auch mit "Power Query" tun. "PQ" kann in der 32-Bit-Version etwa 1 GB Daten verarbeiten. viel mehr in der 64-Bit-Version.
Ron Rosenfeld vor 6 Jahren
0
Das Problem war weder Speicher noch CPU. Zumindest im Task-Manager war das Notebook zu ~ 50% ausgelastet, nach Abstürzen von Excel sinkt es auf ~ 45%.
RSFalcon7 vor 6 Jahren
0
2 Antworten auf die Frage
1
RSFalcon7
Dieses Python-Skript hat den Trick:
import numpy as np data = np.genfromtxt('inputcsv', delimiter=',') keys = sorted(set(data[:,0])) result = np.array([]) for k in keys: col = data[np.where(data[:,0] == k)][:,1] if not result.any(): result = col else: result = np.vstack((result, col)) print('key finished'.format(k)) np.savetxt('final.csv', np.transpose(result), delimiter=',')
Sie haben eine Lösung für Ihr Problem gefunden, das ist großartig! Warum posten Sie keine Auszüge aus den Eingabe- und Ausgabedateien, die alle prüfen können? Und vergessen Sie nicht, Ihre Antwort zu akzeptieren, wenn sie für Sie funktioniert.
simlev vor 6 Jahren
0
Weil die Beispiele für Eingabe und Ausgabe in der Frage stehen
RSFalcon7 vor 6 Jahren
0
Ich habe Ihnen vorgeschlagen, tatsächliche Eingabe- und Ausgabedateien zu posten, da ich versucht habe, das Skript gegen Ihre geposteten Eingaben auszuführen, und es wird ein Fehler angezeigt (https://pastebin.com/RybF7CVH). Offensichtlich erwartet das Skript eine CSV-Eingabe, so dass [hier] (https://pastebin.com/zf613j3w) die Eingabe entsprechend formatiert ist. Sie erwähnen, dass es Tausende von Spalten-A-Werten gibt, also habe ich nur einen hinzugefügt und [this] (https://pastebin.com/Ls8Gs8YJ) ist der Fehler, den ich erhalten habe.
simlev vor 6 Jahren
0