Hilfreiche Funktionen zur Datenmodellierung
From DHVLab
In den vorangehenden Kapiteln dieses Manuals haben Sie bereits die Verwendung von Funktionen in Calc kennengelernt. Der Einsatz von Funktionen kann auch bei der Aufbereitung einer Datensammlung für den Import in eine Datenbank sinnvoll sein. Nicht selten erhalten Sie die Daten nicht in der gewünschten Form; Anpassungen sind daher in vielen Fällen vonnöten. In diesem Abschnitt werden Ihnen zunächst eine Reihe an nützlichen Funktionen vorgestellt[A 1]. Anschließend werden wir uns eine Beispieldatensammlung aus der Praxis vornehmen, um dort die Funktionsweise ausgewählter Formeln in praxi auszuprobieren.
Ein wichtiger Hinweis bereits vorab: Für den Import der Daten müssen Sie diese unabhängig von den angewandten Calc-Formeln abspeichern. Gehen Sie wie folgt vor:
- Kopieren Sie die Formel-Ergebniszeile
- Fügen Sie die Ergebniszeile in eine neue Zeile ein
- Wählen Sie über "Bearbeiten" → "Inhalte einfügen" die Option "Formeln deaktivieren"
Link auf Datei ergänzen
Funktionen in Calc lassen sich in folgende Kategorien unterteilen:
- Textfunktionen
- Filterfunktionen
- Datums- und Zeitfunktionen
- Matrixfunktionen
- Tabellenfunktionen
- Datenbankfunktionen
Im Folgenden werden wir uns mit Funktionen aus den Bereichen Text, Filtern, Matrix und Tabellen befassen.
Textfunktionen
Textfunktionen sind hilfreich, um eine Datensammlung zu modellieren, d.h. in ein einheitliches Format zu bringen und zeitsparend für den Import in eine Datenbank aufzubereiten.
Funktion | Problemstellung | Beispiel Problem | Beispiel Lösung | Lösungsbeschreibung |
---|---|---|---|---|
=LÄNGE(E20) | Anzahl der Zeichen in Zelle E20? | Ludwig XIV. | 11 | Zelle E20 umfasst 11 Zeichen |
=FINDEN(„ä“;F4) | An welcher Position befindet sich in Zelle F4 ein "ä"? | Städel Museum | 3 | In Zelle F4 befindet sich ein "ä" an 3. Position |
=GLÄTTEN(C1) | Unnötige Leerzeichen innerhalb einer Zelle tilgen | Ludwig der XIV. | Ludwig der XIV. | Leerzeichen wurde entfernt |
=SÄUBERN(F3) | In Zelle F3 befinden sich fehlerhaft ausgegebene Zeichen | Ludðwig XIV. | Ludwig XIV. | Fehlerhaft ausgegebenes Zeichen wurde entfernt |
=ERSETZEN(Zelle; Position; Länge; "Textersatz") |
In Zelle E3 soll ab dem 32. Zeichen mit einer Länge von 30 Zeichen den bestehenden Text durch neuen Text ersetzen: =ERSETZEN(E3; 32; 30; "id/1181-03-11_1_0_4_2_4_4_2583") | http://www.regesta-imperii.de/1181-03-11_1_0_4_2_4_4_2583 | http://www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 | Die veraltete URL wurde im Masseverfahren aktualisiert |
=KLEIN(G4) | In Zelle G4 befindlicher Text soll in Kleinbuchstaben wiedergegeben werden | Ludwig_XIV | ludwig_xiv | Text in Kleinbuchstaben ausgegeben, z.b. für halbautomatische Erstellung von URLs |
=VERKETTEN(E5;F5)[A 2] | Inhalt aus den Zellen E5 und F5 soll verbunden werden | E5: http://www.regesta-imperii.de/id/ F5: 1181-03-11_1_0_4_2_4_4_2583 | http://www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 | Zelleninhalte verbunden, z.b. für halbautomatische Erstellung von URLs |
=VERKETTEN(E5;"/id/";F5) | Inhalt aus den Zellen E5 und F5 soll mit einer Einfügung verbunden werden | E5: http://www.regesta-imperii.de F5: 1181-03-11_1_0_4_2_4_4_2583 | http://www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 | Zelleninhalte mit statischer Einfügung verbunden |
=WECHSELN(C1;"ö";"oe")[A 3] | In Zelle C1 befindlicher Umlaut 'ö' soll in 'oe' umgewandelt werden | http://www.öaw.ac.at/österreichische-akademie-der-wissenschaften/ | http://www.oeaw.ac.at/oesterreichische-akademie-der-wissenschaften/ | Der fehlerhafte Umlaut in der URL wurde entfernt |
=WECHSELN(WECHSELN(WECHSELN ((C1;"ö";"oe");"ü";"ue");"ß";"ss") |
In Zelle C1 befindliche Umlaute und ß sollen umgewandelt werden | größere Änderungen | groessere Aenderungen | Mehrere Änderungen können verschachtelt werden |
=ERSETZEN(A3;1;6;VERKETTEN (TEIL(A3;1;2);"_";TEIL(A3;3;2);"_";TEIL(A3;5;2))) |
In Zelle A3 befindliches Datum soll mit Unterstrichen ausgegeben werden | 090816 | 09_08_16 | Auch hier ist eine Verschachtelung mehrerer Funktionen notwendig |
=RÖMISCH(B11) | In Zelle B11 befindliche Zahl soll als römische Zahl wiedergegeben werden | 14 | XIV | Die arabische Zahl 14 wird als römische Zahl (XIV) wiedergegeben |
=ARABISCH(B11) | In Zelle B11 befindliche Zahl soll als arabische Zahl wiedergegeben werden | XIV | 14 | Die römische Zahl XIV wird als arabische Zahl (14) wiedergegeben |
Filterfunktionen
Funktion | Problemstellung | Beispiel Problem | Beispiel Lösung | Lösungsbeschreibung |
---|---|---|---|---|
folgt | folgt | folgt | folgt | folgt |
folgt | folgt | folgt | folgt | folgt |
folgt | folgt | folgt | folgt | folgt |
=LINKS(D3;5) – gibt die ersten fünf Zeichen der Zelle D3 aus =RECHTS(D3;2) – gibt die letzten zwei Zeichen der Zelle D3 aus =RECHTS(D3;FINDEN(„/“;D3)) – gibt alle Zeichen der Zelle D3 aus, beginnend am Ende und nur bis zum Backslash [dies kann beispielsweise sinnvoll sein, wenn man eine Liste mit URLS hat, bei denen sich ein Linkbestandteil geändert hat; man könnte sich also alle variablen Linkbestandteile ausgeben lassen und vorne den neuen, unveränderlichen Linkbestandteil einfügen] In die andere Richtung wäre auch denkbar: =TEIL(D3;3;5) – Die Funktion gibt ab Zeichen 3 der Zelle D3 exakt 5 Zeichen aus Bedingungen Als Argumente können stets konstante Werte oder Formeln genutzt werden. Kriterien bei Bedingungen können WAHR oder FALSCH sein =WENN(Bedingung; „x“; „o“) – Wenn eine bestimmte Bedingung (z.B. Zelle B6>1) erfüllt ist, dann setze „x“, wenn sie nicht erfüllt ist, setze „o“ Weiteres Beispiel: =WENN(ISTLEER(B6); „Nicht vorhanden“; B6+C6) – Wenn die Zelle C6 leer ist, soll „Nicht vorhanden“ angezeigt werden; wenn die Zelle C6 dagegen nicht leer ist, soll die Summe von B6 und C6 berechnet werden. Wenn der Text einer Zelle in einen linken und einen rechten Teil aufgetrennt werden soll, eignen sich dafür die Funktionen LINKS() und RECHTS(): =RECHTS(A2;LÄNGE(A2)-SUCHEN("/";A2)) Anschluss: I 567891
Matrixfunktionen
Addieren, Multiplizieren etc. von ganzen Zellbereichen, auch mit Einbezug von Bedingungen
Folgt
http://www.ooowiki.de/CalcFunktionenMatrix(2f)GrundRechenarten.html
http://www.ooowiki.de/CalcFunktionenMatrix(2f)RechnenWenn.html
http://www.ooowiki.de/CalcFunktionenMatrix(2f)Matrix.html
Funktion | Problemstellung | Beispiel Problem | Beispiel Lösung | Lösungsbeschreibung |
---|---|---|---|---|
folgt | folgt | folgt | folgt | folgt |
folgt | folgt | folgt | folgt | folgt |
folgt | folgt | folgt | folgt | folgt |
Tabellenfunktionen
Folgt
http://www.ooowiki.de/CalcFunktionenTabellen(2f)DatenFinden.html
Funktion | Problemstellung | Beispiel Problem | Beispiel Lösung | Lösungsbeschreibung |
---|---|---|---|---|
=VERWEIS(Suchkriterium; Suchvektor; Ergebnisvektor) | folgt | folgt | folgt | Liefert die relative Position eines Elements in einer Matrix, das mit einem angegebenen Wert übereinstimmt |
=SVERWEIS(Suchkriterium; Matrix; Index; sortiert) | folgt | folgt | folgt | Senkrechte Suche mit Referenz auf rechts benachbarte Zellen |
=WVERWEIS(Suchkriterium; Matrix; Index; sortiert) | folgt | folgt | folgt | Sucht einen Wert und einen Bezug auf die Zellen unter dem ausgewählten Bereich |
Anmerkungen
- ↑ Vgl. weiterführend die Funktionen-Übersicht von OpenOffice.
- ↑ Leider ist es nicht möglich, einen Zellbereich (E5:G5) direkt zu verketten. Es gilt, jede betroffene Zelle einzeln anzuführen (E5;F5;G5).
- ↑ Die Funktion kommt ohne Positions- oder Längenangabe aus. Die vorgegebene Zeichenkette wird gesucht und ersetzt. Wenn nur ein Vorkommen (und nicht alle Fälle) ausgetauscht werden sollen, kann dies entsprechend definiert werden: =WECHSELN(C1;"ö";"oe";1) würde das 'ö' nur beim ersten Vorkommen abändern.