Excel: Vetretungsplan aus Website in Stundenpan einbinden?

2 Antworten

Erlaubt schon - ich möchte aber bezweifeln, das Du in der Lage bist, das technisch umzusetzen, weil das nicht ganz einfach ist.

immageil 
Fragesteller
 07.10.2022, 21:23

???? Ich programmiere seit Jahren in Python und mache dort auch Arftifical Intelligence. HTML kann ich fließend und ich lerne gerade C++ und Java. Diese Vertretungplan Sache könnte ich in wenigen Tagen in Python programmieren. Den HTML Code nach 9c scrapen, die Codezeile exportieren und alle Texte der Zeile in einem Dictionary speichern. Dann schaut das Programm für jede Stunde drüber und versieht die Stunden mit einem Attribut für die Stunde ("3,6" = Tag 3, Stunde 6). Dabei prüft er, ob ein Eintrag aus dem Vertererungsplan vorhanden ist und entscheidet durch das Dictionary, wie es mit der Art Vertretung umzugehen hat. So entsteht ein nicht besonders schöner Vertretungsplan.

Mit Excel könnte man das wesentlich "schöner" hinkriegen, da ich keinen Blassen Schimmer habe, wieso man eine Tabellensache mit Python machen sollte. Wie gesagt ich bin gerade erst dabei Java zu lernen und für den Stunplan designen und das Koppeln mit dem Python Teil wäre mir zu aufwendig.

Also mal mit Excel probiert, jedoch kenne ich mich damit nicht aus und weiß nicht welche Formeln man da eingeben müsste. Da aber niemand hier in der Lage ist mir das zu erklären, werde ich es mir nun mal selbst beibringen. Danke für deine wirklich hilfreiche Antwort!

PS: Laien sollten sich fernhalten vom Rechtssystem. Das scrapen von Websiten ist nämlich nicht zu 100% erlaubt. Ich darf auf die Website nicht zu oft zugreifen und bräuchte die Genehmigung der Schule!

0
stealthuser  07.10.2022, 21:51
@immageil

So oft musst Du garnicht zugreifen - wenn Du einen Intervall von 30 Minuten wählst wird das keiner Merken.

Na ja, es dauert eventuell eine Weile bis Du mittels Regular Expressions die Formatierungen der Webseite zuverlässig entfernt und die extrahierten Rohdaten in ein Array geschrieben hast um daraus eine Exceldatei zu erzeugen

Aber jedes Mal wenn sie die Formatierung ändern funktionieren deine regulären Ausdrücke nicht mehr korrekt.

Möglicher Weise merkst Du es zu spät und kommst zu spät zum Unterricht oder stehst vor dem falschen Raum.

Viel Spas beim zu spät kommen.

0
immageil 
Fragesteller
 07.10.2022, 22:35
@stealthuser

Soooo.....die Formartierung läuft über WebUntis, ohne Anmeldung. Da Microsoft und WebUntis "locker gesehen" Partner sind, wird die Formatierung kein Problem sein. Excel hat bei mir kein Problem die Tabelle aus dem Web zu importieren und aktualisiert sie auch. Dies habe ich schon früher ausprobiert. Für die Formatierungsdaten sorgt Untis. Somit kann ich nun über ein paar Filter und If, Else Anweisungen folgendes Konzept für jede Zelle aufbauen (Beispiel für Zelle 1, Montag 1. Stunde):

If A2 bis A5 = 1, gebe die Nummer der Zeile aus

If in {Nummer der Zeile} = Entfall:

schreibe Entfall

sonst:

schreibe Deutsch

Das klingt jetzt sehr nach Python, aber so sollte es in Excel funktionieren.

0
stealthuser  08.10.2022, 03:37
@immageil

Aber Du musst es immer händisch anstoßen und aktualisieren und richtiges Sraping ist das noch nicht.

Ich habe mal einen kompletten Online-Shop (mit Erlaubnis des Händlers) gescrapt weil der mit seinen Daten umziehen wollte und sein Dienstanbieter keinen Datenexport angeboten hat.

Ich konnte mit einem Shellscript in einem Rutsch um die 500 Artikelbeschreibungen und Produktbilder ziehen - aber es dauerte über eine Woche um alles vorzubereiten.

Viel Spaß bei deinem Vorhaben aber wundere dich nicht wenn dabei irgendwelche exotischen Probleme auftreten.

0
immageil 
Fragesteller
 08.10.2022, 08:38
@stealthuser

Ohh, ich mag Probleme! Meinst du mit exotisch, dass ich zu spät komme?

Warum ist das noch kein richtiges Scraping? Steige gerade erst ins scraping mit Ecxel ein. In Python mache ich es genauso

0
stealthuser  08.10.2022, 18:28
@immageil

ich hatte mal eine Weile mit einer Middelware zu tun die Daten aus einer ERP in einen Shop und die Bestellungen in dir ERP übertragen hat.

Jedes Mal wenn die Datenbasis im Quellsystem durch irgend einen Spinner verändert wurde weil er meinte das wäre so besser, machst Du ein dummes Gesicht und musst dein Script anpassen.

Und Du glaubst ja nicht wie kreativ die Leute sind mal eben irgendwo ein Format zu ändern.

Ach da amerikanische Datum sieht besser aus. Eine Woche später: Ach doch nicht aber wir ändern den Zeichensatz.

Da kriegst Du irgendwann einen Vogel

0

Wenn die Vertretungsseite "immer" gleich aufgebaut ist kann man mit Excel diese
"auf ein Sheet" synchronisiert einbinden.
Wählen Sie den Reiter »Daten« im Excel-Menü und klicken Sie im Bereich »Externe Daten abrufen« (ganz links) auf die Schaltfläche »Aus dem Web«
Dies Daten liegen dann zunächst auf einem weiteren Sheet. Ein wenig VBA Programmierung und diese RohDaten werden dann in deinen Stundenplan übernommen.
===
In Excel lassen sich auch Webseiten fernsteuern (Wie dies geht habe ich bereits auf GF beschrieben)
Die moderne Variante ist aber den "Selenium Driver" in Excel einzubauen und damit einen Browser deiner Wahl fernsteuern.
Tutorial und Code dazu findest du im Web. Solltest du nix finden ggf noch mal ne weitere Frage stellen, welcher "Code Schnipsel" in dem Ablauf benötigt wird.

immageil 
Fragesteller
 08.10.2022, 14:46

Habe zwar das alles von deiner Antwort schon, aber danke. Mein Problem ist nun folgendes:

Eine Formel gibt mir die Position von etwas wie "Entfall" im Format A1 oder $A$1 aus. Dies ist aber nur Text, ich bräuchte es in im Fornat von Zelladressen verwenden. Wenn also in I10 der Text "A1" steht, würde ich ihn gerne wie folgt in einer anderen Zelle benutzen:

=WENN(I10 = Entfall; .....; .....)

Also wenn die Zellenanganbe, die in I10 enthalten ist, auf eine Zelle verweist, die "Entfall" enthält, soll .... passieren.

Das klappt aber nicht, weil es ja nur Text ist

Idee?

0
IchMalWiederXY  09.10.2022, 10:03
@immageil

Der Bezug wird über die Suche nach "Entfall" erhalten, so wie ich die Dinge verstehe.@immageil: Poste mal ein Bild, wie weit du bist, dann kann auch bei der weiteren Formel einfacher geholfen werden.
ABER:
Wenn mehrfach "Entfall" vorkommt, dann wird es wohl auf VBA hinauslaufen.

0
immageil 
Fragesteller
 09.10.2022, 13:13
@IchMalWiederXY

Wenn mehrfach Entfall vorkommt ist es kein Problem. Aktuell gibt es bei mir 3 Tabellen:

-Vertretungsplan

-Stundenplan

-Verweis auf Vertretungsplan

Punkt 3 ist wohl nicht ganz verständlich. Dort wird in Zeile 6 in Spalte Montag dann gefragt ob es für sen Vertretungsplan am Montag die Zahl 6 gibt. Wenn ja wird die Zeile für die Position der 6 ausgegeben und der Stundenplan entnimmt das dann

0
immageil 
Fragesteller
 09.10.2022, 13:20
@IchMalWiederXY

Danke, jetzt funktioniert es mit folgender Formel

=INDIREKT(I10)

1