Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
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

Mehrdimensionales Array füllen

Mehrdimensionales Array füllen
28.03.2014 14:34:29
Albert
Hallo zusammen,
ich suche eure Hilfe beim Füllen eines dreidimensionalen Arrays. Durch das ganze googeln hab ich das Gefühl einen fetten Knoten im Gehirn zu haben. Deshalb meine Bitte um Hilfe und um Aufklärung.
Mein Ziel ist es ein Array zu füllen, welches in Abhängigkeit der Kalenderwoche (vorhanden in Spalte O):
1. aus einer Spalte die Auftragsnummern übernimmt (erste Dimension),
2. dazugehörende Artikelnnummern (zweite Dimension),
3. und die Menge zur Artikelnummer aufsummiert (dritte Dimension).
Wie müsste der Code dazu aussehen?
Um Hilfe dankbar
Albert
P.S. die Musterdatei hängt mit an...
https://www.herber.de/bbs/user/89909.xlsx

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ich glaube nicht, dass ein klassisches, 3dArray...
28.03.2014 16:09:06
Luc:-?
…dieser Aufgabe gerecht wdn kann, Albert,
denn, wenn schon ein 2dArray stets rechteckig sein muss, müsste ein 3dArray stets Quaderform haben, d.h., die Anzahlen der ANrn dürfen zwar von denen der ArtNrn-insgesamt und auch der der Mengen-insgesamt verschieden sein, aber eben insgesamt, nicht im Detail. Also müssten alle ANrn die gleiche Anzahl von ArtNrn haben und alle ArtNrn die gleiche Anzahl von Mengen. Durch die Summation letzterer zur Gesamtmenge pro ArtNr würde hier zwar eine Übereinstimmung hergestellt, aber eben nicht untereinander, sondern mit der Anzahl der jeweiligen ArtNrn pro ANr. Die dürfte aber wohl kaum für jede ANr gleich sein. Deshalb käme wohl eher ein Vektor der ANrn infrage, dessen Elemente 1. aus der ANr und 2. aus einer Matrix aller jeweils zugehörigen ArtNrn — mit den ArtNrn in einer Zeile/Spalte und den zugehörigen Mengensummen in der anderen — bestehen. Das wäre dann nur über einen Variant mit einem Array erreichbar, wobei seine Elemente ebenfalls Variant sein müssen. Recherchiere also mal danach bzw alternativ nach Arrays in Arrays oder auch nach Dictionary-Objekt, denn das dürfte sich auch dafür eignen, ggf auch eine Collection.
Gruß Luc :-?
Besser informiert mit …

Anzeige
AW: Ich glaube nicht, dass ein klassisches, 3dArray...
28.03.2014 16:20:08
Albert
Hallo Luc,
sorry, aber ich versteh nur Bahnhof...
Alternative 2 (und die will ich nicht) wäre ein Pivot-Table.
Könntest du mir mit nem Code weiterhelfen?
Gruß
Albert

AW: Ich glaube nicht, dass ein klassisches, 3dArray...
28.03.2014 18:19:30
Christian
Hallo Albert,
ich weiß nicht was Du genau erreichen willst, aber die Alternative zu PIVOT wäre evtl. ne ganz simple Summenprodukt-Formel.
Wenn Du genauere Angaben machen kannst...
MfG Christian

AW: Mehrdimensionales Array füllen
28.03.2014 17:10:32
Christian
Hallo Albert,
was willst du denn erreichen?
ich vermute mal - Anzahl pro "KW, Auftragsnr und Artikelnr."
Dazu brauchst du aber keine 3 Dimensionen. Das ganze stellt sich ja wie eine Tabelle dar, sprich 2-dimensional.
Das Array könnte dann zB so aussehen (wobei "Zeile" und "Spalte" hier nur zum Verständnis dienen sollen):
Sub FillArray()
Dim vntData()
Dim k As Long
ReDim vntData(3, k)
'vntData(0, k) = Spalte-1, Zeile-k: KW
'vntData(1, k) = Spalte-2, Zeile-k: Auftragsnr
'vntData(2, k) = Spalte-3, Zeile-k: Artikelnr
'vntData(3, k) = Spalte-4, Zeile-k: Anzahl
'... dein Code ...
End Sub

Das ist aber recht aufwendig, da man bei jedem Eintrag prüfen muss, ob diese Kombination schon existiert, sonst muss das Array für k = k + 1 mit Redim Preserve vntData(3, k) erweitert werden, etc.
Einfacher geht es mit einem Dictionary (Schlüssel-Werte-Paare). Hier kannst du direkt auf einen Schlüssel zugreifen. Wenn dieser nicht existiert wird er automatisch angelegt.
Als Schlüssel würde ich vorschlagen, einfach die Strings mit entspr. Delimiter aus KW, Auftragsnr und Artikelnr zusammen zu setzen (das Dictionary erlaubt keine Arrays als Schlüssel, ist ein großes Manko bei VBS).
Gruß
Christian
Anzeige

15 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige