Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
400to404
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wörter in verschiedenen Spalten Kombinieren

Wörter in verschiedenen Spalten Kombinieren
22.03.2004 10:41:28
Michael Kohlfürst
Guten Morgen,
ich suche schon lange nach einer einfachen Lösung Wörter aus 2 und mehr Spalten zu kombinieren, da ich dies für meine Arbeit bräuchte. Ich denke mir, dass dies mit Excel lösbar sein sollte und vielleicht gibt es sogar einen Standard dafür. Ich habe nun als Beispiel eine Tabelle mit 3 Spalten und jeweils 3 Zeilen (Zellen) verwendet
Spalte1 Spalte2 Spalte3
Wort 11 Wort 21 Wort 31
Wort 12 Wort 22 Wort 32
Wort 13 Wort 23 Wort 33
Aufgabe 1:
Ich möchte nun folgende Ausgabe in 3 Zellen (Zeilen) haben
Wort 11 Wort 21 Wort 31
Wort 12 Wort 22 Wort 32
Wort 13 Wort 23 Wort 33
Aufgabe 2:
Ich möchte nun alle aus den 3 Spalten möglichen Kombinationen haben. Dies ergibt bei 3 Spalten mit 3 Werten also insgesamt 9 Zellen.
Das besondere daran sollte sein dass ich die Anzahl der Spalten oder Zeilen variieren könnte. Ich denke, dass man für Aufgabe 1 und 2 jeweils ein eigens Excel benötigen wird.
Danke vielmals
Michael

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
22.03.2004 11:42:35
Hans W. Hofmann
Hallo Michael,
so ganz blick ich Deine Aufgabenstellung net.
Grundsätzlich ist die INDEX-Funktion tauglich, die mittels des Verkettungsoperator & die Wörter montiert...
Gruß HW
AW: Wörter in verschiedenen Spalten Kombinieren
22.03.2004 12:29:46
Michael Kohlfürst
Hallo Hans,
deine Ausführungen sind nur Fachchinesisch für mich - bitte schau mein Level an ;-)
Ich habe 2 verschiedenen Anforderungen wenn ich Tabellen mit Wörtern bekomme. Erstens innerhalb einer Zeile kombinieren und zweitens die Zellen aller Spalten miteinander kombinieren.
1. Möglichkeit
A1 B1 C1
A2 B2 C2
2. Möglichkeit
A1 B1 C1
A2 B2 C2
A2 B1 C1
A1 B2 C2
A1 B2 C1
A2 B1 C2
Bringt es das klar rüber? Ich schick ein Excel mit rauf.
https://www.herber.de/bbs/user/4543.xls
Grüße
Michael
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
22.03.2004 13:03:17
Uwe
Da Du auf den von Dir angegebenen Level verweist, Michael,
nehme ich an, dass Dir eine VBA-Umsetzung derzeit noch keinen Verständnisgewinn bringt.
Um es also Schrittweise anzugehen, verwendest Du am besten den Zellenbefehl: VERKETTEN(...), dessen Wirkungsweise Du in der Online-Hile beschriben findest.
Zur Aufgabe 1 verwendest Du in der Zielzelle folgenden Eintrag:
=VERKETTEN(A1;" ";B1;" ";C2)
Nachdem Du diesen Befehl auf die nachfolgenden zwei Zeilen kopierst, ist die erste Aufgabe gelöst.
Für das Lösen der zweiten Aufgabe, kannst Du nun 9 Zeilen Zellen mit den entsprechend abgewandeten Formeln, die die veränderten Zellenordinaten (Index der Zellen) betreffen, belegen.
Gruß,
Uwe
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
23.03.2004 10:40:12
Michael Kohlfürst
Hallo Uwe,
ein großes Dankeschön - die Aufgabe 1 ist mit Bravour gelöst und wie immer sooo simpel - wenn man es weiss.
Die Aufgabe 2 ist komplizierter und komplexer. Ich habe nicht immer 3 Reihen und auch nicht immer gleich viele Wörter in einer jeden Reihe. Manchmal stehen in der ersten Reihe 35, in der zweiten 3 und in der dritten Reihe dann 2 Wörter. Das müssten laut Adam Riese dann 210 Kombinationsmöglichkeiten ergeben. Das ist die große Aufgabe auch wenn es variabel wird. Wenn ein Feld leer bleibt, schreibt er halt einen Leerplatz.
Grüße
Michael
AW: Selektive Synergieeffizienz
23.03.2004 20:41:19
Uwe
Hallo, Michael!
Mit diesen Erweiterungsangaben wächst Deine Aufgabestellung zu einer Projektbeschreibung aus, denn ich sehe hier nur den Lösungsweg über die Makro-/VBA-Programmierung.
Zudem ist sie, die Aufgabe, gegenüber der ersten Formulierung nun nicht mehr so eindeutig, denn war es vorher klar, dass eine neue Textkette aus jeweils einer Anzahl von Worten bestand (=Anzahl der Spalten), bei der es für jedes Wort einen festen Platz in der Kette und eine feste Anzahl von Möglichkeiten gab (=Anzahl der Zeilen), so kann diese Annahme jetzt nur noch bedingt angewendet werden.
So wäre eine Verkettungsmachine mit Eigenschaftswörter und Substantivpartikel

systematisierte | Motivations     | effizienz
selektive       | Kommunikations  | konzeption
permanente      | Interpretations | potenz
ambivalente     | Synergie        | relevanz

durchaus eindeutig. Erweitere ich hingegen sie Liste durch die Zeile

               | Beziehungs      |
so sind Sonderbehandlungen notwendig. Weiterreichender werden die "Umbauten", wenn einzelne Zeilen zusätzlich Spalten erhalten.

Ich habe für die Ausgangsfrage (feste Anzahl der Spalten = 3) einmal eine Tabelle angelegt, in der Du in dem Zellenbereich F2 bis H2 und darunter, eine mögliche Indexberechnung als Zellenformel siehst (Kommentar zur Zelle E2 bitte beachten). Mit diesen Ergebnissen ist es möglich die Zellenformeln in der Spalte J zu schreiben, die mit den Befehlen INDIREKT und VERKETTEN den entsprechenden Text zusammen setzen.

https://www.herber.de/bbs/user/4595.xls

Die Anzahl der zu berücksichtigenden Zeilen wird als Eingabe in die Zelle E1 verlangt. In E2 wird die Eingabe auf gültige Grenzen geprüft und gegebenen falls korrigiert. Mit den Inhalt der Zelle E2 werden die Indexspalten F, G und H berechnet.

Um dies nun noch allgemeiner zu halten, würde es vermutlich darauf hinauslaufen, dass man eine rekrusive VBA-Routine schreibt, die so alle Kombinationen liefert. Alternativ könnte die Indextabelle analog zu den Zellenformeln aufgebaut werden. Auf die weitere Ideendarstellung zur Umsetzung in VBA verzichte ich, da die fertige Lösung bestimmt nicht dazu geeignet ist, als Einführungsbeispiel in die VBA-Programmierung zu dienen.

Wie einleitend beschrieben, das Ganze ist eine Projektaufgabe, die normale Hilfestellung übersteigt. Vielleicht konnte ich dennoch ein paar Anstöße liefern.

Gruß!

Anzeige
AW: Selektive Synergieeffizienz
24.03.2004 08:22:25
Michael Kohlfürst
Guten Morgen Uwe,
nochmals vielen Dank. Du hast mir die Augen wieder ein Stück geöffnet und ich habe nun eine Vorstellung davon was da notwendig sein wird. Lustigerweise lässt sich diese Aufgabe mit PERL/CGI wesentlich einfacher lösen. Ich möchte jedoch endlich diese Funktion auch offline nutzen können.
Jetzt muss ich mich mal hinsetzen und nachdenken ob ich das programmieren lassen soll.
Danke
Michael
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 09:20:54
Hans W. Hofmann
Entschuldige, wenn Dich überfordert habe!
Aber kommen wir nochmal auf die Problemstellung zurück.
Alle Kombinationen von n Elementen nennt man Permutationen und ihre Anzahl ist n!
123
132
213
231
312
321
Mein Verständis und Deine Problemstellung sind irgendwie nicht deckungsgleich.
Wat nu?
Gruß HW
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 10:06:32
Uwe
Hallo, HW,
wenn ich kurz hier darstellen darf, wie ich die Aufgabe verstanden habe, dann geht es nicht um das Problem, wie Stelle ich n Elemente in all ihren Anordnungsmöglichkeiten da, denn dann hättest Du natürlich recht mit dem hinweis auf die Permutation, die zur Anzahl n! führt, sondern es geht um die Frage, welche möglichen Ketten sich bei einer {n;m}-Matrix ergeben, wenn man die m Elemente der Spalte i=1...n, mit all den Kombinationen verknüpft, die sich aus den übrigen n-1 Spalten ergibt.
Dieses Prinzip ist in den Walzen der "einarmigen Banditen" zu finden. Jede der n Walze oder Scheibe (in der Tabelle sind es die Spalten) hat m Elemente (in der Tabelle die Zeilen). Mit dieser Konstruktion liefern z.B die Spalte n genau m verschiende Möglichkeiten.
Diese m Möglichkeiten lassen sich ihrerseits wieder mit m Elementen der Spalte (n-1) kombinieren, so dass sich eben m*m = m2 Möglichkeiten für die beiden letzten Spalten ergeben.
Jeder dieser m*m Möglichkeiten läßt sich nunaber wieder mir den m Möglichkeiten der Spalte n-2 kombinieren, womit die Gesamtzehl nun auf m*m*m = m3 angewachsen ist.
Zu erkennen ist also, das bei einer Matrix von {n;m} es somit mn verschiedene Ketten gibt.
Dies gilt natürlich nur dann, wenn die Matrix voll besetzt ist bzw. Leerzellen als eigenständiges Partikel betrachtet werden. Deswegen scheint es mir ja auch erfordelich, die Randbedingen der Erweiterung der Aufgabe noch genauer darzustellen (wenn die erste Zeile z.B. 35 Elemnte hat, stahen dann die Elemente in den Zeilen, die weniger Elemente aufweisen, in den Spalten, wie auch das Wort, das in der ersten Spalte ersetzt werden soll?
Gruß,
Uwe
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 10:25:26
Michael Kohlfürst
Hallo Hans,
ich habe mit Uwe bereits zwei Nachrichten zu diesem Thema angeschaut. Die Problematik bei den Permutationen ist einfach, dass ich eimal in der ersten Reihe 40 Wörter und das andere Mal nur 20 Wörter stehen habe.
Genauso verschieden ist auch die Anzahl der Zellen in den Spalten die ebenfalls variieren können. Also kann es auch mal sein, dass ich bis zu 5 Spalten habe und die haben 120,10,8,25,4 Zellen Einträge. Das die Anzahl der Wörter und Spalten verschieden ist macht die ANgelegenheit schwierig.
Danke
Michael
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 13:23:03
Hans W. Hofmann
Hm, wenn Du ein Pearlscript dazu hast, dann könnte man das evtl. auf VBA umlernen. Kannst Du das mal hier rein stellen? Ansonsten müsste man mal einen Algorithmus zur berechnung der m^n-Variationen erstellen. Der Rest wäre dann ein reines Zeitproblem :-)...
Gruß HW
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 13:57:15
Michael Kohlfürst
Ich würde dir das Perl Script gerne geben - es ist jedoch Bestandteil einer umfassenderen Software und der Entwickler des Scripts möchte nicht, dass ich sein Script zur Verfügung stelle.
Vielen Dank, dass du dich so dahinter klemmst eine Lösung für mich auf die Beine zu stellen. Ich werde einfach mal bei meinem Programmierer nachfragen ob er die Suchbegriff Kombi Funktion extrahieren kann - dann melde ich mich wieder.
Danke
Michael
AW: Wörter in verschiedenen Spalten Kombinieren
24.03.2004 21:15:17
Uwe
Hallo!
Die Idee, sofern nicht über Zufallsindexwerte eine zufällige Kette ermittelt wird ( i=int(m*rnd())+1 für jede Spalte i=1..n), ist wohl einen Vektor(1:n) zu kreieren, in dem man jeweils in einer der beiden Begrenzungzellen in jedem Schritt eine 1 addiert und prüft, ob m überschritten wird.
Wird der Wert m überschritten ist ein Übertrag in die nächste Indexspalte erforderlich, während die gewählte Randspalte auf 1 gesetzt wird. Ist ein Übertrag erfordrlich, ist solange weiter zu verfahren, bis in allen Stellen des Vektor gültige Indexwerte stehen (Das Ende wird über die Gesamtanzahl der Möglichkeiten gwährleistet).
Ich habe hier mich für die Spalte/Stelle n im Vektor als Inkremierungsstart entschieden, um die Ähnlichkeit mir der Addition im Zahlensystem leichter erkennbar werden zu lassen.

 1 1 1
+    1
=1 1 2
+    1
=1 1 3
+    1 = 1 1 4>3
=1 2 1
....




Private Sub builtNextIndexVector(ByRef vIdx() As Integer, m As Integer, n As Integer)
Dim LastColumn As Integer
Dim i As Integer
LastColumn = n
i = vIdx(LastColumn)
Do
If i + 1 > m Then
vIdx(LastColumn) = 1
LastColumn = LastColumn - 1
i = vIdx(LastColumn)
End If
Loop Until i + 1 <= m
vIdx(LastColumn) = vIdx(LastColumn) + 1
End Sub


Im übrigen ist jedoch in den anderen Programmteilen viel "Organisationsarbeit" zu programmieren, so dass mein Beispiel eben nur dazu dienen könnte, als Grundidee verwendet zu werden, die man der konkreten Realisierung (beabsichtigtes Layout bei Berücksichtigung der konkreten Vorgaben) dienen könnte. Ich erspare mir vorerst das Hereinstellen, da die Programmierung nicht gerade optimal und lehrbeispielhast kommentiert ausgearbeit ist.
Gruß,
Uwe
Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
25.03.2004 20:08:44
Hans W. Hofmann
Wie sich die Gedankengänge gleichen. Hab den Übertrag nur von "vorn" reingeschoben ;-)!
Die Prozedur writep soll dann den Vektor geeignet ins Tabellenblatt schreiben. Ich fürchte nur, dass Michael der Platz dazu ausgehen wird, Potenzen wachsen halt schnell...
Gruß HW

Sub pnm(n As Integer, m As Integer)
Dim i As Integer
ReDim idx(1 To m)
For i = 1 To m: idx(i) = 1: Next: writep idx()
While WorksheetFunction.Sum(idx) < n * m
If idx(1) < n Then
idx(1) = idx(1) + 1
Else
i = 0
While idx(i + 1) >= n
i = i + 1
idx(i) = 1
Wend
If i < m Then idx(i + 1) = idx(i + 1) + 1
End If
writep idx()
Wend
End Sub

Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
25.03.2004 22:42:24
Uwe
Stimmt, Hans W,
zumal Michael einmal von bis zu 35 Spalten schieb, die er zu berücksichtigen habe, und die Spaltenzahl ist der Exponent für die Zeihlenanzahl, die als Basis fungiert.
Da bleibt eben nur noch das Detailproblem ordentlich in den anderen Programmteilen zu verwalten und die Ketten unberücksichtigt zu lassen, für die sich kein Zellenwert in den zusammenhängenden Spaltenzellen eingetragen ist. Das ist eben das, was ich als eigenständiges Projekt bezeichnet habe, so dass hier wohl alle Hilfe beschrieben wurde, die im Zusammenhang mit Grundlage der Ausgangsfrage gegeben werden konnte.
Gruß,
Uwe

Anzeige
AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 07:00:22
Michael Kohlfürst
Hallo Uwe und Hans,
ich dachte nicht, dass das so kompliziert wird. Bisher waren Lösungsansätze mit Excel so einfach. Das hängt wohl damit zusammen ob von Microsoft die Aufgabe mit eingeplant wurde oder nicht. Ich war der Meinung, dass es hier auch was gäbe wie z.B. ein anderes gelöstes Problem, welches zählt, wie oft ein Begriff in meiner Liste vorkommt.
Grüße
Michael
AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 10:36:59
Uwe
Nein, Michael,
das Problem ist nicht so kompliziert, wenn ich es denn bisher richtig verstanden habe. Nur, so wie ich es verstenden habe, ist die Anzahl der zu ermittelen Ketten eben so gewaltig, ebend mn, wobei n für die maximale Anzahl der Spalten steht, die in dem Rotationprozeß einbezogen werden.
Nehmen wir an, Du hast 35 Spalten jeweils mit einem Wort gefühlt und willst nun das 12 Wort (12. Spalte) durch vier verschieden Begriffe ersetzen, so ist n=1 und m=4 und Du erhälts vier verschiedene Ketten.
Erweiterst Du Deine Aufgabe, indem Du nun auch noch für die 21 Spalte wieder vier verschiedene Werde zusätzlich vorsiehst, dann ist m weiterhin 4 und n wird zu 2, Du erhälst also 42 = 16 Zeichenketten.
So kann man sich die Aufgabe weiter aufbauen und der Ansatz, zur Ermittlung der Anzahl der Zeichenketten wird zur Summenbildung, sobald Du m für die verschieden Spalten unterschiedlich belegen willst. Ungünstigst währen also mn Kombinationen darzustellen, mit m gleich der größten Anzahl von Ersatzworten aus allen Spalten.
Daher betonte ich schon, dass hier eine Projektaufgabe vorliegt, in der abzuklören ist, welche Rahmenbedingungen es unbedingt zu beachten gilt und wie die Fülle aufgabengerecht begrenzt werden kann. Das hat nicht speziell mit EXCEL zu tun, das gilt für jedes Projekt, dass man sich besprechen muss, was gewünscht, was nötig und was machbar ist.
Das diese Aufgabe eine Andere ist, als das blose Feststellen von Häufigkeiten, wird nun letztendlich herausgearbeitet wirden sein.
Gruß!
AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 10:38:36
Hans W. Hofmann
Hm, was hat Microsoft damit zu tun?
Eine Tabellenkalkulation ist nun mal kein für eine spezielle Fragestellung gebautes Werkzeug. Dein Problem ist, wie oft in der Statistik, ein reines Mengenproblem, das schnell über alle Grenzen wächst...
PS: Was ist das für ein Problem, das obwohl gelöst, weiter ein Problem ist :-)
Gruß HW
AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 10:46:53
Michael Kohlfürst
Ja, ich war auch in NLP und weiss daher, dass es keine Probleme sondern nur Aufgaben gibt die gelöst werden.
Zu Beginn dieses Threads dache ich jedoch noch, dass es in der Excel Navigation einen Punkt zur Auswahl gibt, der dann alle Spalten miteinander verknüpft. Ihr merkt an dieser Aussage welches Level ich als Excel-Benutzer habe.
Ein Kollege hat mir heute Morgen eine Excel gesandt in welcher 6000 Kombinationen drinnen waren die aus 3 Spalten gebildet wurden. Nun warte ich mal ab wie das Arbeitsfile aussieht. Ich lass es euch wissen.
Grüße
Michael
AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 12:07:30
Uwe
Aber Michael,
diese Tabelle, 3 Wort-Spalten, hättest Du doch bereits hier https://www.herber.de/bbs/user/4595.xls anwenden können.
Wenn Du die Wort-Zeilen um drei Zeilen erweiterst und die Zellenformel, wie im Kommentar beschrieben nach unten ziehst, dann erhälst Du 5832 Kombinationen. Bis zu 39 Zeilen können auf einem Excelblatt verarbeitet werden, danach versagt die Zellenformel.
Das Verketten von Zelleninhalten geht über die bereits angeschriebene Zellenformel.
Gruß!

AW: Wörter in verschiedenen Spalten Kombinieren
26.03.2004 12:20:00
Michael Kohlfürst
Hallo Uwe,
das werde ich auch in den nächsten Tagen mal machen. Ich muss mich da erst mal spielen und schauen wie ich die 3 Spalten mit 39 Zeilen aufblasen kann. Ich muss mir das in Ruhe durchschauen. Wenn man bisher so wenig damit gearbeitet hat braucht man etwas länger bis man "einfach nur versteht" wie es arbeitet. Ausserdem fehlen mir auch ein wenig die Excel Grundkenntnisse um einfach nur herumzuziehen :-?
Danke dir!
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige