ich habe eine Tabelle, in der aus einer anderen Arbeitsmappe Schüler angezeigt werden, die Zeiten nacharbeiten müssen. Angezeigt werden also immer Namen und Fehlzeiten (Ist/Soll). Da die Namen aus einer Klassenliste angezeigt werden, sind dazwischen immer Leerzeilen und Sie stehen an der Stelle, in der Sie auch in der Klassenliste stehen würden.
Was ich jetzt brauche ist eine Formel, welche mir die Namen und Fehlzeiten kopiert und geordnet zu einer Liste ohne Leerzellen an einer anderen Stelle anzeigt.
Ich hoffe ihr versteht was ich meine und könntet mir weiterhelfen. Hab unten die Datei mal angehängt (Namen sind verändert und dadurch die Formel in den Zellen ersetzt).
Moin, die Liste strotzt vor #BEZUG! - Fehlern, da die Verknüpfung fehlt. Kannst/darfst/willst du Power Query -> http://www.excel-ist-sexy.de/power-query-das-add-in/ nutzen? Dann lässt sich das damit gut lösen. Natürlich auch mit VBA. Und wahrscheinlich auch mit mehr oder weniger transparenten Formeln.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
22.04.2018, 11:40 (Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2018, 11:40 von worrest-t.)
Hallo Günther,
oh das mit den Bezugsfehlern habe ich nicht vorausgesehen. Aber eigentlich ist es eben eine Liste von Namen, wo eben dazwischen Leerzellen sind. Diese sollen schön geordnet werden, so dass man schnell Namen auswendig machen kann und auch die Anzahl weiß.
Ich nutze Excel auf einem Mac und habe die Version 2016. Sollte Power Query hier möglich sein, bin ich offen dafür. VBA bin ich auch offen dafür, nur hätte ich eigentlich gerne eine Lösung, die ich nachvollziehen kann und bei VBA habe ich gemerkt, dass ich Excel nicht sooo häufig nutze, dass sich ein Lernen der Sprache lohnen würde.
Edit: Habe die Arbeitsmappe noch von den Formeln befreit, sodass man sie bearbeiten kann. Nur wird die Liste eben von einer Wenn Funktion immer dynamisch mit Daten gefüllt - falls das für die Weiterbearbeitung relevant sein sollte.
22.04.2018, 12:12 (Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2018, 12:21 von snb.)
Code:
Sub M_snb() sn = Filter([transpose(if(B4:B34="",,A4:A34))], "0", 0) If UBound(sn) > -1 Then Cells(3, 11).Resize(UBound(sn) + 1) = Application.Transpose(sn) sn = Filter([transpose(if(E4:E34="",,D4:D34))], "0", 0) If UBound(sn) > -1 Then Cells(3, 12).Resize(UBound(sn) + 1) = Application.Transpose(sn) sn = Filter([transpose(if(H4:H34="",,G4:G34))], "0", 0) If UBound(sn) > -1 Then Cells(3, 13).Resize(UBound(sn) + 1) = Application.Transpose(sn) End Sub
Habe gerade festgestellt, dass ich versehentlich die Formeln in den Hilfsspalten nicht mitangegeben habe. In D4 gehört diese Formel rein und entsprechend runterziehen. Auf die anderen Hilfsspalten musst du sie halt noch anpassen.
Code:
=WENN(A4="";"";ZEILE())
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
habe gerade Günthers Lösung ausprobiert und es klappt suuuuper und ist für mich auch reproduzierbar - auch wenn leider nicht ganz nachvollziehbar, aber daran arbeite ich jetzt mal.
Ich danke ganz herzlich für diese tolle Lösung!!!!