Gibt es integrierte Funktionen in Excel oder sollte ich mit VBA gehen?

-2

Meine Frage ist, ob es irgendeine Funktion in Excel gibt, die mein Problem lösen kann, oder ob ich einen programmatischen Ansatz wählen sollte.

Ich habe eine Excel-Tabelle mit zwei Spalten. Diese Spalten stellen eine Beziehung zwischen den Elementen in der Zeile dar. Wir können es Links-Rechts-Beziehung nennen. Dies ist auf viele Zeilen verteilt, aber ich möchte es in einer einzelnen Zeile mit vielen Spalten auslegen.

Wenn ich die Zeilen habe:

123  -- 123A

123B -- 123A

123C -- 123B

Ich möchte eine Tabelle erstellen, die so aussieht:

123A -- 123 -- 123B --123C

Die Tatsache, dass 123 kein direktes mit 123B hat, ist irrelevant, nur dass sie alle mit 123A verwandt sind.

Gibt es irgendwelche eingebauten Funktionen, die ich benutzen kann oder sollte ich das mit vba lösen?

Yo444
quelle
Ich bin verwirrt, Sie möchten nur Zeichenfolgen zuordnen und sie in eine einzelne Zelle einfügen? Ohne Rücksicht auf Bestellung?
Raystafarian
Keine einzelne Zelle, kein anderes Buch / Blatt oder eine andere Tabelle. Spalte 2 enthält Duplikate. Jetzt möchte ich alle Einträge in Spalte 1, die einem Eintrag in Spalte 2 entsprechen, in eine neue Tabelle als einzelne Zeile, aber in separate Spalten einfügen. Überprüfen Sie dann rekursiv, ob der Eintrag aus Spalte 1 auch in Spalte 2 vorhanden ist. Hängt er diese in die neue Tabelle ein, und wiederholen Sie dies, bis keine passenden Einträge mehr vorhanden sind. Jeder eindeutige Eintrag in Spalte zwei würde dann alle miteinander verknüpften Einträge enthalten, aber die Reihenfolge ist nicht relevant, nur dass eine Beziehung besteht.
Yo444

Antworten:

0

Ich kenne keine eingebauten Funktionen, die die Arbeit erledigen. Die Herausforderung besteht darin, dass Sie eine beliebige Anzahl von Elementen in Beziehung setzen können und die Formelsprache Situationen nicht behandelt, in denen Sie die maximale Anzahl von Elementen im Voraus nicht kennen.

In ähnlichen Situationen habe ich VBA-Funktionen zum Speichern von Objekten benutzerdefinierter Klassen in Sammlungen verwendet. Die benutzerdefinierte Klasse kann eine Zeilennummer und den Text des Elements enthalten.

Dieses spezielle Problem besteht darin, "Äquivalenzklassen" aus den Gegenstandspaaren zu bestimmen. Jede Zeile der Ausgabe ist eine Äquivalenzklasse. Dies, Abschnitt 3 , ist eine Referenz, aber ich kann kein Codebeispiel aus der Hand finden. Ich weiß, dass es in Knuth ist, aber so ist alles :).

cxw
quelle
Vielen Dank, wir haben nicht nach einer Lösung gesucht, sondern wollten herausfinden, ob es Zeitverschwendung ist, zu programmieren, wenn möglicherweise einige Tools zur Verfügung stehen. Da das Format csv der Datei ist, gehe ich einfach mit c #. Dann kann ich einfach die Datei durchlaufen und jede Beziehung auf einen Stapel verschieben und von dort aus fortfahren. Sollte in der Lage sein, es schnell zu erledigen.
Yo444