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:

  1. Kopieren Sie die Formel-Ergebniszeile
  2. Fügen Sie die Ergebniszeile in eine neue Zeile ein
  3. 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
=LINKS(D3;26) Eine genaue Anzahl an Zeichen aus einer Zelle ausgeben, beginnend von links www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 www.regesta-imperii.de/id/ Es wurde das Grundgerüst der URL zur Weiterverarbeitung vom veränderlichen Teil abgetrennt.
=RECHTS(D3;27) Eine genaue Anzahl an Zeichen aus einer Zelle ausgeben, beginnend von rechts www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 1181-03-11_1_0_4_2_4_4_2583 Es wurde die ID vom URL-Grundgerüst zur Weiterverarbeitung abgetrennt.[A 4]
=RECHTS(D3;FINDEN(„/“;D3)) Alle Zeichen aus einer Zelle bis zum Backslash ausgeben, beginnend von rechts www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583 1181-03-11_1_0_4_2_4_4_2583 Es wurde eine beliebig lange ID vom URL-Grundgerüst zur Weiterverarbeitung abgetrennt.[A 5]
=TEIL(D3;5;15) Exakt 15 Zeichen ab dem fünften Zeichen der Zelle www.regesta-imperii.de/ regesta-imperii Es wurden exakt 15 Zeichen ab dem fünften Zeichen der Zelle ausgegeben.
=WENN(B6>1; "x"; "o")[A 6] Wenn eine bestimmte Bedingung (z.B. B6>1) erfüllt ist, setze "x"; wenn nicht erfüllt, setze "o". =WENN(B6>1; "x"; "o"); B6 = 3 Ergebnis: "x" (d.h. "korrekt") Da B6 (3) größer als 1 ist, wird ein "x" in der Zelle gesetzt
=WENN(ISTLEER(B6); "Nicht vorhanden"; B6+C6) Weiteres Beispiel: Wenn Zelle C6 leer, zeige "nicht vorhanden" an; wenn Zelle C6 nicht leer, soll Summe von B6 und C6 berechnet werden. =WENN(ISTLEER(B6); "Nicht vorhanden"; B6+C6); B6 = 3; C6 = 6 Ergebnis: B6+C6 (9) Da die Zelle B6 nicht leer ist, wird die Rechenoperation durchgeführt.

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

Zurück zu Einführung (Calc als Medium der Datenaufnahme) ⇐⇒ Weiter zu Reguläre Ausdrücke in Calc

Anmerkungen

  1. Vgl. weiterführend die Funktionen-Übersicht von OpenOffice.
  2. Leider ist es nicht möglich, einen Zellbereich (E5:G5) direkt zu verketten. Es gilt, jede betroffene Zelle einzeln anzuführen (E5;F5;G5).
  3. 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.
  4. Dies ist beispielsweise sinnvoll, wenn eine Liste mit URLs vorliegt, bei denen sich ein Linkbestandteil geändert hat; man könnte sich alle variablen Linkbestandteile ausgeben lassen und vorne den neuen, unveränderlichen Linkbestandteil anfügen.
  5. Das automatische Aufsplitten von Zellen kann bequem auch über den Textkonvertierungsassistenten erfolgen.
  6. Bedingungen: Als Argumente können stets konstante Werte oder Formeln genutzt werden. Kriterien bei Bedingungen können WAHR oder FALSCH sein.