Calc: Subtraktion von Uhrzeitangaben

Hallo Wolfgang & Andreas,

nach Deinem Hinweis auf die "[...]" habe ich mir mal das Format-Gedöns etwas genauer angeschaut und festgestellt, das man mit den "[...]" auch Farbe steuern und einfache Bedingungen setzen kann, so dass auch auf diesem Weg eine Lösung möglich ist ohne "C": =(B1>A1)*(B1-A1).

Spalte "A": Format "HH:MM"

Spalte "B": Format "HH:MM" und zusätzlich eine bedingte Formatierung, damit Werte B1 < A1 gleich "ins Auge fallen": "Formel ist" "B1<A1" und in der Vorlage "rote Schrift" einstellen.

Spalte "C": Format "[WEISS][<0]HH:MM;[SCHWARZ][>=0]HH:MM;Standard" (Das "Standard" fügt LO automatisch an !) und Formel "=B1-A1"

Diese Einstellungen ergeben dann:

[1] A1: 13:00 & B1: nix => C1: nix

[2] A1: 13:00 & B1: 12:00 => C1: nix (Die 12:00 erscheint in Rot wegen der bedingten Formatierung !)

[3] A1: 13:00 & B1: 13:15 => C1: 00:15

[4] A1: 13:00 & B1: 13:00 => C1: 00:00

Gruß
Hans-Werner ;-))

OoOHWHOoO schrieb:

Spalte "C": Format "[WEISS][<0]HH:MM;[SCHWARZ][>=0]HH:MM;Standard"

Danke. Funktioniert.

Das erscheint mir als vernünftige Lösung, auch wenn ich grundsätzlich
passende Formeln solchen Format-Hacks vorziehe.

Aber ich bin ja nicht dogmatisch :slight_smile:

Und im Originaldokument gibt es immerhin 4 Intervalle.
Da würde es, wie im Ausgangsposting erwähnt, länglich mit logischen
Prüfungen.

A | B | C | D | E | F | G | H | I | J

13:00 | | | | | | | | =B1-A1+D1-C1+F1-E1+H1-G1 | =C1x24

Gruß, Andreas

Puh, ein grober workarround (wortwörtlich rund um das Problem herum ;-))

Wenn keine Ausgabe erfolgen soll, wenn in irgend einem der Intervalle
ein Eintrag fehlt, dann muss man das herausfinden. Eine Möglichkeit
wäre, vorausgesetzt die 4 Intervalle liegen nebeneinander (A-H), nach
leeren Zellen zu suchen:

=wenn(anzahlleerzellen(A1:H1)>0;"";B1-A1+D1-C1+F1-E1+H1-G1)

oder bei fixer Intervallanzahl

=wenn(anzahl(A1:H1)<>8;"";B1-A1+D1-C1+F1-E1+H1-G1)

Nur so eine Idee ...

LG Günther

Hallo Andreas,

da muss man sich nicht verrenken. Die "ordendliche Lösung" - ohne Format-Hacks, wie Du es nennst - ist ein kleines Makro, welches man in Spalte "I" als Funktion aufruft. Aber dazu müsstest Du schon mal etwas exakter formulieren, was die Problemstellung ist. Ohne exakte Problembeschreibung kann man nicht programmieren.

Soweit ich es verstanden habe:

[1] Die Spalten "A" bis "H" enthalten Uhrzeitangaben. In welchem Format ? Nur Stunden als Ganzzahl oder als "HH:MM" ?

[2] Die Spalte "I" enthält die eigentlich (Makro-) Funktion ( =INTSUM(A1;B1;C1;D1;E1;F1;G1;H1) ), welche diese Differenzen B1-A1, D1-C1, F1-E1,H1-G1 bestimmt, aus den Differenzen die Summe bildet und diese als Ergebnis zurück gibt. Die jeweilige Differenz soll nur dann gebildet werden, wenn B1>A1 bzw. D1>C1 bzw. F1>E1 bzw. H1>G1. Das ist einfachste BASIC-Programmierung ...

Siehe auch: https://help.libreoffice.org/Calc/User-Defined_Functions/de

[3] Was "J"= C1*24 bedeuten soll wissen die Götter.

Gruß
Hans-Werner

------ Originalnachricht ------

Günther Breitfuß schrieb:

Puh, ein grober workarround (wortwörtlich rund um das Problem herum ;-))

Wenn keine Ausgabe erfolgen soll, wenn in irgend einem der Intervalle
ein Eintrag fehlt, dann muss man das herausfinden. Eine Möglichkeit
wäre, vorausgesetzt die 4 Intervalle liegen nebeneinander (A-H), nach
leeren Zellen zu suchen:

=wenn(anzahlleerzellen(A1:H1)>0;"";B1-A1+D1-C1+F1-E1+H1-G1)

Das erste Intervall ist obligat, die restlichen 3 können, müssen aber
nicht gefüllt werden.
Daher funktioniert die Idee mit der Anzahl der leeren Zellen nicht.
Denn wenn das erste Intervall mit ausgefüllt ist, das zweite nur halb,
dann hat man auch eine völlig falsche Summe.

Mit Logikfunktionen muss man jedes Intervall für sich betrachten.

Eine Funktion wie

"Wenn eine von vier Summen < 0" gibt es soweit ich weiß nicht.
Die müssten man selber bauen.

Gruß, Andreas

OoOHWHOoO schrieb:

da muss man sich nicht verrenken. Die "ordendliche Lösung" - ohne
Format-Hacks, wie Du es nennst - ist ein kleines Makro, welches man in
Spalte "I" als Funktion aufruft.

Ein Makro empfinde ich für so eine Aufgabe als nicht angemessen.

Dann kann man auch eine längere Formel verwenden:

=WENN(ODER(B1-A1<0;D1-C1<0;F1-E1<0;H1-G1<0);"";B1-A1+D1-C1+F1-E1+H1-G1)

Aber vielen Dank für die Anregung.

[3] Was "J"= C1*24 bedeuten soll wissen die Götter.

Diese Formel wandelt einen Zeitwert in eine Dezimalzahl um.

Gute Nacht, Andreas

Hallo Andreas,

Deine Formel

=WENN(ODER(B1-A1<0;D1-C1<0;F1-E1<0;H1-G1<0);"";B1-A1+D1-C1+F1-E1+H1-G1)

liefert "", sobald mindestens 1 Differenz <0 ist. Ist das so gewollt ?

Das Makro liefert die Summe der Differenzen, die >0 sind.

Makro:

Function S(A as Date,B as Date,C as Date,D as Date,E as Date,F as Date,G as Date,H as Date) as Variant
S = IIf(B>A,B-A,0)+IIf(D>C,D-C,0)+IIf(F>E,F-E,0)+IIf(H>G,H-G,0) : S = IIF(S=0,"",S)
End Function

Formate:

Spalte "A" bis "I": "HH:MM"

Inhalte:

Spalte "A" bis "H": Uhrzeiten (beispielsweise 15:30) und Spalte "I": =S(A1;B1;C1;D1;E1;F1;G1;H1) mit Ausgabe: "HH:MM" oder ""

Beispiele:

16:30 16:00 16:30 16:00 16:30 16:00 16:30 16:00
16:30 17:00 16:30 16:00 16:30 16:00 16:30 16:00 00:30
16:30 16:00 16:30 17:00 16:30 17:00 16:30 16:00 01:00
16:00 17:00 16:00 17:00 16:00 17:00 16:00 17:00 04:00

Gruß
Hans-Werner

------ Originalnachricht ------

OoOHWHOoO schrieb:

Deine Formel

=WENN(ODER(B1-A1<0;D1-C1<0;F1-E1<0;H1-G1<0);"";B1-A1+D1-C1+F1-E1+H1-G1)

liefert "", sobald mindestens 1 Differenz <0 ist. Ist das so gewollt ?

Ja. Ich hatte das als pragmatische Lösung gewählt.

Das Gesamtergebnis auch dann zu zeigen, wenn bereits eines oder
mehrere der 4 Teilergebnisse größer als 0 ist, wäre vielleicht noch
etwas hübscher.
Aber solange eines der 4 Arbeitsintervalle eines Tages begonnen aber
nicht abgeschlossen ist, ist die Anzeige eines Gesamtergebnisses auch
nicht wirklich sinnvoll/wichtig.

Das Makro liefert die Summe der Differenzen, die >0 sind.

Makro:

Function S(A as Date,B as Date,C as Date,D as Date,E as Date,F as Date,G
as Date,H as Date) as Variant
S = IIf(B>A,B-A,0)+IIf(D>C,D-C,0)+IIf(F>E,F-E,0)+IIf(H>G,H-G,0) : S =
IIF(S=0,"",S)
End Function

Das ist auf jeden Fall eine interessante Anregung, vielen Dank.

Insgesamt bevorzuge ich es, Tabellen zu bauen, wo ich die in ihr
eingesetzten Techniken selber beherrsche.

Herzliche Grüße, Andreas

P.S.:
Mein Buch zu Calc ist mittlerweile in die Jahre gekommen.
"OpenOffice3. Jörg Schmidt. Verlag Galileo Computing."
Weiß jemand, ob ein umfangreiches und gutes Buch zu Calc 6 bald
erscheinen soll?

Guten Morgen Andreas,

kein Problem ...

Der Vollständigkeit halber, um eine kleine Zeile erweitert, verhält sich das Makro so, wie Du es jetzt bevorzugst:

Function S(A as Date,B as Date,C as Date,D as Date,E as Date,F as Date,G as Date,H as Date) as Variant
If (A>B Or C>D Or E>F Or G>H) Then : S="" : End : Endif
S = IIf(B>A,B-A,0)+IIf(D>C,D-C,0)+IIf(F>E,F-E,0)+IIf(H>G,H-G,0) : S = IIF(S=0,"",S)
End Function

15:00 14:00 15:00 16:00 15:00 16:00 15:00 16:00
15:00 15:00 15:00 16:00 15:00 16:00 15:00 16:00 03:00
15:00 16:00 15:00 16:00 15:00 16:00 15:00 16:00 04:00

Schönen (hoffentlich nicht allzu heißen) Tag,
Gruß
Hans-Werner ;-))

------ Originalnachricht ------

nach Deinem Hinweis auf die "[...]" habe ich mir mal das Format-Gedöns
etwas genauer angeschaut und festgestellt, das man mit den "[...]" auch
Farbe steuern und einfache Bedingungen setzen kann, so dass auch auf
diesem Weg eine Lösung möglich ist ohne "C": =(B1>A1)*(B1-A1).

Spalte "A": Format "HH:MM"

Spalte "B": Format "HH:MM" und zusätzlich eine bedingte Formatierung,
damit Werte B1 < A1 gleich "ins Auge fallen": "Formel ist" "B1<A1" und
in der Vorlage "rote Schrift" einstellen.

Spalte "C": Format "[WEISS][<0]HH:MM;[SCHWARZ][>=0]HH:MM;Standard" (Das
"Standard" fügt LO automatisch an !) und Formel "=B1-A1"

Etwas ungünstig; irgendwann kommst du vielleicht auf die Idee, den
Zellen nen farbigen Hintergrund zu verpassen, und dann siehst du
plötzlich weiße Zahlen. Besser wäre

"[>0][HH]:MM;@"

o. ä. (Erklärung siehe meine andere Mail).

Wolfgang

Hallo Wolfgang,

danke für den Hinweis, ist eine interessante und trickreiche Format-Idee.

Gruß
Hans-Werner ;-))

------ Originalnachricht ------

privat

OoOHWHOoO schrieb:

Deine Formel

=WENN(ODER(B1-A1<0;D1-C1<0;F1-E1<0;H1-G1<0);"";B1-A1+D1-C1+F1-E1+H1-G1)

liefert "", sobald mindestens 1 Differenz <0 ist. Ist das so gewollt ?

Ja. Ich hatte das als pragmatische Lösung gewählt.

Du hattest auf meine Anregung mit =wenn(anzahlleerzellen(a1:h1)>0 .... gemeint, das willst du nicht. Deine Formel macht nun aber genau das Gleiche. :wink:

Das Gesamtergebnis auch dann zu zeigen, wenn bereits eines oder
mehrere der 4 Teilergebnisse größer als 0 ist, wäre vielleicht noch
etwas hübscher.

Dann müsstest du die längere Variante nehmen, wie
=WENN(B1-A1>0;B1-A1;0)+WENN(D1-C1>0;D1-C1;0)+WENN(F1-E1>0;F1-E1;0)+WENN(H1-G1>0;H1-G1;0)

Günther Breitfuß schrieb:

OoOHWHOoO schrieb:

Deine Formel

=WENN(ODER(B1-A1<0;D1-C1<0;F1-E1<0;H1-G1<0);"";B1-A1+D1-C1+F1-E1+H1-G1)

liefert "", sobald mindestens 1 Differenz <0 ist. Ist das so gewollt ?

Ja. Ich hatte das als pragmatische Lösung gewählt.

Du hattest auf meine Anregung mit =wenn(anzahlleerzellen(a1:h1)>0 ....
gemeint, das willst du nicht. Deine Formel macht nun aber genau das
Gleiche. :wink:

Soweit ich es verstanden habe, macht sie nicht das gleiche.
Ich betrachte ja jedes Intervall getrennt.

Deine Formel liefert denselben Wahrheitswert bei

A1=beliebiger Zeitwert
B1="späterer" Zeitwert
Alle anderen leer.

bzw.

A1=beliebiger Zeitwert
B1="späterer" Zeitwert
C1="späterer" Zeitwert
Alle anderen leer.

Das Gesamtergebnis auch dann zu zeigen, wenn bereits eines oder
mehrere der 4 Teilergebnisse größer als 0 ist, wäre vielleicht noch
etwas hübscher.

Dann müsstest du die längere Variante nehmen, wie
=WENN(B1-A1>0;B1-A1;0)+WENN(D1-C1>0;D1-C1;0)+WENN(F1-E1>0;F1-E1;0)+WENN(H1-G1>0;H1-G1;0)

Stimmt. Danke.

Gruß, Andreas

Andreas Borutta schrieb:

=WENN(B1-A1>0;B1-A1;0)+WENN(D1-C1>0;D1-C1;0)+WENN(F1-E1>0;F1-E1;0)+WENN(H1-G1>0;H1-G1;0)

Stimmt. Danke.

Die Variante zeigt bei A1=13:00 erwartungsgemäß das Ergebnis "00:00".

Schöner ist eine leere Ergebniszelle.

=WENN(B1-A1>0;B1-A1;"")+WENN(D1-C1>0;D1-C1;"")+WENN(F1-E1>0;F1-E1;"")+WENN(H1-G1>0;H1-G1;"")

löst das jedoch nicht.
Muss nochmal gucken, woran es liegt.

Andreas

Andreas Borutta schrieb:

=WENN(B1-A1>0;B1-A1;0)+WENN(D1-C1>0;D1-C1;0)+WENN(F1-E1>0;F1-E1;0)+WENN(H1-G1>0;H1-G1;0)

Stimmt. Danke.

Die Variante zeigt bei A1=13:00 erwartungsgemäß das Ergebnis "00:00".

Schöner ist eine leere Ergebniszelle.

=WENN(B1-A1>0;B1-A1;"")+WENN(D1-C1>0;D1-C1;"")+WENN(F1-E1>0;F1-E1;"")+WENN(H1-G1>0;H1-G1;"")

löst das jedoch nicht.
Muss nochmal gucken, woran es liegt.

Zellen mit Inhalt "" lassen sich nicht addieren. Das Ergebnis ist als 0
und nicht "". Wenn du 0 nicht angezeigt bekommen möchtest, kannst du das
(in diesem Fall sinnvoll) mit einer Formatierungsvorgabe lösen.

LG Günther

Günther Breitfuß schrieb:

Andreas Borutta schrieb:

=WENN(B1-A1>0;B1-A1;0)+WENN(D1-C1>0;D1-C1;0)+WENN(F1-E1>0;F1-E1;0)+WENN(H1-G1>0;H1-G1;0)

Stimmt. Danke.

Die Variante zeigt bei A1=13:00 erwartungsgemäß das Ergebnis "00:00".

Schöner ist eine leere Ergebniszelle.

=WENN(B1-A1>0;B1-A1;"")+WENN(D1-C1>0;D1-C1;"")+WENN(F1-E1>0;F1-E1;"")+WENN(H1-G1>0;H1-G1;"")

löst das jedoch nicht.
Muss nochmal gucken, woran es liegt.

Zellen mit Inhalt "" lassen sich nicht addieren. Das Ergebnis ist als 0
und nicht "". Wenn du 0 nicht angezeigt bekommen möchtest, kannst du das
(in diesem Fall sinnvoll) mit einer Formatierungsvorgabe lösen.

Hhmmmm. Man kann wirklich per Formel kein Ergebnis "" erzwingen?

Andreas

Günther Breitfuß schrieb:

Puh, ein grober workarround (wortwörtlich rund um das Problem herum ;-))

Wenn keine Ausgabe erfolgen soll, wenn in irgend einem der Intervalle
ein Eintrag fehlt, dann muss man das herausfinden. Eine Möglichkeit
wäre, vorausgesetzt die 4 Intervalle liegen nebeneinander (A-H), nach
leeren Zellen zu suchen:

=wenn(anzahlleerzellen(A1:H1)>0;"";B1-A1+D1-C1+F1-E1+H1-G1)

Das erste Intervall ist obligat, die restlichen 3 können, müssen aber
nicht gefüllt werden.
Daher funktioniert die Idee mit der Anzahl der leeren Zellen nicht.
Denn wenn das erste Intervall mit ausgefüllt ist, das zweite nur halb,
dann hat man auch eine völlig falsche Summe.

Vielleicht solltest du erst mal festlegen, was genau du willst. Denn je
nachdem, ob du nun *gar* nix angezeigt haben willst, oder die Summe der
vollständig abgeschlossenen Intervalle, oder *noch* was anderes, werden
die möglichen Lösungen natürlich völlig unterschiedlich ausschauen.

Und momentan bin ich eher verwirrt. Ich weiß überhaupt nicht mehr, was
genau du eigentlich am Ende erreichen möchtest. Das macht eine mögliche
Hilfestellung natürlich, ähm, ziemlich schwierig (vorsichtig ausgedrückt).

Eine Funktion wie

"Wenn eine von vier Summen < 0" gibt es soweit ich weiß nicht.

Das kommt erstens darauf an, ob du damit z. B. "genau eine" oder
"mindestens eine" oder "höchstens eine" oder was sonst meinst; und was
genau denn überhaupt im "dann"- bzw. "sonst"-Zweig passieren soll. Davon
hängt es nämlich entscheidend ab, wie die Bedingungen zu setzen sind.

Die müssten man selber bauen.

Nicht zwangsweise; je nach dem, was passieren soll (s. o.) könnte z. B.
SUMMEWENN oder SUMMENPRODUKT durchaus passen. Nur musst du halt mal
damit rausrücken, was genau du konkret eigentlich /erzielen/ möchtest.
Irgendwie blick ich momentan nicht mehr durch. :frowning:

Wolfgang

Wolfgang Jäth schrieb:

Günther Breitfuß schrieb:

Puh, ein grober workarround (wortwörtlich rund um das Problem herum ;-))

Wenn keine Ausgabe erfolgen soll, wenn in irgend einem der Intervalle
ein Eintrag fehlt, dann muss man das herausfinden. Eine Möglichkeit
wäre, vorausgesetzt die 4 Intervalle liegen nebeneinander (A-H), nach
leeren Zellen zu suchen:

=wenn(anzahlleerzellen(A1:H1)>0;"";B1-A1+D1-C1+F1-E1+H1-G1)

Das erste Intervall ist obligat, die restlichen 3 können, müssen aber
nicht gefüllt werden.
Daher funktioniert die Idee mit der Anzahl der leeren Zellen nicht.
Denn wenn das erste Intervall mit ausgefüllt ist, das zweite nur halb,
dann hat man auch eine völlig falsche Summe.

Vielleicht solltest du erst mal festlegen, was genau du willst. Denn je
nachdem, ob du nun *gar* nix angezeigt haben willst, oder die Summe der
vollständig abgeschlossenen Intervalle, oder *noch* was anderes, werden
die möglichen Lösungen natürlich völlig unterschiedlich ausschauen.

Ich selber habe es für mich festgelegt. Ursprünglich ging es hier ja
um etwas Abstraktes und nicht um etwas Konkretes. Daher hatte ich
bisher keine Details gepostet.

Die vollständigen Anforderungen der kleinen Arbeitszeittabelle sind
mit Worten nur aufwändig zu beschreiben. Aber Du hast natürlich völlig
Recht: Da es hier jetzt im Thread doch weitergeht, poste ich eine
Tabelle als Beispiel:

https://www.dropbox.com/s/kr15l3pod3p1m06/test-lo-calc-arbeitszeiten.ods

Sie erfüllt in dem Zustand meine Anforderungen.

Aber hübsch/lesbar/wartbar ist die Formel nicht.

Details habe ich in der Beispieldatei bewußt weggelassen.
(Im originalen Dokument füge ich z.B. den Bis-Strich per Formatangabe
hinter den Beginn-Werten ein, es liegen Rahmenlinien um die
Intervalle, damit sie besser als Einheit erkennbar sind, etc.)

Verzeihung bitte, eine Beispieltabelle hätte ich schon gestern posten
sollen. Deine Kritik war völlig berechtigt.

Gruß, Andreas

Hallo Andreas,

so ganz klar ist mir das Ganze noch nicht. Ich beziehe mich mal auf die 1. Datenzeile:

[1] Wenn man bei dem 1. Wertepaar (B/C) für C einen Wert größer A eingibt, wird J über Mitternacht hinaus aufsummiert. Bei den folgenden 3 Wertepaaren (D/E F/G H/I) bewirkt es hingegen, dass J auf "" gesetzt wird. Ist das so gewollt ?

[2] Wenn bei B/C der Wert für C noch fehlt, aber für D/E beide Werte vorhanden sind, wird die Arbeitszeit resultierend aus D/E angezeigt. Ist das so gewollt ?

[3] Sind das Zeit-Intervalle eines Tages, also im Gesamtzeitraum 00:00-23:59 ?

[4] Folgen die 4 Wertepaare B/C, D/E, F/G, H/I zeitlich aufeinander ? Mit anderen Worten: der früheste Beginn von D/E wäre das Ende von B/C, aber eben keinesfalls früher. Richtig so ?

Gruß
Hans-Werner

------ Originalnachricht ------

privat

Wolfgang Jäth schrieb:

Günther Breitfuß schrieb:

Puh, ein grober workarround (wortwörtlich rund um das Problem herum ;-))

Wenn keine Ausgabe erfolgen soll, wenn in irgend einem der Intervalle
ein Eintrag fehlt, dann muss man das herausfinden. Eine Möglichkeit
wäre, vorausgesetzt die 4 Intervalle liegen nebeneinander (A-H), nach
leeren Zellen zu suchen:

=wenn(anzahlleerzellen(A1:H1)>0;"";B1-A1+D1-C1+F1-E1+H1-G1)

Das erste Intervall ist obligat, die restlichen 3 können, müssen aber
nicht gefüllt werden.
Daher funktioniert die Idee mit der Anzahl der leeren Zellen nicht.
Denn wenn das erste Intervall mit ausgefüllt ist, das zweite nur halb,
dann hat man auch eine völlig falsche Summe.

Vielleicht solltest du erst mal festlegen, was genau du willst. Denn je
nachdem, ob du nun *gar* nix angezeigt haben willst, oder die Summe der
vollständig abgeschlossenen Intervalle, oder *noch* was anderes, werden
die möglichen Lösungen natürlich völlig unterschiedlich ausschauen.

Ich selber habe es für mich festgelegt. Ursprünglich ging es hier ja
um etwas Abstraktes und nicht um etwas Konkretes. Daher hatte ich
bisher keine Details gepostet.

Die vollständigen Anforderungen der kleinen Arbeitszeittabelle sind
mit Worten nur aufwändig zu beschreiben. Aber Du hast natürlich völlig
Recht: Da es hier jetzt im Thread doch weitergeht, poste ich eine
Tabelle als Beispiel:

https://www.dropbox.com/s/kr15l3pod3p1m06/test-lo-calc-arbeitszeiten.ods

Sie erfüllt in dem Zustand meine Anforderungen.

Aber hübsch/lesbar/wartbar ist die Formel nicht.

Ich hatte vorhin gemeint, anstatt die Formel zu verdoppeln könnte man einfach die Zelle so formatieren, dass sie aus 0 ein "" macht: [=0];"";H" h "M" min

Details habe ich in der Beispieldatei bewußt weggelassen.
(Im originalen Dokument füge ich z.B. den Bis-Strich per Formatangabe
hinter den Beginn-Werten ein, es liegen Rahmenlinien um die
Intervalle, damit sie besser als Einheit erkennbar sind, etc.)

Verzeihung bitte, eine Beispieltabelle hätte ich schon gestern posten
sollen. Deine Kritik war völlig berechtigt.

Gruß, Andreas

Gruß Günther