Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
396to400
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
396to400
396to400
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Matrix auslesen

Matrix auslesen
11.03.2004 15:20:19
Achim
Hallo Leute,
ich hab ein Array(1,2,4,8,16)
Wie kann ich mit VBA alle möglichen Kombinationen der einzelnen
Werte ermitteln und in einem Zellbereich darstellen. Dachte
da an 5 Zeilen und entsprechend viele Spalten(müßten 31 sein).
Grüße Achim

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Matrix auslesen
11.03.2004 15:44:22
Christoph
Hallo Achim
wenn du die Anzahl der möglichen Kombinationen haben willst, dann ist die Lösung:
(2 hoch n)
sprich bei 5 Einträgen hast du 32 Möglichkeiten, bei 6: 64 usw.
Hier ist auch die Kombination "keiner der Einträge" mitgezählt.
Wenn du also mindestens einen Eintrag vorraussetzt, dann bleiben (2 hoch n) -1 Möglichkeiten.
also bei n = 5 Einträgen sind's dann 31.
Gruß
Christoph
NOCH OFFEN
11.03.2004 15:48:01
Achim
Danke, das hab ich auch schon rausbekommen, nur wie ermittle
ich, wie schon beschrieben, die einzelnen Kombinationen und schreibe
sie mit VBA in eine Tabelle?
Gruß Achim
Anzeige
AW: NOCH OFFEN
11.03.2004 18:49:05
an welcher Stelle kann ich auf einem Feld mit 4 Kästchen Kreuze machen)
Hallo Achim,
mal als Ansatz bis 2 hoch 4.
Das entspricht wieder genau den Binärsystem.
Ich bin kein Progarmmierer und schon gar kein Mathematiker - insofern ist das ziemlich
umständlich - wollte dich jedoch nicht so stehen lassen, nachdem ich zuerst wohl etwas zu früh gschossen habe.
das Prinzip ist natürlich auch erweiterbar..., nur müsste man sich hier einen sinnvolleren Algorithmus einfallen lassen.
Gruß
Christoph
PS: das Forum lebt auch von Rückmeldungen

Sub ZweiHochVier()
Dim Ende As Integer
Dim Arr1() As String
Dim Arr2() As String
Ende = 4
ReDim Arr1(Ende)
m = 0
For i = 1 To Ende
Arr1(x) = i
m = m + 1
ReDim Preserve Arr2(m + 1)
Arr2(m) = Arr2(m) + Arr1(x)
Next i
For n = 1 To Ende
For i = n To Ende
If i <> n Then
Arr1(x) = i & n
m = m + 1
ReDim Preserve Arr2(m + 1)
Arr2(m) = Arr2(m) + Arr1(x)
End If
Next i
Next n
For k = 1 To Ende
For n = k To Ende
For i = n To Ende
If k <> n And n <> i And k <> i Then
Arr1(x) = i & n & k
m = m + 1
ReDim Preserve Arr2(m + 1)
Arr2(m) = Arr2(m) + Arr1(x)
End If
Next i
Next n
Next k
m = m + 1
For i = Ende To 1 Step -1
Arr1(x) = i
ReDim Preserve Arr2(m + 1)
Arr2(m) = Arr2(m) + Arr1(x)
Next i
For i = 1 To UBound(Arr2())
Cells(i, 1) = Arr2(i)
Next i
End Sub

Anzeige
AW: Matrix auslesen
11.03.2004 17:00:32
Hans W. Hofmann
Deine Aufgabe hat net zufällig was mit dem binären Zahlensystemzu tun?
Um weite rzuhelfen musst Du schon genauer werden: Kombinationen?
Gruß HW
AW: Matrix auslesen
11.03.2004 17:27:49
Achim
Hallo,
ich weiß gar nicht, wie ich das noch anders erklären soll.
Ich kann mit den Werten 1,2,4,8,16 jeden Wert von 1 bis 31
darstellen. Ich möchte jetzt, ohne das per Hand auszuprobieren,
mit VBA alle möglichen Kombinationen, also:
1
2
1+2
4
1+4
2+4
1+2+4
usw. in einen Tabellenbereich schreiben lassen.
Gruß Achim
AW: Matrix auslesen
11.03.2004 17:52:10
Hans W. Hofmann
Aah ja,
Dann machst Du eine Schleife von 0 bis 2^n; n=Anzahl_der_Werte+1
und berechnest die n-stellige Binärdarstellung deines Zählers.
Für jede 1 in deiner Binärzahl scheibst Du dann den entsprechenden Stellenwert in eine Zelle.
Alles klar?
Gruß HW
Anzeige
AW: Matrix auslesen
11.03.2004 18:31:41
Achim
Hallo HW,
ist ja ganz schön, nur leider bin ich mit deiner Beschreibung
hoffnungslos überfordert. Wäre es ein großes Opfer, wenn du mal
einen Codeschnipsel liefern könntest?
Gruß Achim
AW: Matrix auslesen
11.03.2004 20:28:17
Hans W. Hofmann
Mathe schwach, oder ;-)?

Sub kombination()
n = 5
For i = 0 To 2 ^ n - 1
k = Split(Dec2Bin(CLng(i)))
' k ist jetzt ein Array mit Deinen Kombinationen
Next
End Sub



Function Dec2Bin(zahl As Long) As String
'(C)oded by hw 02
Dim digit As Long, mask As Long
digit = 0: mask = 1
Do
digit = (zahl And mask) / mask
mask = mask * 2
Dec2Bin = digit & " " & Dec2Bin
Loop Until mask >  zahl
End Function

Gruß HW
Anzeige
AW: Matrix auslesen
11.03.2004 21:27:30
Achim
Hallo HW,
danke erstmal. Ja, Mathe ist nicht gerade meine Stärke. Leider
weiß ich nicht so recht, was ich bin den Binärzahlen anfangen soll.
Ich hab mal eine Datei hochgeladen, wie das Ergebnis aussehen
sollte.
https://www.herber.de/bbs/user/4223.xls
Gruß Achim
AW: Matrix auslesen
11.03.2004 22:25:17
Hans W. Hofmann
Nun ja,
k(0) beschreibt die erste Zeile Deiner Beispieldatei
k(1) .............. zweite .........................
k(2) ...............dritte .........................
k(3) ...............vierte .........................
k(5) ...............fünfte..........................
....
Gruß HW
Anzeige
AW: Matrix auslesen
12.03.2004 12:44:56
Achim
Hallo HW,
hmm, das Array geht doch aber von 0 bis 5, also 6 Werte?
Kannst du nochmal Sprungbrett sein?
Gruß Achim
AW: Matrix auslesen
12.03.2004 16:15:06
Hans W. Hofmann
Meine Güte, ein Schreibfehler - nach drei kommt vier!

2^0,2^1,2^2,2^3,2^4
1  ,2  ,4  ,8  ,16
k 0,  1  ,2  ,3  ,4

Gruß HW

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige