Excel automatisch ein mehrdimensionale Matrix erstellen lassen

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Cplex.

    Excel automatisch ein mehrdimensionale Matrix erstellen lassen

    Hey Leute und zwar möchte ich in Excel folgendes haben:
    2-5 dimensionale Matritzen in Excel ausgeben zu lassen. Beispiel: 3 Flüge 2 Fähigkeiten 2 ZeitPerioden und 2 Zyklen. Wäre eine 4 dimensionale Matrix die an allen Stellen 0 hat bis auf eben 3*2*2*2 Stellen und diese möchte ich nacher dann manuell eingeben. Im Prinzip einfach in Excel eine Tabelle in der folgendes steht:

    siehe bild

    Letztlich habe ich das in Cplex so programmiert, dass erst ne Schleife aller Zahlen der letzten Variable durchlaufen werden dann die der 3ten und so weiter. Nun kenne ich mich leider null aus mit vba ( was mir ein Freund vorgeschlagen hat) Mit excel finde ich nur Lösungen die temporär sind. Sprich wenn ich die maximal zahl für eine der Variablen kenne, beispiel flüge=3. Aber ich will das nun auf z.b. 10 ändern und excel soll mir automatisch eine Tabelle erstellen in dem es eben die Kombinationen aller zahlen bis 10 vervolständigt. Hoffe es ist klar was ich meine :D Bin gerade im Stress wegen der Thesis...

    die ZeitPeriode muss ich nämlich auf 672 ändern und dann sind das 3000+ Zeilen und da ist der Aufwand bei 3 solcher ähnlichen Variablen doch viel zu groß. Muss ja eine intelligente Möglichkeit geben :D

    *Topic verschoben*
    Bilder
    • Unbenannt.png

      12,36 kB, 363×581, 789 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Marcus Gräfe“ ()

    dein Bildle zeigt aber nur eine 2-d-Matrix, also ein Gebilde mit Zeilen und Spalten.

    Wenn du sagst "4-d-Matrix" - kann es sein, dass du dann in Wirklichkeit nur eine 2-d-Matrix meinst, und zwar eine mit 4 Spalten?

    Das wäre wesentlich einfacher, also bei wirklich 4-d wüsste ich überhaupt nicht, wie man sowas präsentieren könnte, dass man als User irgendwie den Überblick behält.
    Die Variation 4 verschiedener Felder ließe sich schon in einem 4-dimensionalen Raum abbilden, wenn denn das menschliche Vorstellungsvermögen nicht bei drei Dimensionen aufhören würde (und das eines Bildschirms bei zwei).

    In Excel lässt sich eine Ersatzdarstellung dafür mittels einer Pivot-Table relativ anschaulich realisieren.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @ErfinderDesRades Ja meine Bild zeigt in excel natürlich nur eine 2 dimensionale Ansicht an aber letztlich ist es 4 dimnensional denn der rest der EInträge ist mit nullen gefüllt. Letzlich einfach nur die Indexe entlang gehen. von rechts startend.null
    @petaod ich verstehe nicht wie das mit einer Pivot Tabelle gehen soll. Denn ich weiß das es bei java mit 4 verschachtelten For schleifen gehen würde so in etwa.

    var g = 1;
    for (var c = 1; c <= i; c++){
    for (var j = 1; j <= d; j++){
    for (var k = 1; k <= p; k++){
    Aidp[c][j][k] = aidphilfe[g];
    g =g+1;
    }
    }
    }

    ist jetzt natürlich nicht auf das obige beispiel bezogen. Aber so in etwa geht da s in java .

    Wie würde das denn in vba oder eben excl gehen? Einfachmal genau das erstellen was ich oben im bild gezeigt habe und das ich dann anstelle von zyklen =2 , zyklen auf 5 stellen kann und das sich dann dementsprechen automatiusch ändert.

    Cplex schrieb:

    so in etwa geht das in java
    so in etwa geht das in VBA:
    for (var c = 1; c <= i; c++) entspricht For c = 1 To i
    Aidp[c][j][k] = aidphilfe[g]; wird analog codiert Aidp(c,j,k)=aidphilfe(g)

    So wie du es in Java in ein dreidimensionales Array packst, geht das analog auch in VBA.
    Aber ein dreidimensionales Array kannst du halt nicht auf ein zweidimensionales Sheet abbilden.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --