EXCEL2013 Tabellenzeilen mit nächster Zeile vergleichen und Variable inkrementieren

Ashampoo

Enthusiast
Thread Starter
Mitglied seit
06.07.2007
Beiträge
3.336
Ort
Mitten in Baden!
Hallo,

ich habe mir eine Liste von Seminaren und Seminarbesuchern angelegt (7000 Personen). Für jede Person habe ich eine Zeile angelegt mit folgenden Spalten:

#QuartalFirmaNameKndNrBeginnEndeOrtWelche SchulungSeminar Nummer (SN)
fortlaufend
1q1AAAUUU1231.12.173.12.17BerlinDeutschAA1
2q3BBBVVV4561.12.173.12.17BerlinDeutschAA1
3q2CCCWWW7892.12.172.12.17FrankfurtSpanischAA2
4q4DDDXXX0122.12.172.12.17FrankfurtSpanischAA2

usw... Es gibt 16 verschiedene Schulungen und 150 (atm) verschiedene Orten und unendlich viele Kunden und Firmen, wobei alle natürlich mehrmals auftauchen können.

Wie würde ich es erreichen, dass die Seminar Nummer automatisch, anhand der Daten in den Zeilen eingestellt wird?
Ich habe es mit SVERWEIS probiert, leider klappt das nicht bzw.

Mein Ansatz war [f(x): SN(A,E,F,G,H)] - Die Seminarnummer ist eine Funktion von: Beginn, Ende, Ort, Welche Schulung, Quartal
Also wollte ich Zeile für ZEile miteinander vergleichen und wenn die Zeile 2 und Zeile 1 gleich sind, dann vergleiche 3 und 2..., vergleich K mit J...
bis diese nicht mehr gleich sind, dann wird die SN um eins hochgezählt und mit Zeile K wird weiter verglichen (M mit K, N mit M,...)

Beste Grüße

EDIT: Mich interessiert nur die Anzahl der Seminare pro Jahr.
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Die Notfalllösung wäre für mich ein Makro, falls alle anderen Stricke reissen. Funktionsweise in etwa so (nicht schön oder schnell, aber sollte klappen):

- Lese Zeile 1 in Array ein
- Setze Seminar = "AA1"
- Vergleiche alle folgenden Zeilen mit Zeile 1, wenn gleich, dann Seminar = AA1 für die aktuelle Zeile
- Lese die nächste Zeile ohne Seminarid ein, setze Seminar = AA2 und fange wieder oben an.

---

Das Quartal brauchst du ja nicht mit vergleichen, da das Anfangs und Enddatum diese Information bereits beinhalten. Eventuell reicht ja sogar Beginn oder Ende, falls niemals 2 Schulungen am gleichen Ort mit ausschließlich verschiedener Dauer (rest identisch) durchgeführt werden.
 
Normalerweise mit einer Hilfstabelle, wo die 16 Schulungen einmal erfasst sind. Aber Du scheinst eine "Nummer" generieren zu wollen...
Vermutlich wirst Du das am einfachsten mit einer Pivot-Tabelle lösen, ohne Nummer.

Was genau willst Du denn erfahren, mach mal ein konkretes Ergebnisbeispiel.

Eigentlich will ich, möglichst einfach, die Anzahl der Seminare pro Jahr. Ich nutze bereits Pivot, ich komm damit aber nicht zum gewünschten Ziel. Ich werde es heute nochmal versuchen.

Tzk
Die Notfalllösung wäre für mich ein Makro, falls alle anderen Stricke reissen. Funktionsweise in etwa so (nicht schön oder schnell, aber sollte klappen):

- Lese Zeile 1 in Array ein
- Setze Seminar = "AA1"
- Vergleiche alle folgenden Zeilen mit Zeile 1, wenn gleich, dann Seminar = AA1 für die aktuelle Zeile
- Lese die nächste Zeile ohne Seminarid ein, setze Seminar = AA2 und fange wieder oben an.

---

Das Quartal brauchst du ja nicht mit vergleichen, da das Anfangs und Enddatum diese Information bereits beinhalten. Eventuell reicht ja sogar Beginn oder Ende, falls niemals 2 Schulungen am gleichen Ort mit ausschließlich verschiedener Dauer (rest identisch) durchgeführt werden.

An sowas habe ich gedacht, leider hab ich noch keine Erfahrung mit VBA. Ich schreibe hauptsächlich in C,C++, Python und Matlab. Kannst du ein gutes Tutorial empfehlen?
 
Eigentlich sollte man so etwas nicht mit Excel lösen, sondern in einer Datenbank. Mit 7000 Datensätzen reicht dazu auch Access problemlos aus.

Wenn man das ein bisschen strukturiert, also auf drei oder vier Tabellen verteilt, kann man auch Fehleingaben massiv reduzieren. Auf den ersten Blick würden sich Tabellen für Kunde, Seminar und Termin anbieten. Wenn es häufiger vorkommt, dass aus einer Firma mehrere Teilnehmer kommen, könnte man die Kundentabelle auch in Firma und Teilnehmer aufteilen.
Dann muss man die Firma mit Adresse, etc. nur einmal erfassen und kann die Teilnehmer einfach der Firma, dem Seminar und dem Seminartermin zuordnen.

Das lässt sich dann auch einfach ausbauen, z. B. den Kurs-Dozenten zuordnen (welche man in einer eigenen Tabelle führt).

Daraus lassen sich dann auch leicht Teilnehmerlisten, Kursbestätigungen und Statistiken drucken.

Ein hilfreiches Tutorial: Access-Tutorial: Lernen Sie Microsoft Access Datenbanken zu erstellen!
 
Zuletzt bearbeitet:
Eigentlich sollte man so etwas nicht mit Excel lösen, sondern in einer Datenbank. Mit 7000 Datensätzen reicht dazu auch Access problemlos aus.

Wenn man das ein bisschen strukturiert, also auf drei oder vier Tabellen verteilt, kann man auch Fehleingaben massiv reduzieren. Auf den ersten Blick würden sich Tabellen für Kunde, Seminar und Termin anbieten. Wenn es häufiger vorkommt, dass aus einer Firma mehrere Teilnehmer kommen, könnte man die Kundentabelle auch in Firma und Teilnehmer aufteilen.
Dann muss man die Firma mit Adresse, etc. nur einmal erfassen und kann die Teilnehmer einfach der Firma, dem Seminar und dem Seminartermin zuordnen.

Das lässt sich dann auch einfach ausbauen, z. B. den Kurs-Dozenten zuordnen (welche man in einer eigenen Tabelle führt).

Daraus lassen sich dann auch leicht Teilnehmerlisten, Kursbestätigungen und Statistiken drucken.

Ein hilfreiches Tutorial: Access-Tutorial: Lernen Sie Microsoft Access Datenbanken zu erstellen!


Vielen dank für den Tipp. Ich muss schauen ob wir Access-Lizenzen haben. Denke aber, dass ich bei EXCEL bleiben muss...






Pivot nutze ich bereits für die Auswertungen. Leider bekomme ich keine vernünftige Aufstellung hin um die Anzahl der Trainings pro Jahr eineindeutig bestimmen zu können..
Ich lese es mir mal durch und schaue ob ich mir das ein oder andere mitnehmen kann. Danke dir
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh