Difference between revisions of "Hilfreiche Funktionen zur Datenmodellierung"
From DHVLab
Line 131: | Line 131: | ||
| <nowiki>www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583</nowiki> | | <nowiki>www.regesta-imperii.de/id/1181-03-11_1_0_4_2_4_4_2583</nowiki> | ||
| <nowiki>1181-03-11_1_0_4_2_4_4_2583</nowiki> | | <nowiki>1181-03-11_1_0_4_2_4_4_2583</nowiki> | ||
− | | Es wurde eine beliebig lange ID vom URL-Grundgerüst zur Weiterverarbeitung abgetrennt. | + | | Es wurde eine beliebig lange ID vom URL-Grundgerüst zur Weiterverarbeitung abgetrennt.<ref group="A">Das automatische Aufsplitten von Zellen kann bequem auch über den Textkonvertierungsassistenten erfolgen.</ref> |
|- | |- | ||
! scope="row"| =TEIL(D3;5;15) | ! scope="row"| =TEIL(D3;5;15) |
Revision as of 15:34, 20 July 2016
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 |
---|---|---|---|---|
=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 |
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.
- ↑ 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.
- ↑ Das automatische Aufsplitten von Zellen kann bequem auch über den Textkonvertierungsassistenten erfolgen.
- ↑ Bedingungen: Als Argumente können stets konstante Werte oder Formeln genutzt werden. Kriterien bei Bedingungen können WAHR oder FALSCH sein.