Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1228to1232
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

Matrix auslesen - Liste erzeugen

Matrix auslesen - Liste erzeugen
sking10
Hallo zusammen,
kann mir vielleicht jemand bei folgendem Problem helfen bzw. weiß eine Lösung (ob per Makro oder Formel).
Ich möchte aus einer Matrix Zahlen auslesen lassen und anhand dieser Zahlen eine Liste erstellen: siehe Screenshot!
Die Matrix ist im oberen Bereich der Tabelle zu sehen.
Im unteren Bereich steht das gewünschte Ergebnis (gelb markiert).
Excel soll quasi jeden Monat der Zeitplanung auslesen (PLAN-Zeitpunkt!) und dann je nach geplanter Anzahl der Artikel jeweils eine Zeile der Liste befüllen mit dem Namen des Artikels und der Zeitplanung sowie der Anzahl. Eine eventuell abweichende Anzahl im IST ist nicht zu berücksichtigen.
Vielen Dank schonmal. Ich habe es bisher mit ein paar Matrizen-Formeln versucht, aber bin zu keiner vernünftigen Lösung gelangt bzw. waren die Formeln dann immer ausufernd lange.
Ich wäre daher wirklich sehr dankbar, wenn mir jemand eine Hilfestellung geben könnte!
Userbild

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
sollen wir das nachbauen?
28.09.2011 11:15:27
Rudi
Hallo,
lad die Mappe hoch.
Gruß
Rudi
AW: sollen wir das nachbauen?
28.09.2011 11:59:28
Rudi
Hallo,
in ein Modul:

Sub xxx()
Dim i As Integer, j As Integer, k, n As Integer, arr(), x As Integer
i = 5
ReDim arr(1 To 3, 1 To 1)
arr(1, 1) = "Artikel"
arr(2, 1) = "Monat"
arr(3, 1) = "Anzahl"
x = 1
Do While Cells(i, 1)  "Summe"
For j = 3 To 27 Step 2
k = Cells(i, j)
If k  "" Then
ReDim Preserve arr(1 To 3, 1 To x + Application.RoundUp(k, 0))
For n = 1 To Application.RoundUp(k, 0)
x = x + 1
arr(1, x) = Cells(i, 1)
arr(2, x) = Cells(2, j)
arr(3, x) = Application.Min(1, k - n + 1)
Next
End If
Next
i = i + 1
Loop
Worksheets.Add.Cells(1, 1).Resize(UBound(arr, 2), 3) = _
WorksheetFunction.Transpose(arr)
End Sub

Gruß
Rudi
Anzeige
AW: sollen wir das nachbauen?
28.09.2011 14:44:58
sking10
Super, vielen Dank Rudi!
Bin grade dabei, die Datei noch etwas zu erweitern und das Marko entsprechend anzupassen!
Ich hoffe, dass ich das hinbekomme ;)!
Grüße Sebastian
AW: sollen wir das nachbauen?
28.09.2011 15:08:18
sking10
Noch 2 Fragen:
- ist es auch möglich, dass das Ergebnis im selben Tabellenblatt dargestellt wird?
- wäre das Ergebnis aus deiner/eurer Sicht auch durch eine Formel zu erreichen?
Gruß
Sebastian
AW: sollen wir das nachbauen?
28.09.2011 16:28:30
Rudi
Hallo,
1.
z.B.

Sub xxx()
Dim i As Integer, j As Integer, k, n As Integer, arr(), x As Integer
i = 5
ReDim arr(1 To 3, 1 To 1)
arr(1, 1) = "Artikel"
arr(2, 1) = "Monat"
arr(3, 1) = "Anzahl"
x = 1
Do While Cells(i, 1)  "Summe"
For j = 3 To 27 Step 2
k = Cells(i, j)
If k  "" Then
ReDim Preserve arr(1 To 3, 1 To x + Application.RoundUp(k, 0))
For n = 1 To Application.RoundUp(k, 0)
x = x + 1
arr(1, x) = Cells(i, 1)
arr(2, x) = Cells(2, j)
arr(3, x) = Application.Min(1, k - n + 1)
Next
End If
Next
i = i + 1
Loop
Cells(i+5, 1).Resize(UBound(arr, 2), 3) = _
WorksheetFunction.Transpose(arr)
End Sub
2. Möglich, dass es geht. Ich arbeite zwar auch gerne mit komplexen Formeln (der Große-Auge-Effekt ist so schön), aber hierzu ist mir nichts eingefallen.
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige