|
|
Zeile 1: |
Zeile 1: |
| {{Kurzform|Tabellenkalkulationsprogramme können sowohl für Dokumentationsaufgaben wie auch für Modellierungsaufgaben eingesetzt werden; nur mit letzterem beschäftigt sich dieses Kapitel. Die unterschiedliche Ausrichtung der beiden Aufgabenkategorien sollen Ihnen bewusst werden. | | {{Kurzform|Die Kriterien für "gute" Tabellenkalkulationsmodelle sind Gegenstand dieses Kapitels. Es werden die unterschiedlichen Typen von Tabellenkalkulationsmodellen angeführt und die unterschiedlichen Rollen, in denen Personen mit derartigen Modellen arbeiten, typisiert. Aus der Kombination von Typ des Modells und Rolle leiten sich dann auch die konkreten Anforderungen ab, wie das Modell im Einzelfall optimal gestaltet werden kann.}} |
| Tabellenkalkulationsprogramme sind selbst die Implementierung eines Modells – und darauf ergeben sich Restriktionen, die Sie kennen müssen, um darauf Ihre eigenen Modelle aufbauen zu können. Schlussendlich werden S ie erfahren, wie Sie solche Funktionen einsetzen, um Modelle zweckmäßig für Analyseaufgaben aufzubauen. Die Beispiele werden am Open-Source Produkt OpenOffice demonstriert; die Unterschiede zum Marktführer Microsoft-Excel sind aber selten größer als zwischen unterschiedlichen Versionen von Excel. Wenn Sie also Excel schon kennen, was der Normalfall sein dürfte, so ist die Verwendung von OpenOffice eine willkommene Prüfung Ihrer Fähigkeit, vorhandenes Wissen auf zwar andere, aber ähnliche Umgebungen übertragen zu können – eine Fähigkeit, die immer wieder von Ihnen gefordert werden wird.}}
| |
|
| |
|
|
| |
|
Zeile 6: |
Zeile 5: |
|
| |
|
|
| |
|
| == (K)Ein Modell? == | | == Formularmodell == |
|
| |
|
| Es wurde eingangs behauptet, man könne Tabellenkalkulationsprogramme sowohl für Dokumentationsaufgaben wie auch für Modellierungsaufgaben verwenden. Wie kann man aber nun erkennen, um welchen Aufgabentyp es sich handelt - bzw. handeln soll?
| |
|
| |
|
| Modell sind, so haben Sie aus Schauer <ref>Schauer, Reinbert, Betriebswirtschaftslehre, Grundlagen, 2., erw. Auflage, Wien 2009, S. 28</ref> in Erinnerung, "(stark) vereinfachte Abbilder der Realität, die entwickelt werden, um komplexe Zusammenhänge in den Betrieben wie in der Wirtschaft überschaubarer zu machen und auf wesentliche Elemente oder Eigenschaften zu reduzieren". Weiters wird dort in Erklärungsmodelle und Entscheidungsmodelle unterschieden und rein deskriptive Beschreibungsmodelle als Vorstufe zu Erklärungsmodellen dargestellt.
| | == Listenmodell == |
|
| |
|
| Mit dem in der Einleitung formulierten "Vorbehalt" verwenden wir das Beispiel einer Tätigkeitsaufzeichnung, wie Sie von Ihnen selbst stammen könnte. Sie sollen (rein deskriptiv) aufzeichnen, welcher Zeitaufwand für Sie bei der Absolvierung dieser Lehrveranstaltung entsteht und dabei zwischen den Lernphasen "Selbststudium", "Tutorium" und "Präsenz" unterscheiden und den Gesamtaufwand je Woche in einer Grafik darstellen. Diese Aufzeichnung stellt eine wesentliche Grundlage für die Entscheidung dar, ob die ECTS-Punktegewichtung mit den Inhalten in Einklang steht - und ist somit Bestandteil eines Entscheidungsmodells.
| |
|
| |
|
| [[Datei:LernLogbuch.jpg]]
| |
|
| |
|
| Wie können Sie nun beurteilen, ob die in Abb. x dargestellte Lösung eine geeignetes "Modell" darstellt? Manche Faktoren sind "von außen" - also schon von der Abbildung her erkennbar, andere jedoch nur "von innen" - also nur unter Beachtung der Eingabe in den jeweiligen Zellen, da ein feste Eingabe und ein berechnetes Ergebnis "von außen" nicht unterscheidbar sind.
| | == Benutzerrollen == |
|
| |
|
| * Der Zeitraum "von - bis" in einer Zelle bedeutet, dass das als Textfeld eingegeben wurde. Damit ist eine Berechung - etwa der Dauer - auf Basis dieser Eingabe zwar nicht unmöglich, aber doch so komplex, dass Sie nicht zu erwarten ist.
| |
| * Die getrennte Aufzeichung der Aktivitäten je Lernphase macht eine "modellhafte" Berechnung der Summe je Woche unmöglich
| |
| * Kontrollieren würde man dann noch, ob die Kalenderwoche fix eingetragen wurde oder ob das mit einer Formel berechnet wurde; der Wert hängt zweifellos vom Datum ab und wenn diese Beziehung nicht durch eine Formel abgebildet wird, dann ist ein wesentliches Merkmal des Modells nicht abgebildet.
| |
|
| |
| Die Lösung ist Abb. 1 ist also ein typisches Beispiel, in dem das Tabellenkalkulationsprogramm fürs Dokumentieren eingesetzt wurde - dasselbe hätte man auch mit einem Textverarbeitungsprogramm erreichen können; selbst einfache Formeln kann man dort nämlich in Tabellen verwenden.
| |
|
| |
| == Wie sonst? ==
| |
|
| |
| Manche werden sich angesichts Abbildung 1 nun fragen, wie denn sonst man eine solche Aufgabe lösen sollte. Eine mögliche Lösung zeigt Abb. 2:
| |
|
| |
| [[Datei:LernLogbuch-Modell.jpg]]
| |
|
| |
| Was sind nun die Vorzüge dieser Lösung? Von außen betrachtet ist wenig erkennbar - einige werden wohl sogar die erste Lösung "schöner" finden. Das wird wohl auch stimmen - denn grafische Gestaltung steht manchmal in Widerspruch zu zweckmäßiger Modellierung. Ein paar Indizien für sinnvolle Modellierung sind aber doch erkennbar:
| |
| * Manche Zellen sind kursiv, andere in Normaldruck und unterstrichen. Auf den zweiten Blick sollten Sie erkennen, dass die einen berechnet werden, die anderen Eingabedaten sind. Wenn Sie mit der Tabelle arbeiten, werden Sie feststellen, dass Sie mit der TAB-Taste automatisch nur auf jene Zellen kommen, die durch die Unterstreichung gekennzeichnet sind.
| |
| * Die Zeiten von und bis sind in getrennten Spalten; es ist daher einfach möglich, die Stunden als Differenz zu berechnen.
| |
| * Die Phase ist nun als eigene Spalte ausgewiesen - das ermöglicht es einfach, durch die Anwendung des Befehls "Sortieren" auch eine Gruppierung nach Phase herzustellen.
| |
| * Die Summe je Kalenderwoche ist ebenfalls in einer eigenen Spalte ausgewiesen. Das deutet darauf hin, dass dieser Modell einfach erweiterbar sein kann, indem neue Zeilen leicht einfügbar ist. Mehr als die Option kann man von außen nicht erkennen, der Rest ist anhand der Formeln nur von innen prüfbar.
| |
| Wenn Sie eine Lehrveranstaltung aus Informationsverarbeitung besuchen, wird Ihnen im Tutorium auch die Tabelle zur Prüfung "von innen" zur Verfügung stehen. Dann können Sie auch die folgenden Modellmerkmale prüfen:
| |
| * Die Kalenderwoche wird automatisch berechnet; Sie können diese Zelle nicht ändern, weil diese Zelle gesperrt ist. Sie ist daher auch kursiv gekennzeichnet.
| |
| * Datum, von und bis sind Eingabezellen; sind sind durch entsprechend benannte Formate als nicht gesperrt definiert und zur visuellen Kennzeichnung für den User unterstrichen. (Vertiefungsthema Tabellen schützen)
| |
| * Stunden werden wiederum berechnet; ebenso die Summe je Kalenderwoche.
| |
| * Diese Summe enthält eine relativ einfache Formel, die in jeder Zeile berechnet wird, aber durch eine bedingte Formatierung nur in der jeweils letzten Zeile einer Kalenderwoche angezeigt wird. (Vertiefungthema Bedingte Formatierung)
| |
|
| |
| Diese Tabelle stellt sicher, dass alle Beziehung zwischen den Elementen des Modells, die da wären,
| |
| * Die Kalenderwoche ergibt sich aus dem Datum
| |
| * Die Stunden ergeben sich aus Beginn- und Endzeit
| |
| * Die Summe je Kalenderwoche ergibt sich aus den Stunden je Arbeitsphase in derselben Kalenderwoche
| |
| * Die Gesamtsumme ergibt sich aus der Stundensumme aller Tage.
| |
| automatisch richtig berechnet werden; ein versehentliche falsche Verknüpfung durch den User kann nicht vorkommen. Sie können nach Aufhebung des Tabellenschutzes auch Zeilen einfügen - die einzige Aktion, die ggf. erforderlich sein wird, ist das Sortieren der Tabelle. Eine Voraussetzung für das Funktionieren des Modells ist nämlich, dass die Daten nach dem Datum aufsteigend sortiert sind.
| |
|
| |
| Diese Voraussetzung können Sie auch nicht "automatisch" beheben - wieso das so ist, erfahren Sie später im Abschnitt "Prozedural vs. Non-Prozedural".
| |
|
| |
| Wenn Ihnen noch Verbesserungsvorschläge für die dargestellte Lösung einfallen, dann haben Sie zweifellos recht - auch der Autor hatte solche. Wir wollen es für den Moment dennoch bei diesem Stand belassen und uns der Frage zuwenden, auf welchem Fundament man bei der Arbeit mit Tabellenkalkulationsprogrammen aufbaut und wieso man manche Probleme mit Tabellenkalkulationsmodellen nicht lösen kann.
| |
|
| |
| == Was hat Programmierung mit Tabellenkalkulation zu tun?==
| |
|
| |
| Die Antwort wird Sie möglicherweise überraschen: Die Erstellung von Tabellenkalkulationsmodellen ist eine Form der Programmierung. Grundprinzip der Programmierung ist es, Regeln zu formulieren, die aufgrund von gegebenen Eingabedaten neue Ergebnisse erzeugen. Es ist eine sehr spezialisierte und benutzernahe Form von Programmierung, die Sie mit Hilfe von Tabellenkalkulationsprogramme betreiben - aber die Grundprinzipien sind dieselben. Vieles wird Ihnen bei Tabellenkalkulationsprogrammen "abgenommen" - aber für die Gestaltung komplexerer Modelle, insb. bei Grenzfällen bzw. bei der Fehlersuche, sind die allgemeinen Prinzipien für die Beurteilung der Softwarequalität auch in Zusammenhang mit Tabellenkalkulationsmodellen von Belang.
| |
|
| |
| Sie sollten daher Modelle so entwickeln, dass andere (und auch Sie selbst nach längerer Pause) den Sinn des Modells rasch erkennen und auch nachprüfen können. Es sollte gleichzeitig auf neue Anforderungen anpassbar sein, was einen klar strukturierten Aufbau voraussetzt. Es sollte gleichzeitig die Daten in einer Form bereitstellen, die auch eine anschließende Weiterverarbeitung sicherstellt. Das erfordert ein Grundverständnis über die folgenden Programmierkonzepte:
| |
|
| |
| === Variable ===
| |
| Allen Programmiersprachen ist gemeinsam, dass Sie Variable verwenden, um wechselnde Werte, mit denen im Programm gearbeitet wird, aufzunehmen. Immer sind diesen Variablen Speicheradressen zugeordnet - bei der Tabellenkalkulation auch. Die "Speicheradressen" der Variablen sind hier die Zellreferenzen: Von A1 bis AS65535 zum Beispiel. Bei der Programmierung verwendet man üblicherweise "sprechende" Bezeichnungen. "Bruttobetrag - MWSt" liefert wesentlich mehr Bedeutung ("Semantik") als "B1-B2". Auch wenn es selten verwendet wird, bieten auch Tabellenkalkulationsprogramme die erstgenannte Möglichkeit: Man kann für Zellen oder Zellbereiche Namen vergeben und diese dann statt der Zelladressen verwenden. Namen werden dabei standardmäßig als absolute Adressen definiert.
| |
| Die Verwendung von Namen ist etwas umständlich; man wird daher nicht in jeder Formel Namen anwenden. Sehr zu empfehlen ist dies jedoch dort, wo eine Verweis auf weiter entfernte Zellen erfolgt, die außerhalb des sichtbaren Umfelds liegen und deren Bedeutung daher nicht "auf einen Blick" klar wird.
| |
|
| |
| === Datentypen ===
| |
| Programmiersprachen weisen meist ein sehr rigides Konzept an Datentypen auf; man muss vor jeder Verwendung einer Variablen angeben, welchem Datentyp sie zugeordnet ist. Der Datentyp definiert, welche Symbolkombinationen eine Variablen enthalten kann und welche Operationen auf diese Variable zugelassen sind. Die vorherige Typfestlegung ermöglichst es den Übersetzungsprogrammen (Compiler), schon vor der Laufzeit des Programms bestimmte Fehler zu erkennen.
| |
| Eine Typfestlegung in diesem Sinne ist Ihnen bei Tabellenkalkationsprogrammen noch nie untergekommen - und dennoch gibt es Datentypen auch hier. Ihnen ist sicher schon aufgefallen, dass Eingaben manchmal linksbündig, manchmal rechtsbündig angeordnet werden. Das ist eine Konsequenz der Zuordnung des Datentyps. Zahlen werden rechtsbündig, Texte werden linksbündig dargestellt - wobei das natürlich durch den User verändert werden kann.
| |
| Normalerweise erfolgt die Zuordnung des Datentyps implizit - d. h. dass anhand der eingegebenen Zeichen das Programm selbständig den passendsten Datentyp zuordnet.
| |
| * Die Matrikelnummer 0755345 wird daher als Zahl erkannt und typischerweise ohne führende 0 dargestellt. Das die Matrikelnummer aber immer siebenstellig sein muss, wäre hier der Datentyp "Text" zu wählen. Auch das können Sie erreichen, indem Sie das "Erkennungszeichen" ' für den Datentyp Text eingeben. Die Zahl wird dann als Datentyp Text zugeordnet und mit führender Null (rechtsbündig) in der Zelle angezeigt.
| |
| * Wenn Sie die Artikelnummer "2/2/4" in eine Zelle eingeben, dann wird das ebenfalls nicht als Text erkannt, sondern implizit dem Datentyp "Datum" zugeordnet.
| |
| * Der 1. 1. 20000 dagegen wird möglicherweise nicht als Datum erkannt werden, weil der Datumsbereich zB in Open Office im Jahr 9999 endet. Das wird zwar in aller Regel als Planungshorizont ausreichen - kann aber bei Tippfehlern durchaus unerwartete Konsequenzen haben.
| |
| Konsequenzen hat die Zuordnung von Datentypen insbesondere bei Formeln, die Zellen unterschiedlicher Datentypen verknüpfen. Hier unterscheiden sich teilweise die Tabellenkalkulationsprogramme. Alle konvertieren Datentypen, sofern das inhaltlich eindeutig möglich ist (zB Verkettung von Text und Zahl). Wenn das nicht möglich ist, ignorieren manche Programme die nicht konvertierbaren Werte einfach - andere geben einen Fehlerwert aus. Beides kann je nach Situation nützlich sein. Zu wissen, was das eigene Programm macht, ist allerdings bei der Fehlersuche sehr nützlich!
| |
|
| |
| === Prozedural vs. Non-Prozedural ===
| |
| Die meisten Programmiersprachen arbeiten "prozedural", d. h. dass der Weg zur Lösung des Problems Schritt für Schritt in einer formalen Sprache definiert werden muss. Das ist bei Tabellenkalkulation (und auch in SQL) anders: Bei diesen Werkzeugen, die dann als "Non-prozedural" bezeichnet werden, sind die Lösungswege bereits "vorgedacht" und nur mehr durch die eingegebenen Daten "modifizierbar". Solche non-prozeduralen Tools sind daher auch auf eine bestimmte Kategorie von Problemstellungen beschränkt und nicht wie prozedurale Programmiersprachen universell einsetzbar.
| |
|
| |
| Wenn Sie an Beispiel 2 zurückdenken: Sie würden sich vielleicht wünschen, dass die Tabelle sich automatisch aufsteigend nach Datum sortiert, falls einmal ein Datum außerhalb der Reihenfolge eingegeben wird. Eine solche Forderung ist mit dem Prinzip der "Non-Prozeduralität" nicht vereinbar - solange es nicht durch eine entsprechende Funktion im Programm "vorgedacht" ist. Vieles, was heute etwa durch die bedingte Formatierung möglich ist, hätte man vor einigen Jahren noch als Beispiel für das Erfordernis prozeduraler Programmierung verwendet.
| |
|
| |
| Auch wenn diese Entwicklung sicher weitergehen wird, werden immer Aufgaben verbleiben, die nur durch prozedurale Programmierung lösbar sind. Wenn ein Großteil der Aufgabe aber durch Tabellenkalkulation lösbar ist, wäre es sinnlos, das alles prozedural "nachzuprogrammieren". Jedes moderne Tabellenkalkulationswerkzeug bietet daher als Zusatzfeature auch die Erweiterung von prozeduralen Lösungen im Form von Makros an. In der einfachsten Version können Sie ein Makro erzeugen, indem Sie eine Aktion manuell ausführen und diesen Vorgang aufzeichnen. Sie erzeugen damit den Sourcecode eines Makros, das Sie weiter bearbeiten - wenn Sie es können. Im Rahmen dieses Kurses werden Sie das nicht lernen.
| |
|
| |
|
|
| |
|
Zeile 93: |
Zeile 30: |
|
| |
|
| == Zitiervorschlag == | | == Zitiervorschlag == |
| ''Höller'' in ''Pils'', Informationsverarbeitung I 1.00, Analysieren als Entscheidungsvorbereitung#Überschrift (mussswiki.idv.edu/iv1) | | ''Höller'' in ''Pils'', Informationsverarbeitung I 1.00, Tabellenkalkulationsmodelle#Überschrift (mussswiki.idv.edu/iv1) |