Seite 1 von 2

GewichtsReduzierungsHilfe (GRH)

Verfasst: Sa 5. Mai 2012, 12:20
von markberlin
Hallo,

da ich gerade beim Abnehmen bin und festgestellt habe, dass es einfacher ist, wenn ich mir die tägliche Kalorienzufuhr bewusst mache, habe ich eine Gewichtsreduzierungshilfe in Calc geschrieben. Da mir in diesem Forum speziell mit zwei Formeln geholfen wurde, dachte ich, ich poste die Datei mal, vielleicht kann sie ja jemand gebrauchen. Man soll ja immer was zurückgeben ;-)

Was die Datei so kann:

- Überwachung der Nährwertzufuhr durch Lebensmitteleingabe.
- Lebensmittelliste jederzeit erweiterbar
- Überwachung, ob genug Flüssigkeit zugeführt wurde.
- automatische Berechnung der maximalen Nährwerte abhängig von Gewicht und Größe
- Übersicht über den Verbrauch der letzten 7 Tage
und noch einiges mehr.

Liebe Grüße,

Mark
GRH.ods
(291.81 KiB) 326-mal heruntergeladen

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: So 6. Mai 2012, 14:44
von balu
Hallo Mark,

ich könnte wohl deine Datei gebrauchen, aber dazu fehlt mir der Wille.
Man soll ja immer was zurückgeben
Find ich in Ordnung. Und deshalb gebe ich dir auch was zurück.

1.
Den Blattschutz auszuhebeln ist in deinem Falle kein Problem. Guckst Du hier: Open Office 1.1.x: Blattschutz ohne Passwort aufheben
Okay, er soll ja wohl auch nichts streng Geheimes verbergen, sondern einfach nur schützen. Und dafür reicht der Blattschutz ja auch aus.


2.
Eine kleine Formelvereinfacherung.

Im Blatt "Grunddaten und Übersicht" in der Zelle B25 hast Du folgende Formel.

Code: Alles auswählen

=WENN(ISTNV(SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1));0;SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1))
Das lässt sich etwas kürzen und vereinfachen.

Code: Alles auswählen

=WENN(ZÄHLENWENN(Gewichteingabe.A6:A93;HEUTE());SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1);0)

3.
Nochmal das Thema Formel, jetzt jedoch etwas umfangreicher.
Im gleichen Blatt wie bei Punkt 2, die Zellen B12 und B27. Da hast Du eine ganz schön große WENN-Verschachtelung drin, die mittels ein paar Hilfszellen extrem vereinfacht werden kann.
In B27 steht.

Code: Alles auswählen

=WENN(UND($B$6="männlich";B26>40);"massive Adipositas";WENN(UND($B$6="männlich";B26>=30;B26<=40);"Adipositas";WENN(UND($B$6="männlich";B26>=25;B26<=30);"Übergewicht";WENN(UND($B$6="männlich";B26>=20;B26<=25);"Normalgewicht";WENN(UND($B$6="männlich";B26<20);"Untergewicht";WENN(UND(B17="weiblich";B26>40);"massive Adipositas";WENN(UND($B$6="weiblich";B26>=30;B26<=40);"Adipositas";WENN(UND($B$6="weiblich";B26>=24;B26<=30);"Übergewicht";WENN(UND($B$6="weiblich";B26>=19;B26<=24);"Normalgewicht";WENN(UND($B$6="weiblich";B26<19);"Untergewicht"))))))))))
Und wie es der Zufall so will, musste ich jetzt dabei feststellen das dir da ein Fehler unterlaufen war.

Code: Alles auswählen

UND(B17="weiblich"
UND($B$6
Der Fehler beruht darauf, das Du die Formel in B12 schon fehlerhaft eingegeben hattest.

Code: Alles auswählen

UND($B$6="weiblich"
UND(B6="weiblich"
Hier fehlt ein Dollarzeichen.

Das macht aber jetzt gar nichts mehr, da ich die Formel rausgeschmissen habe und durch eine andere ersetzt. Jedoch habe ich zuvor in dem Bereich Q3:R15 2 kleine Hilfstabellen angelegt, in denen die Adipositase aufgelistet sind.

Die neue Formel z.B. in B12 lautet nun.

Code: Alles auswählen

=WENN((B$6<>"")*(B11>0);SVERWEIS(B11;INDIREKT(B$6);2;1);"-")
Wenn Du Verständigungsprobleme mit meinen Änderungen hast, so sag das bitte.



Gruß
balu

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 9. Mai 2012, 16:48
von markberlin
Hallo,

danke für die Tipps und Hinweise. Muss ich mir noch genauer anschauen, da ich es jetzt gerade erst überflogen hatte ;-)

Mark

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 9. Mai 2012, 17:27
von markberlin
balu hat geschrieben:Hallo Mark,

ich könnte wohl deine Datei gebrauchen, aber dazu fehlt mir der Wille.
balu hat geschrieben: Find ich in Ordnung. Und deshalb gebe ich dir auch was zurück.

1.
Den Blattschutz auszuhebeln ist in deinem Falle kein Problem. Guckst Du hier: Open Office 1.1.x: Blattschutz ohne Passwort aufheben
Okay, er soll ja wohl auch nichts streng Geheimes verbergen, sondern einfach nur schützen. Und dafür reicht der Blattschutz ja auch aus.
Du hast natürlich recht, aber wie Du schon geschrieben hattest, ging es mir hauptsächtlich um den Schutz. Eigentlich hatte ich die Tabellen nur geschützt, weil ich wusste, dass meine Mutter die Tabelle benutzen wird und ich kenne meine Mutter, die löscht aus Versehen die Formel und meint dann, dass das bei ihr nicht mehr funktioniert :-)
balu hat geschrieben: 2.
Eine kleine Formelvereinfacherung.

Im Blatt "Grunddaten und Übersicht" in der Zelle B25 hast Du folgende Formel.

Code: Alles auswählen

=WENN(ISTNV(SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1));0;SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1))
Das lässt sich etwas kürzen und vereinfachen.

Code: Alles auswählen

=WENN(ZÄHLENWENN(Gewichteingabe.A6:A93;HEUTE());SVERWEIS(HEUTE();Gewichteingabe.A6:B93;2;1);0)
Ich hatte die Datei nach meinem besten Wissen programmiert ;-), aber ich lerne immer gerne dazu, speziell bei Calc/Excel. Ich finde das Programm echt klasse. Zählenwenn hätte ich hier nie benutzt, da ich damit auch noch nie gearbeitet habe :-)
Nur zu meinem Verständnis (sorry, ich mach das für mich immer so, damit ich verstehe, wie das funktioniert und warum)

=Wenn(Zählenwenn was findet und 1 zurückkommt, dann (suche das heutige Datum; in dem festgelegten Bereich; und gebe Spalte zwei zurück; muss nicht zu 100% das Suchkriterum sein); ansonsten gebe 0 zurück)

Habe ich die Formel so richtig verstanden? Verbaut habe ich sie auf jeden Fall schon mal ;-)
balu hat geschrieben:3.
Nochmal das Thema Formel, jetzt jedoch etwas umfangreicher.
Im gleichen Blatt wie bei Punkt 2, die Zellen B12 und B27. Da hast Du eine ganz schön große WENN-Verschachtelung drin, die mittels ein paar Hilfszellen extrem vereinfacht werden kann.
In B27 steht.

Code: Alles auswählen

=WENN(UND($B$6="männlich";B26>40);"massive Adipositas";WENN(UND($B$6="männlich";B26>=30;B26<=40);"Adipositas";WENN(UND($B$6="männlich";B26>=25;B26<=30);"Übergewicht";WENN(UND($B$6="männlich";B26>=20;B26<=25);"Normalgewicht";WENN(UND($B$6="männlich";B26<20);"Untergewicht";WENN(UND(B17="weiblich";B26>40);"massive Adipositas";WENN(UND($B$6="weiblich";B26>=30;B26<=40);"Adipositas";WENN(UND($B$6="weiblich";B26>=24;B26<=30);"Übergewicht";WENN(UND($B$6="weiblich";B26>=19;B26<=24);"Normalgewicht";WENN(UND($B$6="weiblich";B26<19);"Untergewicht"))))))))))
Und wie es der Zufall so will, musste ich jetzt dabei feststellen das dir da ein Fehler unterlaufen war.

Code: Alles auswählen

UND(B17="weiblich"
UND($B$6
Der Fehler beruht darauf, das Du die Formel in B12 schon fehlerhaft eingegeben hattest.

Code: Alles auswählen

UND($B$6="weiblich"
UND(B6="weiblich"
Hier fehlt ein Dollarzeichen.

Das macht aber jetzt gar nichts mehr, da ich die Formel rausgeschmissen habe und durch eine andere ersetzt. Jedoch habe ich zuvor in dem Bereich Q3:R15 2 kleine Hilfstabellen angelegt, in denen die Adipositase aufgelistet sind.

Die neue Formel z.B. in B12 lautet nun.

Code: Alles auswählen

=WENN((B$6<>"")*(B11>0);SVERWEIS(B11;INDIREKT(B$6);2;1);"-")
Also hier hast Du mich komplett verloren :-) Ich kenne indirekt nicht. Habe im Internet gesucht und auch was gefunden, aber ich vestehe nicht, was Indirekt() eigentlich macht. Vor allem nicht, da Du damit ja einen Suchbereich in SVerweis festlegst.

Ich wollte die Formel bei mir einbauen, aber ich bekomme nur #Ref zurück. Ich werde weiter probieren ;-)
balu hat geschrieben:Wenn Du Verständigungsprobleme mit meinen Änderungen hast, so sag das bitte.
Das mach ich sowas von :-)


Danke noch mal für die Tipps und Hinweise!

Mark

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: So 20. Mai 2012, 11:44
von balu
Hallo Mark,

so ein schiet, ich hatte keine Benachrichtigung bekommen das Du geantwortet hattest. :shock: :oops:

Noch mal kurz hierzu.
balu hat geschrieben: 1.
Den Blattschutz auszuhebeln ist in deinem Falle kein Problem. Guckst Du hier: Open Office 1.1.x: Blattschutz ohne Passwort aufheben
Mir gings eingentlich nur darum zu erklären wie ich deine Datei bearbeiten konnte, obwohl ich nicht das Passwort hatte und egsel danach gefragt hatte.


sorry, ich mach das für mich immer so, damit ich verstehe, wie das funktioniert und warum
Nicht Entschuldigen. Es ist korrekt so vorzugehen. Viele Wege führen nach Rom, nur welchen man geht variert mit der Ortskenntnis.


=Wenn(Zählenwenn was findet und 1 zurückkommt
Falsch!
Denn dann hätte ich das nämlich so geschrieben:

Code: Alles auswählen

=WENN(ZÄHLENWENN(Gewichteingabe.A6:A93;HEUTE())=1;
Und das ist keine Haarspalterei, sondern sehr wichtig zu wissen. Bei dieser Version wird abgefragt ob das zählergebniss des Suchkriteriums von ZÄHLENWENN exakt 1 mal vorkommt. Wenn es mehr als einmal, z.B. 5 mal vorkommen würde, dann wäre die Überprüfung nicht korrekt und es würde nichts gemacht werden.

Da ich aber in der Datei auf das =1 verzichtet habe, wird dadurch überprüft ob das Suchkriterium überhaupt vorhanden ist, also egal ob 1 oder 15 mal.

dann (suche das heutige Datum; in dem festgelegten Bereich; und gebe Spalte zwei zurück; muss nicht zu 100% das Suchkriterum sein); ansonsten gebe 0 zurück)
Kann man so stehen lassen.


Also hier hast Du mich komplett verloren :-) Ich kenne indirekt nicht.
Das ist schlecht das ich dich verloren habe. Also muss ich das ändern.
Zu der Funktion selber steht ja schon was in der Hilfe (F1), also konzentrieren wir uns auf die aktuelle Situation.

Doch zuvor noch was anderes, was wichtig ist zu Wissen.
Zu erst solltest Du dir mal diesen Link genauer anschauen. Und dort besonders das Thema: Einen Zellbereich benennen

In deiner Ursprünglichen Formel fragtest Du ja eine bestimmte Zelle nach dem Geschlecht ab, und hast dann eine andere Zelle mit verschiedenen Werten verglichen.
Beispiel:
B6="männlich";B11>40
B6="weiblich";B11>40

Das ist aber etwas zu Umständlich, und auch Gefährlich wenn man z.B. die vergleichswerte ändern will, da man schnell was übersehen kann. Also hatte ich die 2 kleinen Hilfstabellen angelegt, die für männlich und weiblich getrennt sind. Und die Datenbereiche für
männlich => $'Grunddaten und Übersicht'.$Q$4:$R$8
und für
weiblich => $'Grunddaten und Übersicht'.$Q$11:$R$15
hatte ich Namen zugeordnet, siehe den dementsprechenden Link zum Wiki.

Code: Alles auswählen

SVERWEIS(B11;$'Grunddaten und Übersicht'.$Q$4:$R$8;2;1)
So würde die Formel aussehen, wenn Du z.B. nur auf den Datenbereich für männlich zugreifen wolltest. Dazu brauch ich ja wohl nichts mehr zu sagen.


Da ja nun die beiden Hilfstabellen mit ihrem Datenbereich einen geschlechtsspezifischen Namen tragen und Du ja ein Auswahlfeld für das Geschlecht hast, muss nun SVERWEIS irgendwie auf diesen Bereich zugreifen können. Und das geschieht mit INDIREKT.

Würdest Du einfach in der Formel B6 sagen, also ohne INDIREKT, käme es zu einem Fehler obwohl ja z.B. der Datenbereich männlich vorhanden ist. Aber durch den Einsatz von INDIREKT weiß nun SVERWEIS das der Inhalt von B6 ein benannter Datenbereich ist, und kein einzeln dastehender Wert. Und dadurch ergibt sich dann, das beim wechseln auf ein anderes Geschlecht sich der Datenbereich ändert.


Ich hoffe das es nun etwas verständlicher ist, was da in der Formel geschieht.



Gruß
balu

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Di 5. Feb 2013, 16:00
von Noodles
Hallo @all,
ich habe diesen Thread mal wieder ausgegraben da ich diese Tabelle heruntergeladen und auch sehr intensiv nutze. Von mir erst einmal ein Riesen DANK an den Bereitsteller dieser Tabelle. :)
Ein kleines problemchen konnte ich lösen.
In der ersten Tabelle in: "Übersicht der letzten 7 Tage" habe ich den Zahlen? Tagesdreher korrigiert. Das war super einfach.
Allerdings will sich mir absolut nicht erschliessen (ebenfalls in Übersicht der letzten 7 Tage) warum ich z.Bspl. 2,2 Liter Trinke mir aber spätestens am nächsten Tag statt der 2,2 Liter "nur" 0,22 Liter angezeigt werden. Da ich das einfach nicht hinbekomme stelle ich die Frage mal hier und hoffe das einer von euch beiden mir eventuell den richtigen Code nennen kann.
Der momentane Code lautet:

Code: Alles auswählen

=SUMMENPRODUKT(Lebensmitteleingabe.$A$6:$A$800=J28;Lebensmitteleingabe.I6:I800="Getränk";Lebensmitteleingabe.$C$6:$C$800)/1000
Habe die Datei mit angehängt.

MfG
Noodles
EDIT:die alte (fehlerhafte) Datei gelöscht!

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 6. Feb 2013, 11:42
von balu
Hallo Noodles,
Allerdings will sich mir absolut nicht erschliessen (ebenfalls in Übersicht der letzten 7 Tage) warum ich z.Bspl. 2,2 Liter Trinke mir aber spätestens am nächsten Tag statt der 2,2 Liter "nur" 0,22 Liter angezeigt werden.
Du weisst schon, dass im Tabellenblatt "Grunddaten und Übersicht" im Bereich J28:J34 in der Tabelle *Übersicht der letzten 7 Tage* mit der Formel =HEUTE() gearbeitet wird? Und dadurch wird das dortige Datum jeden Tag beim öffnen der Datei automatisch angepasst. Da ferner von HEUTE immer 1 bis 6 Tage subtrahiert werden, gibt es aus der Sicht von HEUTE (in diesem Falle) keinen nächsten Tag, sondern nur vergangene(n) Tag(e).

Dies aber nur zur Nebeninfo.


Dein Problem hatte ich nicht sofort gesehen, obwohl es doch so offensichtlich ist. Denn die zitierte Formel ist in dem genannten Blatt NUR in O28 korrekt, nicht aber in dem restlichen Bereich O29:O34. Der Grund dafür ist nämlich der, dass der mittlere Teil der SUMMENPRODUKT-Formel, genauer gesagt die Zelladressierung, Relativ ist. Und das ist der ganze Fehler, denn der muss nämlich Absolut sein. Und das sieht dann nämlich richtiger weise so aus.

Code: Alles auswählen

=SUMMENPRODUKT(Lebensmitteleingabe.$A$6:$A$800=J30;Lebensmitteleingabe.$I$6:$I$800="Getränk";Lebensmitteleingabe.$C$6:$C$800)/1000
Also die Formel in O28 und runter ziehen.
Fäddisch! Dat wars.

Ich hatte die Formel damals nicht genauer überprüft, weil sie mir korrekt vorkam.



Gruß
balu

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 6. Feb 2013, 14:09
von Noodles
Hallo balu :D ,

Herzlichen Dank für deine schnelle Hilfe. Jetzt sieht alles schon sehr viel besser aus.
Habe trotzdem noch einen kleinen Fehler in diesem Code gefunden habe ihn aber schon korrigiert. Du hast in deinem Code J30 benutzt den habe ich dann auf J28 geändert.

Code: Alles auswählen

=SUMMENPRODUKT(Lebensmitteleingabe.$A$6:$A$800=J30;Lebensmitteleingabe.$I$6:$I$800="Getränk";Lebensmitteleingabe.$C$6:$C$800)/1000
Korrigiert.

Code: Alles auswählen

=SUMMENPRODUKT(Lebensmitteleingabe.$A$6:$A$800=J28;Lebensmitteleingabe.$I$6:$I$800="Getränk";Lebensmitteleingabe.$C$6:$C$800)/1000
Du weisst schon, dass im Tabellenblatt "Grunddaten und Übersicht" im Bereich J28:J34 in der Tabelle *Übersicht der letzten 7 Tage* mit der Formel =HEUTE() gearbeitet wird? Und dadurch wird das dortige Datum jeden Tag beim öffnen der Datei automatisch angepasst. Da ferner von HEUTE immer 1 bis 6 Tage subtrahiert werden, gibt es aus der Sicht von HEUTE (in diesem Falle) keinen nächsten Tag, sondern nur vergangene(n) Tag(e).
:D Ja weis ich, habe dort ja den Tages-Zahlendreher geändert. Ich meinte damit das mir am nächsten Tag der Wert des/der vorigen Tage/s falsch angezeigt wurde/n.
Aber jetzt funktioniert ja alles Dank deiner Mithilfe einwandfrei.

Habe die aktualisierte Datei mal mit angehängt

MfG
Noodles

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 6. Feb 2013, 14:39
von balu
Hallo Noodles,

1.
Man sollte nie mit leeren Bauch einkaufen gehen.

2.
Man sollte nie zwischen Tür und Angel Dateien korrigieren.

3.
Man sollte nie und nimmer erst Punkt 2 und dann 1 direkt nacheinander ausführen, denn das geht in die Hose (Komischerweise obwohl doch der Bauch leer ist).

4.
Ersetze Man durch balu :mrgreen:

Schön das Du meinen Fehler erkannt und korrigiert hast.

Ich meinte damit das mir am nächsten Tag der Wert des/der vorigen Tage/s falsch angezeigt wurde/n.
Ah ja, alles klar.

Viel Spaß mit der Datei. :D



Gruß
balu

Re: GewichtsReduzierungsHilfe (GRH)

Verfasst: Mi 6. Feb 2013, 14:50
von Noodles
Hallo balu,

:D :D :D
Alles klar, Geldbörsenregel Nr.1: balu sollte NIEMALS mit leerem Bauch einkaufen gehen! Gilt aber auch für JEDEN anderen. ;)
Schön das du meinen sarkasmus an dich verstanden hast Sheldon Cooper ;)
Ich meinte damit das mir am nächsten Tag der Wert des/der vorigen Tage/s falsch angezeigt wurde/n
MfG
Noodles