Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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
Inhaltsverzeichnis

Alle Kombination von Städtenamen

Alle Kombination von Städtenamen
27.06.2017 19:37:28
Städtenamen
Hallo Excel-Freunde,
ich habe eine Liste von Städtenamen
Hamburg, Berlin, Köln, Frankfurt, Stuttgart, Nürnberg
Jetzt möchte ich alle Kombinations-Möglichkeiten aller Städte haben.
Mathematischer Ansatz
Hamburg 1
Berlin 2
Köln 4
Frankfurt 8
Stuttgart 16
Nürnberg 32
In einer Zelle sollen mir die Städtenamen in einer "Kombination" angezeigt werden
Für die Zahl 3 wäre es halt Hamburg, Berlin
Für die Zahl 14 wäre es Berlin, Köln, Frankfurt
Für die Zahl 19 wäre es Hamburg, Berlin, Stuttgart
usw
Wie kann ich jetzt per "Formel" (nicht VBA
ALLE Varianten untereinander anzeigen lassen ?
Benötige das später für einen Sverweis.
Freu mich auf einen Tipp :)
Besten Gruß
Werner

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Erklär erst mal die "Logik" ?
27.06.2017 22:47:41
WF
.
ach die Summen - das funktioniert per SOLVER
28.06.2017 06:29:43
WF
Hi,
in A1 bia A6 steht 1 2 4 8 16 42
B1 bis B6 sind leer
in C1 steht:
=A1*B1
bis C6 kopieren
in D1 steht =SUMME(C:C)
Das ist die Zielzelle
Solver-Bedingungen:
Zielzelle: $D$1
Wert anklicken und 19 (bzw. was Du willst)
veränderbare Zellen $B$1:$B$6
Nebenbedingunden (eine reicht):
$B$1:$B$6 = binär
und lösen
Die Städte dann mit INDEX/VERGLEICH
WF
Mal ohne Abwarten der HG-Logik, die ggf ...
28.06.2017 04:39:59
Luc:-?
…eine einfachere ProblemLösung ermöglichen würde, Folks:
Onur, du solltest zusätzlich zum Schluss, also außenrum, GLÄTTEN verwenden! Außerdem entsprechen die Städte­Kombinationen nicht der Vorgabe, was aber bei Bedarf wohl leicht zu ändern wäre.
Allerdings ist deine Einschränkung, Werner,
…per "Formel" (nicht VBA)… nicht eindeutig, denn man kann VBA auch per Formel anwenden, nämlich in Gestalt einer nutzer­defi­nier­ten Fkt (UDF), was ich mit folgd Fml, die deutlich kürzer als onurs ist, demonstriere (wenn du keine UDFs verwenden darfst, musst du auch nicht weiterlesen!):
C2:D2: {=WAHL({1.2};ZEILE(A1);VJoin(SVERWEIS(VSplit(VJoin(WECHSELN(VSplit(DEZINBIN(ZEILE(A1);6);"")*2^{5.4.3.2.1.0};0;"");;-1);;1);A$2:B$7;2);", "))}
Allerdings handelt es sich hierbei um eine MatrixFml, die außerdem (wegen SVERWEIS*) auch noch dual ist, d.h., sie liefert zwar nur einen Wert, benötigt aber trotzdem 2 Zellen, um das richtige Ergebnis zurückzugeben. Um die zusätzliche Zelle nicht zu verschwen­den (ihr müsste sonst ein LeerText zugewiesen wdn, um das Ergebnis nicht doppelt zu erhalten), habe ich ihr in der Fml die lfd Nr zugewiesen, aus der die Kombi generiert wird, wodurch die GesamtFml dann dank WAHL als normale plurale MatrixFml erscheint, obwohl sie das strenggenommen nicht ist.
Im Bereich A2:B7 befindet sich die Auflistung der StädteNamen, wobei in A* ihre CodeNr steht.
Die Kombis wdn komma-abstand-getrennt ausgegeben. Falls nur Leerzeichen erwünscht ist, kann das letzte Argument des 1.VJoin ganz weggelassen wdn.
* Mit INDEX könnte die duale Form nicht vermieden wdn, die Fml würde nur noch komplizierter, da INDEX in solchem Fall einer Fml-Ergänzung bedarf.
VJoin & VSplit (BspDatei m.d.UDF-Pgmm): https://www.herber.de/bbs/user/99024.xlsm

Feedback nicht unerwünscht! Morrn, Luc :-?
Besser informiert mit …
Anzeige
Kleine Vereinfachung und weitere Varianten:
30.06.2017 02:42:23
Luc:-?
 ABCDEFGHIJKL
33
Berlin1275Dresden275Dresdenplurale WAHL-UniMatrix zur Log2-VarianteHamburg2114Frankfurt114FrankfurtDresden, Frankfurt, Hamburg, BerlinMünchen432Hamburg32HamburgDresden Frankfurt Hamburg BerlinFrankfurt811Berlin11BerlinDresden;Frankfurt;Hamburg;BerlinDresden16D33[:D36]:=GANZZAHL(LOG(C33;2))+1Anzahl Kombi-Elemente lt Xl-Zahlenmax!1BerlinMehrere Grup-Leipzig32E33[:E36]:=INDEX(A$33:A$38;D33)Binär-Variante (einzeln, plurale MxFmln)2Hamburgpen @ 10 Ele-B33[:B38]: {=2^(ZEILE(1:6)-1)}C34[:C36]:=C33-2^(D33-1)DresdenFrankfurtHamburgBerlin3Hamburg, Berlinmente f. Kom-E39:H39: {=VSplit(VJoin(WENNFEHLER(SVERWEIS(VSplit(DEZINBIN(C33;6);"";1)*2^(6-SPALTE(A:F));WAHL({1.2};2^(ZEILE($1:$6)-1);A$33:A$38);2);"");;-1))}4Münchenbinationen F33:I36: {=WAHL({1.2.3.4};WAHL(1+(ZEILE(A1:A4)>1);C33;F32:F35-2^(G32:G35-1));GANZZAHL(LOG(WAHL(1+(ZEILE(A1:A4)>1);F33;F32:F35-2^(G32:G35-1));2))+1;5München, Berlinmöglich!                  INDEX(A33:A38;G33:G36);WAHL(ZEILE(A1:A4);"plurale WAHL-UniMatrix zur Log2-Variante";VJoin(H33:H36;", ");RepOpt("substitute";ZEILEN(A33:A38);1;{2;3};6München, Hamburg                  VJoin(G33:G36);SPALTE(A1:F1);A33:A38);VJoin(E33:E36;";")))}Binär-Variante (verbundene Texte, duale MatrixFmln)7München, Hamburg, BerlinI37:J37[;I38:J99]: {=WAHL({1.2};ZEILE(A1);VJoin(WENNFEHLER(SVERWEIS(VSplit(DEZINBIN(ZEILE(A1);6);"";1)*2^(6-SPALTE(A:F));WAHL({1.2};2^(ZEILE($1:$6)-1);A$33:A$38);2);"");", ";-1))}8Frankfurt
34
35
36
37
38
39
40
41
42
43
44
In Spalte(n) I(:L) wdn neben dem Titel auch dieser GesamtMatrix auch 3 TextVerknüpfungs­Varianten gezeigt, die in die plurale GesamtMatrixFml eingebunden wurden. Die 1. 3 Spalten dieser Matrix benötigen keine UDF, die 4. zuvor bereits verlinkte*.
Die Anzahl möglicher KombiTexte wird in beiden HptVarianten durch die MaximalGröße einer Zahl in Xl beschränkt. In der binären außerdem primär durch die maximal 10stellige Binärzahl, wobei aber mehrere Gruppen gebildet wdn könnten, die dann miteinander kombiniert wdn könnten.
Besonders interessant sollte die WAHL-Matrix sein, mit der ich hier eine Strategie zeige und verfolge, die nicht nur bspw der von neopa diametral entgggesetzt ist, sondern auch so etwas wie eine mitwachsende Matrix (mit Rückbezug) ermöglicht… ;-]
* In einer davon wurde zu DemoZwecken die bisher unveröffentlichte UDF RepOpt verwendet, deren Zweck und Funktionsweise aus der Fml leicht ersichtlich sind.
Luc :-?
Anzeige
Die 'WAHL-Unimatrix' fktioniert übrigens nur ...
30.06.2017 03:31:24
Luc:-?
…mit eingestellter Iteration!
Luc :-?
Schlicht, einfach und genial... (owT)
28.06.2017 14:06:43
EtoPHG

Wenn er's denn so haben will... ;-) Gruß owT
28.06.2017 14:36:20
Luc:-?
:-?
Hast recht, Luc. Habe Aufgabe verfehlt. Dann so:
29.06.2017 08:40:22
lupo1
https://www.herber.de/bbs/user/114560.xlsx
(enthält in Zelle G1 den VBA-Code einer Funktion (nicht Sub, die schneller wäre) sowie Verwendungsanleitung derselben. Somit kein .xlsm nötig)
Wegen VBA also Aufgabe erneut verfehlt. :-) Ich hatte aber keine Lust, mit benannten Formeln in Excel manuell 20 Ebenen zu verschachteln.
Code noch etwas eingedampft ...
29.06.2017 09:11:22
lupo1

Public Function BinaryChain(ByVal T As Range, Z): d = Z * 4
For i = 20 To 1 Step -1: If d >= 2 ^ i Then e = T(i - 1) & ", " & e: d = d - 2 ^ i
Next i: BinaryChain = Replace(e & ",", ", ,", ""): End Function
Begründung für die harte 20 statt der ermittelten Zeilen:
Excel erlaubt eh nur 20 Auswahlbegriffe in allen 1048576-1 Kombinationen zu listen. Wer also mehr als n=20 Begriffe in seine Liste packt, ist doof. Und bei weniger: Bitte mit der Formel bei Zeile 2 ^ n -1 aufhören, sonst beginnt es von vorn.
Für xl2003-: n=16.
Anzeige
Danke Dir! Aber: Habe Aufgabe verfehlt, denn ...
29.06.2017 08:46:14
lupo1
... TE wollte ja eine Liste der zulässigen Ketten erzeugen.
Siehe jetzt unter Luc.
Tja, das sah zwar so aus, ...
29.06.2017 14:26:38
Luc:-?
…Lupo,
aber ob er das auch so gemeint hatte? Immerhin benötigt er das für einen SVERWEIS, aber wie der dann aussehen soll, hat er nicht mitgeteilt. Also wohl wieder mal ein Fall von Frage nach selbsterzeugtem SekundärProblem statt dem eigentlichen, womit dann WF mit seinem 1.Statement schon recht hatte…
Nun geruht der Herr aber nicht, sich nochmals zu melden, so dass wir im Ungewissen bleiben wdn.
Deshalb setze ich nur für spätere Interessenten dann oben noch eine Verbesserung nach, wobei ich in einer zusätzlichen (Stan­dard-)Fml-Variante auch eine Log-Lösung mit Auflistung statt Kombi vorsehen werde (für 'ne Kombi wären mir alte Standard-Fml-Lösungen zu unelegant und Abo-Fktt habe und brauche ich nicht).
Gruß, Luc :-?
Anzeige
Übrigens, 'zulässige Ketten' müssten dann ...
29.06.2017 14:31:13
Luc:-?
…ja sogar noch für ihre Elemente reihenfolge-variiert wdn, falls die im Original auch auftreten und nicht immer gleich geordnet sind. Aber nichts Genaues weiß man nicht…
Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige