Hallo liebes Forum,
ich möchte eine solche Matrix in Abhängigkeit von variablen Maximalwerten dynamisch generieren:
Wie könnte ich diese Problem lösen?
Ich bin für jede Hilfe dankbar.
Grüße Johannes
Hallo Johannes,
wenn Du die Zahlen in einer Zelle darstellst, kannst Du ja eine Reihe bis 1111 bilden.
... hier mal noch die Reihe dazu.
Arbeitsblatt mit dem Namen 'Tabelle1' |
| A | B | C |
1 | 0001 | | 1111 |
2 | 0010 | | |
3 | 0011 | | |
4 | 0100 | | |
5 | 0101 | | |
6 | 0110 | | |
7 | 0111 | | |
8 | 1000 | | |
9 | 1001 | | |
10 | 1010 | | |
11 | 1011 | | |
12 | 1100 | | |
13 | 1101 | | |
14 | 1110 | | |
15 | 1111 | | |
16 | Ende | | |
17 | Ende | | |
18 | Ende | | |
Zelle | Formel |
A1 | =WENN(DEZINBIN(ZEILE())*1<=$C$1;DEZINBIN(ZEILE())*1;"Ende") |
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg |
Danke für die schnelle Hilfe, aber funktioniert das auch bei max. Werten wie 2222 oder 2121 zum Beispiel?
Und sollte die Matrix auch in 4 Spalten sein, denn die Werte werden im Anschluss noch für Formeln benötigt.
Hallo Cruiser,
2222 ist dann aber nicht mehr binär, jedenfalls sah Deine Fragestellung nach binären Zahlen aus.
Sollen bei 2222 dann keine Einsen mehr vorkommen?
Man kann auch eine Zahlenfolge aufdröseln, kommt darauf an, was Du machen willst.
Formelbeispiel:
=TEIL(TEXT(A1;"0000");2;1)
Wichtig ist in dem Fall, dass Du den in A1 enthaltenen Wert 1 in einen 4-stelligen Text wandelst, dann kannst Du auch wie in der Beispielformal das zweite Zeichen korrekt extrahieren.
Hi,
dann solltest du deinen Fragenkomplex komplett offenlegen. Dann kann dir zielgerichteter geholfen werden und unnotiges Nachfragen wird vermieden.
(06.12.2015, 14:05)schauan schrieb: [ -> ]Hallo Cruiser,
2222 ist dann aber nicht mehr binär, jedenfalls sah Deine Fragestellung nach binären Zahlen aus.
Sollen bei 2222 dann keine Einsen mehr vorkommen?
Man kann auch eine Zahlenfolge aufdröseln, kommt darauf an, was Du machen willst.
Formelbeispiel:
=TEIL(TEXT(A1;"0000");2;1)
Wichtig ist in dem Fall, dass Du den in A1 enthaltenen Wert 1 in einen 4-stelligen Text wandelst, dann kannst Du auch wie in der Beispielformal das zweite Zeichen korrekt extrahieren.
Ich hab nur die einfachste Matrix gewählt. War von mir falsch erklärt. Es ist kein binäres Problem.
Bei 2222 sollen auch Nullen und Einsen vorkommen.
Ich hab mal eine Mappe mit 2212 angehängt. Es sind die Maximalwerte der Variablen gegeben. Also wenn amax=2, dann gibt es a von 0 bis 2.
Hallöchen,
ist denn die Frage an anderer Stelle schon beantwortet oder sollen wir hier weitermachen?
Ich hab was passendes im Netz gefunden.
Über VBA:
Option Explicit
Public Sub machs()
Dim a, b, c, d, e, f, g, h, S, lngCount As Long
Dim I As Integer
Dim out
Dim Z
Z = 1
S = Range("A1").CurrentRegion.Columns.Count
Redim spalten(1 To S) As Range
For I = 1 To S
Set spalten(I) = Range(Cells(Rows.Count, I).End(xlUp), Cells(1, I))
Z = Z * spalten(I).Count
Next
If Z > 65536 Then
MsgBox "Mehr Kombinationen möglich als Zeilen vorhanden.", vbCritical, "Problem"
Exit Sub
End If
On Error Resume Next
Redim out(1 To Z, 1 To 8)
For a = 1 To spalten(1).Count
For b = 1 To spalten(2).Count
For c = 1 To spalten(3).Count
For d = 1 To spalten(4).Count
For e = 1 To spalten(5).Count
For f = 1 To spalten(6).Count
For g = 1 To spalten(7).Count
For h = 1 To spalten(8).Count
lngCount = lngCount + 1
out(lngCount, 1) = spalten(1)(a)
out(lngCount, 2) = spalten(2)(b)
out(lngCount, 3) = spalten(3)©
out(lngCount, 4) = spalten(4)(d)
out(lngCount, 5) = spalten(5)(e)
out(lngCount, 6) = spalten(6)(f)
out(lngCount, 7) = spalten(7)(g)
out(lngCount, 8) = spalten(8)(h)
Next
Next
Next
Next
Next
Next
Next
Next
Range("J1").Resize(UBound(out), UBound(out, 2)) = out
End Sub