Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Auto-Ausfüllen über mehrere Zeilen und Spalten hinweg
#1
Hallo zusammen!

Ich stehe vor einem kleinen Problem.

Ich habe eine Matrix mit 647*647 Zellen (B2:XX648). Diese Zellen stehen jeweile für eine Kombination aus zwei Werten (genauer gesagt vierstellige ICAO-Flughafen Codes aus der Luftfahrt).

Ich habe mir eine Zusammenstellung aller möglichen Kombinationen ausgeben lassen (in Summe 418609 Möglichkeiten). Diese sind wie folgt fortlaufend nummeriert:

PA000001..PA418609.

Ich möchte nun gerne die Matrix mit den Namen der Kombinationen automatisch ausfüllen lassen.
Wie ist es möglich, dies somit automatisch nicht nur über mehrere Spalten, sondern auch über mehrere Zeilen hinweg durchführen zu lassen?
Etwas komplizierter sogar noch: Es sollten die Zellen ausgelassen werden, in denen die Werte mit sich selbst gepaart werden (also diagonaler Verlauf in der Matrix).

Dies alles händisch zu tun wäre bei mehr als 400.000 Zellen doch arg mühsam, weshalb ich hoffe, dass es einen Weg gibt, das Ganze zu automatisieren?

VG
Vermillion
Antworten Top
#2
Hola,
eine kleine Excel-Beispieldatei wäre hilfreich.
Gruß,
steve1da
Antworten Top
#3

.xlsx   Upload_example.xlsx (Größe: 24,62 KB / Downloads: 6)

Wenn am Ende der Zeile B das Ganze dann mit PA000647 endet, soll es in B3 mit PA000648 weitergehen.
Im Optimalfall würden bei der fortlaufenden Nummerierung die Zellen B2, C3, D4, E5 (und so weiter) übersprungen werden.
Antworten Top
#4
Und was soll da jetzt genau eingetragen werden, also nach welcher Logik?

Zitat:Wenn am Ende der Zeile B


B ist eine Spalte.
Antworten Top
#5
(09.02.2022, 15:05)steve1da schrieb: Und was soll da jetzt genau eingetragen werden, also nach welcher Logik?



B ist eine Spalte.

Absolut korrekt, mea culpa.
Gemeint war Zeile 2.

Die Nummerierung soll von links nach rechts und von oben nach unten fortlaufend sein.
Also Zeile 2 PA000001 bis PA000647
Zeile 3 PA000648 bis PA001294
Zeile 4 PS001295 bis PA001941
etc.

Verzeihung, falls das Anliegen nicht ganz rüber kommt. Versuche bei Bedarf gerne weiter Informationen zu liefern.

VG
Antworten Top
#6
Aber nach der Definition dürfte es doch gar nicht in B2 anfangen, weil die Zelle doch frei bleiben soll, oder?
Würde es dann in C2 mit PA000001 beginnen oder mit PA000002?
Antworten Top
#7
Auch damit hast du vollkommen Recht  Blush
Es beginnt in Zelle C2 mit PA000001.

So gesehen soll über die Zeilen hinweg fortlaufend nummeriert werden, und jede 647.Zelle dabei übersprungen werden.
Antworten Top
#8
Laß mal das Makro hier laufen

Code:
Sub fuelleMatrix()
Dim c As Long
Dim r As Long
Dim z As Long

z = 0
For r = 2 To 648
    For c = 2 To 648
        If Cells(r, 1) <> Cells(1, c) Then
            Cells(r, c) = "PA" & Format(z, "00000")
        End If
        z = z + 1
    Next c
    DoEvents
Next r
MsgBox "Fertig"
End Sub

und warte, bis die Message-Box kommt

Wobei: Bei Deinem oben genannten Schema (Zeile 2 bis PA000001:PA000647 / Zeile 3 PA000648-PA01294)
muesste es in Zelle B2 ja doch mit der 1 losgehen (aber leer, da Kreuzpunkt)

Je nachdem, was Du haben willst, ändere den Startwert von z von 0 auf 1
Gruss Ralf
Antworten Top
#9
Hi,

mit Formel in C2:

Code:
=WENN(SPALTE()<=ZEILE();"";WENN(SPALTE()-ZEILE()=1;"PA"&TEXT(647*ZEILE(A1)-ZEILE()*(ZEILE()-1)/2+1;"00000");"PA"&TEXT(TEIL(INDEX(2:2;SPALTE()-1);3;99)+1;"00000")))
Nach rechts und unten ziehen.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste