Zusammen lösen: Warm-Up
Erstelle in eine Notentabelle, ähnlich zu derjenigen, die dir die Schule zur Verfügung stellt.
Template: Aufgabe B: Notentabelle
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Schriftgrösse, normal/fett stimmen überein | $\square$ |
gewisse Zellen eingefärbt | $\square$ |
passende Zeilenhöhe & Spaltenbreite | $\square$ |
Spalten für einzelne Noten haben alle gleiche Breite | $\square$ |
Zelleninhalte horizontal richtig (z.T. links, z.T. mittig) ausgerichtet | $\square$ |
Zelleninhalte vertikal mittig ausgerichtet | $\square$ |
passende Rahmen mit untersch. Dicken | $\square$ |
Durchschnitt mit 2 NKS angezeigt (Stichwort: Zelle formatieren) | $\square$ |
Logik | |
für jedes Fach einzeln Mittelwert berechnet | $\square$ |
Mittelwert-Berechnung funktioniert für 1-20 Noten (also nicht nur für die aktuell eingetragenen) | $\square$ |
Zeugnisnote auf 0.5 Noten gerundet, Noten wie $5$ werden ohne NKS dargestellt (Formatierung „Automatisch“) | $\square$ |
Spaltenbreite & Zeilenhöhe anpassen
Durchschnitt / Mittelwert bestimmen
Berechne mit =AVERAGE(...)
(dt. =MITTELWERT()
) den Mittelwert oder Durchschnitt mehrerer Zellen.
Runden
=ROUND()
: normales Runden, z.B. =ROUND(3.14159,2)
rundet auf 2 Nachkommastellen=MROUND(...)
(de: =VRUNDEN(...)
): Runden auf Vielfaches von Zahl, z.B. =MROUND(5.28,0.5)
rundet auf $5.5$""
aus. Anderenfalls berechnest du den Durchschnitt. Für diese Fallunterscheidung benötigen wir die IF-Funktion (siehe Theorie unten), In Pseudocode sieht das etwa wie folgt aus: =IF(<Anzahl Noten = 0>,"",<Berechnung Durchschnitt>).
Darstellung | Erfüllt? |
---|---|
die gerundeten Zeugnisnoten mit formatierten Bedingungen einfärben (rot falls UG, grün falls G) |
Logik | Erfüllt? |
---|---|
Berechnete Noten werden nur angezeigt, wenn Noten vom Fach vorhanden sind | $\square$ |
Mittelwerte von „Durchschnitte“ und „Zeugnisnoten“ der einzelnen Fächer berechnen | $\square$ |
Berechnung der Plus- und Minuspunkte | $\square$ |
Berechne Summe der Plus- und Minuspunkte | $\square$ |
Berechnete Werte werden nur angezeigt, wenn überhaupt Noten vorliegen | $\square$ |
Bedingte Formatierung
Du kannst Zellen abhängig vom Inhalt formatieren – zum Beispiel könntest du sagen, dass die Zelle rot wird, falls der Wert darin kleiner als 4 ist.
Vorgehen: Zelle(n) markieren → „Format“ → „Bedingte Formatierung“ → Einstellungen vornehmen
IF-Verzweigungen
Soll der Inhalt einer Zelle von einer Bedingung abhängen, verwenden wir die IF-Funktion (dt. WENN). Diese hat immer die Form:
`=IF(<Bedingung>,<Zelleninhalt falls erfüllt>,< Zelleninhalt falls nicht>`
Dies entspricht dem if-else in Python (siehe unten).
Beispiel: =IF(B2>=4,"Genügend","Ungenügend")
, in der Zelle wird „Genügend“ oder „Ungenügend“ angezeigt, je nachdem, welchen Wert die Zelle B2 hat.
Für eine Verzweigung mit mehreren Bedingungen verwendet man die IFS-Funktion:
`IFS(<Bedingung 1>,<Wert 1>,<Bedingung 2>,<Wert 2>,...)`
Beachte: Hier wird im Gegensatz zu den meisten Programmiersprachen ein einfaches Gleichheitszeichen verwendet, um Gleichheit zu überprüfen.
Das IF in Spreadsheets, entspricht in etwa dem if-else in Python:
if <Bedingung>: # Code falls Bedingung erfüllt else: # Code falls Bedingung nicht erfüllt
Anzahl Werte zählen
Mit dem folgenden Befehl zählt man, wie viele der angegebenen Zellen Zahlen beinhalten:
`=COUNT(<Zellenbereich>)`
Dies ist besonders nützlich, wenn du eine Berechnung nur dann durchführen will, wenn die dafür benötigten Zellen nicht leer sind.
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Zellen bei „Promotion“, in Legende und bei Name/Klasse/Semester passend zu grossen Zellen verbunden | $\square$ |
Text „(KEINE) PROMOTION“ wird vertikal dargestellt | $\square$ |
Legende eingefärbt | $\square$ |
Farbe der Zellen zur „Promotion“ mit bedingter Formatierung grün / rot eingefärbt | $\square$ |
Für Anzahl UGs wird benutzerdefinierte Zellenformatierungen verwendet | $\square$ |
Logik | |
Anzahl UG (siehe Theorie zu COUNTIF unten) | $\square$ |
Bei „Promotion“ wird je nach Noten „PROMOTION“ oder „KEINE PROMOTION“ angezeigt (siehe Tipps unten) | $\square$ |
$\square$ |
Bemerkungen:
Logische Operatoren
Mit den logischen Operatoren AND, OR und XOR kann man mehrere Bedingungen miteinander verknüpfen. Der folgende Ausdruck nimmt den Wert „True“ („False“) an, falls beide Bedingungen erfüllt sind:
`=AND(<Bedingung 1>,<Bedingung 2>`
Den OR-Operator benutzt man genau gleich, nur reicht es hier, dass eine der Bedingungen erfüllt ist. Typischerweise verwendet man diese logischen Operatoren in der IF-Funktion.
Beispiel: Mit dem folgenden Befehl kann man ermitteln, ob in beiden Zellen A1 und B1 positive Zahlen stehen:
=IF(AND(A1>=0,B1>=0),"beide Zellen positiv","mind. eine Zelle negativ")
Erinnerung: Diese logischen Operatoren entsprechen and
, or
und ^
in Python.
Zählen wenn Bedingung erfüllt
Mit den Befehl COUNTIF kann man in einem Bereich die Anzahl Zellen zählen, die eine bestimmte Bedingung erfüllen:
=COUNTIF(<Zellenbereich>,<Bedingung in Anführungs- & Schlusszeichen>)
Zum Beispiel zählt man mit dem Befehl =COUNTIF(A1:A10,">0")
die Anzahl Zellen im Bereich A1:A10, welche Werte grösser Null beinhalten.
KRITERIEN | ERFÜLLT? |
---|---|
Darstellung | |
Bedingte Formatierung für alle drei Fälle der Promotion | $\square$ |
Zelle Z6 mit Überschrift „Promotion“ wird auch bedingt formatiert (siehe Theorie unten) | $\square$ |
Logik | |
Auch Fall „KNAPP PROMOVIERT“ implementiert | $\square$ |
Bedingte Formatierung mit benutzerdefinierter Formel
Die Formatierung einer Zelle kann vom Inhalt einer anderen Zelle abhängen. Verwende dazu eine bedingte Formatierung mit „Benutzerdefinierte Formel ist“. Ins Formel-Feld kann dann eine Formel getippt werden, die von einer anderen Zelle abhängt, in der Form =IF(<Bedingung>,1,0)
. Falls die Bedingung (nicht) erfüllt ist, nimmt nimmt der Befehl den Wert 1 (0) an und die bedingte Formatierung wird (nicht) aktiviert.
Erweitere deine Notentabelle weiter, z.B.:
Mit Spreadsheets kann man ganz einfach Rechnungen mit Daten machen. Damit kannst du Fragen wie die folgenden ganz einfach beantworten.
Arbeiten mit Daten
=TODAY()
gibt den Wert des heutigen Datums an (ändert sich jeden Tag).Beispiel: Der 17.04.2023 entspricht der Zahl $45033$. Addiert man nun $365$ zu dieser Zahl, entspricht diese dem Datum 16.04.2024 (weil 2024 ein Schaltjahr ist).
Schreibe nun ein Programm, in dem man die Geburtsdaten zweier Personen eintippen kann: Person 1 ist älter als Person 2. Der Code berechnet und gibt aus: