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?
microsoft-excel
Yo444
quelle
quelle
Antworten:
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 :).
quelle