Formelkonzept optimierbar / evtl. VBA?
02.04.2020 17:05:20
erichm
ich habe insgesamt 3 Tabellen:
Tabelle Basis: Auflistung von 84 Abkürzungen in den Zellen A2 bis A85 (Abkürzungen aus Sortimentsteilen). Diese Abkürzungen bestehen immer aus zwei Zahlen und einem Buchstaben (A oder R). Von diesen Abkürzungen werden für diverse Auswertungen immer vier in einer Zelle zusammengefasst. Diese Zellen (sind immer zwölf Ziffern) stehen dann in unterschiedlicher Anzahl zwischen 500 und 1.000 zur Verfügung.
z.B.
01R03A05R22A
02A06A07R42A
Usw
Aufgabe: diese Zellen müssen jetzt so nebeneinander in einer Zeile aufgelistet werden, dass immer 36 unterschiedliche Abkürzungen (01A, 02R, 04A ) pro Zeile enthalten sind. Dabei dürfen auch die ersten beiden Zahlen der Abkürzung nicht doppelt vorkommen.
Meine aktuelle Lösung (relativ aufwändig):
Tabelle Zufall: Auflistung der zusammengefassten Zellen (z.B. 01R03A05R22A) in Spalte A ab Zeile 2. Diese Auflistung wird nun per Zufallsprinzip immer wieder in unterschiedlicher Reihenfolge untereinander aufgelistet (siehe Musterdatei Spalte S). Dann werden pro Zeile die einzelnen Abkürzungen wieder getrennt (siehe Spalten U bis X)
Tabelle quer: Hier wird die Auflistung von Tabelle Zufall aus den Spalten U bis X pro Zeile aufgelistet; also immer 36 Abkürzungen pro Zeile in den Spalten D bis AM der Tabelle quer. Dann werden Hilfsspalten erstellt in BJ bis CS um zu prüfen, ob es bei den ersten beiden Zahlen in den Spalten D bis AM doppelte gibt. Die unterschiedliche Anzahl wird in den Spalten BC bis BF ermittelt (für 24, 28, 32 und 36 Spalten).
Im Optimalfall ergeben sich quasi 36 unterschiedliche Abkürzungen in der Zeile. Da dies so gut wie nicht vorkommt, behelfe ich mir damit, dass zunächst die Zeilen herauskopiert werden, die in den ersten 24 Zellen auch 24 unterschiedliche Abkürzungen haben (das kommt öfters vor). Auf diesen Grundlagen (siehe Tabelle quer Zeilen 110 bis 114) werden dann durch x-malige Neuberechnungen irgendwann zunächst 28, dann 32 und dann 36 unterschiedliche Abkürzungen erreicht. Wenn diese Zwischensteps jeweils erreicht wurden, werden die entsprechenden Formeln zu Werten kopiert.
In der Zeile 89 habe ich bereits ein endgültiges Ergebnis aufgelistet ..nach x-maligen Neuberechnungen.
Leider habe ich bisher keine Alternative gefunden, mit der ich die x-maligen Neuberechnungen vermeiden oder sogar verhindern könnte. Evtl. könnte hier auch VBA helfen (aber meine Kenntnisse sind nicht ausreichend).
Die Musterdatei (mit Office 365):
https://www.herber.de/bbs/user/136352.xlsx
Vielen Dank für eine Hilfe.
mfg