Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1420to1424
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 möglichen Zahlenkombinationen auflisten

Alle möglichen Zahlenkombinationen auflisten
16.04.2015 15:47:18
Dominic
Hallo zusammen,
wie kann ich in Excel alle möglichen Zahlenkombinationen auflisten für folgenden Fall:
Es handelt sich um eine fünfstellige Zahl, addiert man eine Reihe zusammen, kommt immer die Summe 5 heraus. Die Zusammenstellung jedoch ist unterschiedlich und variabel.
Also Beispiel:
11111 oder
02012 oder
03011 oder
05000 oder
41000 oder
50000 oder
02300 usw.
Wie kann ich hier in Excel sämtliche Kombinationsmöglichkeiten in einer Spalte untereinander aufführen lassen? :)
Ich komme einfach nicht drauf.. :(
Vielen Dank!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle möglichen Zahlenkombinationen auflisten
16.04.2015 16:01:50
Daniel
Hi
1. Zähle in Spalte A alle möglichen Zahlenkombinationen auf, beginne in Zeile 2.
Schreibe hierzu in A2 die Formel =Zeile(A1) und ziehe sie bis A50001 runter.
2. Kopiere die Spalte A und füge sie an gleicher stelle als Wert ein.
3. kennzeichne mit einer Formel alle Zeilen mit Quersumme 5 mit der Zeilennummer und alle anderen mit der 0. Hierszu folgende Formel in B2 (und dann nach unten ziehen):
=WENN(SUMMENPRODUKT(WERT(TEIL(TEXT(A2;"00000");SPALTE($A$1:$E$1);1)))=5;ZEILE();0)
4. Schreibe in B1 ebenfalls die 0 (Überschrift!)
5. Wende auf die Spalten A:B die funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN an, mit der Spalte B als kriterium und der Option "keine Überschrift".
6. lösche Spalte B wiedre
Gruß Daniel

Anzeige
AW: Alle möglichen Zahlenkombinationen auflisten
16.04.2015 16:02:10
MCO
Hi!
War einfacher als ich anfangs dachte
Gruß, MCO Sub kombi() Dim a For a = 0 To 5 For b = 0 To 5 For c = 0 To 5 For d = 0 To 5 For e = 0 To 5 If a + b + c + d + e = 5 Then Debug.Print a & b & c & d & e End If Next: Next: Next: Next: Next End Sub 00005
00014
00023
00032
00041
00050
00104
00113
00122
00131
00140
00203
00212
00221
00230
00302
00311
00320
00401
00410
00500
01004
01013
01022
01031
01040
01103
01112
01121
01130
01202
01211
01220
01301
01310
01400
02003
02012
02021
02030
02102
02111
02120
02201
02210
02300
03002
03011
03020
03101
03110
03200
04001
04010
04100
05000
10004
10013
10022
10031
10040
10103
10112
10121
10130
10202
10211
10220
10301
10310
10400
11003
11012
11021
11030
11102
11111
11120
11201
11210
11300
12002
12011
12020
12101
12110
12200
13001
13010
13100
14000
20003
20012
20021
20030
20102
20111
20120
20201
20210
20300
21002
21011
21020
21101
21110
21200
22001
22010
22100
23000
30002
30011
30020
30101
30110
30200
31001
31010
31100
32000
40001
40010
40100
41000
50000

Anzeige
ein wenig schneller
16.04.2015 16:35:02
Erich
Hi zusammen,
so hat der Prozessor weniger zu tun:

Sub kombi2()
Dim a As Long, b As Long, c As Long, d As Long
For a = 0 To 5
For b = 0 To 5 - a
For c = 0 To 5 - a - b
For d = 0 To 5 - a - b - c
Debug.Print a & b & c & d & 5 - a - b - c - d
Next: Next: Next: Next
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

AW: ein wenig schneller
17.04.2015 10:20:44
MCO
Sehr gut, Erich
Immerhin statt 7777 Durchläufen nur 127.
Auch wenn man es nicht in Sekunden messen kann: Sehr schön!
Gruß, MCO

AW: Alle möglichen Zahlenkombinationen auflisten
21.04.2015 13:04:18
Dominic
Hi,
also zunächst einmal vielen Dank an alle für die Unterstützung!
Die gezeigten Varianten kann ich auch einwandfrei in meine Datei einbauen,
es kommt mir jedoch vor als fehlen hier noch viele möglichen Varianten, hätte mehr als 127 erwartet... :)
Aber funktioniert, danke! :)

Anzeige
Zahlenkombinationen mit Quersumme 5
16.04.2015 16:46:13
Erich
Hi Dominic,
so ginge es auch:
 ABCD
1ZeileSumFünfteAlle
200500005
311400014
422300023
533200032
644100041
755000050
866-1999999
977-1999999
1088-1999999
1199-1999999
12101400104
13112300113
14usw.   
15499729-1999999
16499830-1999999
17499931-1999999
1850005050000
19geht bis Zeile 5002   

Formeln der Tabelle
ZelleFormel
B2=SUMMENPRODUKT(WERT(TEIL(TEXT(A2;"0000"); SPALTE($A$1:$D$1); 1)))
C2=WENN(B2<6;5-B2;-1)
D2=WENN(C2>-1;TEXT(A2;"0000")&C2;"999999")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Am Schluss brauchst du nur nach Spalgte D ("Alle") zu sortieren.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
Ich hätte das jetzt klassisch wie folgt gelöst,...
18.04.2015 03:53:51
Luc:-?
…Erich (Dominic scheint's ja nicht mehr zu interessieren!);
zuerst die Anzahl der Variationen ermitteln, die die Bedingung erfüllen:
{=ANZAHL(WENN(GANZZAHL((ZEILE($1:$6481)-1)/6^4)+GANZZAHL(REST((ZEILE($1:$6481)-1);6^4)/6^3)+
GANZZAHL(REST(REST((ZEILE($1:$6481)-1);6^4);6^3)/6^2)+GANZZAHL(REST(REST(REST((ZEILE($1:$6481)-1);6^4);
6^3);6^2)/6)+REST(REST(REST(REST((ZEILE($1:$6481)-1);6^4);6^3);6^2);6)=5;--(GANZZAHL((ZEILE($1:$6481)
-1)/6^4)&GANZZAHL(REST((ZEILE($1:$6481)-1);6^4)/6^3)&GANZZAHL(REST(REST((ZEILE($1:$6481)-1);6^4);
6^3)/6^2)&GANZZAHL(REST(REST(REST((ZEILE($1:$6481)-1);6^4);6^3);6^2)/6)&REST(REST(REST(REST(
(ZEILE($1:$6481)-1);6^4);6^3);6^2);6));""))}
Das ergibt 126. Dann entweder 126 1zellige MatrixFmln verwenden …
{=KKLEINSTE(WENN(GANZZAHL((ZEILE($1:$6481)-1)/6^4)+GANZZAHL(REST((ZEILE($1:$6481)-1);6^4)/6^3)+
GANZZAHL(REST(REST((ZEILE($1:$6481)-1);6^4);6^3)/6^2)+GANZZAHL(REST(REST(REST((ZEILE($1:$6481)-1);6^4);
6^3);6^2)/6)+REST(REST(REST(REST((ZEILE($1:$6481)-1);6^4);6^3);6^2);6)=5;--(GANZZAHL((ZEILE($1:$6481)-
1)/6^4)&GANZZAHL(REST((ZEILE($1:$6481)-1);6^4)/6^3)&GANZZAHL(REST(REST((ZEILE($1:$6481)-1);6^4);6^3)
/6^2)&GANZZAHL(REST(REST(REST((ZEILE($1:$6481)-1);6^4);6^3);6^2)/6)&REST(REST(REST(REST((ZEILE($1:
$6481)-1);6^4);6^3);6^2);6));"");ZEILE(A1))}
…oder nur eine einzige über 126 Zellen/Zeilen:
{=TEXT(KKLEINSTE(WENN(GANZZAHL((ZEILE(1:6481)-1)/6^4)+GANZZAHL(REST((ZEILE(1:6481)-1);6^4)/6^3)+
GANZZAHL(REST(REST((ZEILE(1:6481)-1);6^4);6^3)/6^2)+GANZZAHL(REST(REST(REST((ZEILE(1:6481)-1);6^4);
6^3);6^2)/6)+REST(REST(REST(REST((ZEILE(1:6481)-1);6^4);6^3);6^2);6)=5;--(GANZZAHL((ZEILE(1:6481)-1)
/6^4)&GANZZAHL(REST((ZEILE(1:6481)-1);6^4)/6^3)&GANZZAHL(REST(REST((ZEILE(1:6481)-1);6^4);6^3)/6^2)&
GANZZAHL(REST(REST(REST((ZEILE(1:6481)-1);6^4);6^3);6^2)/6)&REST(REST(REST(REST((ZEILE(1:6481)-1);6^4);
6^3);6^2);6));"");ZEILE(1:126));"00000")}
Die Vornullen kann man ja über die Formatierung erzeugen oder wie in der letzten Fml mit TEXT, was ggf angeratener sein mag.
Die Fmln sind leider ziemlich lang, da klassisch. Dafür wird aber auch nur eine über 126 Zellen benötigt. Ich habe dafür auch UDFs, was die Fml verkürzen würde, aber die sind schon älter und leider nicht aktiv MxFml-fähig, d.h., sie können im HptArgument nur Einzelwerte, keine Datenfelder verarbeiten, die hier aber wg KKLEINSTE erforderlich sind.
Übrigens erkennst du sicher, dass es sich bei diesen Fmln um eine Dezimalzahlen­Konvertierung in ein HexalZahlen-System (Ziffern 0…5) handelt.
Gruß, Luc :-?

Anzeige
AW: Ich hätte das jetzt klassisch wie folgt gelöst,...
21.04.2015 13:08:29
Dominic
Hi,
vielen Dank auch für Eure Varianten.
Die zweite Version vom Erich kann ich noch nicht ganz nachvollziehen, werden doch auch Werte aufgeführt die es "nicht gibt".
999999 wäre z. B. falsch. Es gibt max. 5 Stellen, und die Summe dieser 5 Stellen kann/darf den Wert 5 nicht überschreiten.
Sprich:
00005
01013
40001
50000
22001
usw.
Die anderen gezeigten Varianten funktionieren aber einwandfrei. Danke dafür!

116 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige