Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Calc vraag: if then else  (gelezen 2690 keer)

Calc vraag: if then else
« Gepost op: 2023/01/11, 12:41:34 »
Ik zou graag in calc (in een vak/formule) een getal vergelijkend willen verifiëren en bij niet voldoen aan een eis aanpassen.
Zeg maar het programmerend if then or else.

Als X < 0 dan X = 0 (en bij X > 0 dan X = X)
Simpel gezegd, als een getal in de min gaat moet hij niet meetellen, en in de plus gewoon meerekenen.

Is dit mogelijk? Zo ja, hoe?

En werkt dit dan ook in excell als ik de sheet daarnaar converteer?
« Laatst bewerkt op: 2023/01/11, 12:47:56 door partyrabbit »
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Re: Calc vraag: if then else
« Reactie #1 Gepost op: 2023/01/11, 14:40:01 »
in cel B1:

=IF (A1<0,0,A1)

met in cel A1 de waarde.
« Laatst bewerkt op: 2023/01/11, 14:42:01 door Wim Janssen »

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #2 Gepost op: 2023/01/11, 16:07:23 »
Volgens mij moet je ; gebruiken. Dus:
=IF(A1<0;0;A1)Als je Calc op Nederlands hebt ingesteld moet je i.p.v. IF ALS gebruiken.
En ja, dit werkt ook in Excel.

Re: Calc vraag: if then else
« Reactie #3 Gepost op: 2023/01/11, 17:14:16 »
Eej tof dat dit kan  =D Ik ga er later even mee stoeien welke het precies is.
Ik zit nu met niet ingevulde vakken, waardoor formules negatief gaan rekenen en het eindbedrag niet klopt en het geheel er niet uit ziet.

En kan dit ook in vakken waar al een formule staat?? En hoe plaats ik het dan?
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Re: Calc vraag: if then else
« Reactie #4 Gepost op: 2023/01/11, 17:40:56 »
Functie verwerken al gevonden  =D

=ALS(C6<0;0;B5-B4) werkte niet.
Fout 552 bij leeg vak. Ik denk dat ik met < in een loop raakte. Dat het in te vullen vak deze controle niet over zichzelf uit kon voeren.
En bij ingevuld vak waar er juist een waarde zou moeten komen maakte hij er 0 van.

M.b.v. de F-assistent eruit gekomen. Met =.
Deze werkte
=ALS(B5=0;0;B5-B4)

Ben er uit. Bedankt voor jullie hulp!
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Re: Calc vraag: if then else
« Reactie #5 Gepost op: 2023/01/12, 10:36:06 »
Volgens mij moet je ; gebruiken. Dus:
=IF(A1<0;0;A1)

Hangt blijkbaar af van versie, bij mij is het een komma.

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #6 Gepost op: 2023/01/12, 11:36:17 »
Citaat
Hangt blijkbaar af van versie, bij mij is het een komma.
Dat kan ik me bij nader inzien wel voorstellen. Of beter gezegd, niet van de versie, maar van de gekozen instelling.
Ik vermoed dat jij als instelling gekozen hebt voor de Angel-Saksische getalnotatie, waarbij het decimale scheidingsteken een punt is. Dan kun je een komma gebruiken als scheidingsteken in de opdracht. Maar in de Europese getalnotatie is de komma al in gebruik  als decimaal scheidingsteken, waardoor er in de opdracht voor een ander scheidingsteken gekozen moet worden. En dat is dan de punt-komma geworden.

Re: Calc vraag: if then else
« Reactie #7 Gepost op: 2023/01/12, 11:47:05 »
Kleine aanvullende tip, waar ik ook niet meer aan gedacht had, maar waarmee ik er snel uit was.
Gebruik de Functie assistent. De F knop links naast het formulevak. ;)
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Re: Calc vraag: if then else
« Reactie #8 Gepost op: 2023/01/13, 11:17:52 »
Citaat
Hangt blijkbaar af van versie, bij mij is het een komma.
Dat kan ik me bij nader inzien wel voorstellen. Of beter gezegd, niet van de versie, maar van de gekozen instelling.

Klopt, dank voor de info!

Re: Calc vraag: if then else
« Reactie #9 Gepost op: 2023/01/24, 16:23:17 »
In elk geval ben ik er blij mee.
Heb deze functie inmiddels al verschillende keren toegepast, ook in oudere berekeningen om ze te vergemakkelijken/verbeteren.
Wel jammer dat er geen uitgebreide formules in het ALS commando verwerkt kunnen worden waardoor deze nu alsnog voorberekend moeten worden. Maar ik elk geval een stuk verder want nu veel verwerking in één vak terwijl er voorheen nog meer vakken voor nodig waren.
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #10 Gepost op: 2023/01/24, 17:52:46 »
Citaat
Wel jammer dat er geen uitgebreide formules in het ALS commando verwerkt kunnen worden ...
Ik weet niet hoe uitgebreid je het wilt maken, maar kun je een voorbeeld geven van wat je wilt maar (vooralsnog) niet kan?

Re: Calc vraag: if then else
« Reactie #11 Gepost op: 2023/01/25, 14:15:43 »
Dank je.

Even een simpel actueel  ^-^ voorbeeldje dan. Berekening plafondprijs gas. (zie bijlage)
Deze zou moeten kloppen, maar geeft 'fout 510'.
=ALS(<1200;B2*B3;((B2-B1)*B4)+(B1*B3))In tekst:
ALS (<kleiner dan plafond ; dan verbruik * prijsonderplafond ; anders ((verbruik - plafond) * prijsbovenplafond) + (plafond*prijsonderplafond))
Details:
- Ook als je 1200 (test) vervangt voor B1 dan dezelfde fout.
- En ik heb ook al geprobeerd met een = voor de beide (dan & anders) formules, maar ook dan fout 510.
- Aantal haakjes klopt. Evenveel ) als (. Ik weet mede uit programeerervaring dat ook dat in balans moet zijn om geen foutmelding te krijgen.


Volgens mij zou deze formule zo moeten kloppen. :angel: Gegenereerd met assistent (zoals je ziet).
Maar ik denk dat hij in het ALS commando geen extra haakjes kan handlen buiten die van zichzelf (conflict?). En dus die berekeningen vooraf (ander extra vak) gedaan moeten worden (en dan lukt het wel).
« Laatst bewerkt op: 2023/01/25, 23:19:36 door partyrabbit »
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Re: Calc vraag: if then else
« Reactie #12 Gepost op: 2023/01/25, 15:31:05 »
Moet de formule zo niet zijn:
=ALS(B2<B1;B2*B3;((B2-B1)*B4)+(B1*B3))
Allemaal Linux gerelateerde links op mijn website http://home.scarlet.be/jefdamen/Ubuntu.html
Mijn YouTube kanaal:http://www.youtube.com/user/asilnevs
https://jefdamen.wordpress.com/
We are spiritual beings having a human experience

Re: Calc vraag: if then else
« Reactie #13 Gepost op: 2023/01/25, 16:28:47 »
Moet de formule zo niet zijn:
=ALS(B2<B1;B2*B3;((B2-B1)*B4)+(B1*B3))

Jaaaa. Natuurlijk.  =D Er moet een uitgangspunt zijn voor de vergelijking. Ik ging er foutief vanuit dat de ALS dat was.

Nu weet ik in elk geval dat er wél formules verwerkt kunnen worden in de ALS-functie. Dat scheelt weer de nodige voorberekeningen en (onoverzichtelijke) extra vakken.

Wie zich bezig houdt met bijhouden van zijn energie-verbruik. Doe hier je voordeel mee.
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #14 Gepost op: 2023/01/29, 20:18:06 »
Ik weet dat voor de TS de vraag beantwoord is, maar ter illustratie -uit het reële leven- hier de formule (met vijf maal ALS genesteld) die als uitkomst geeft met welk bedrag de bijverdiensten van een bijstandsgerechtigde verhoogd moeten worden als gevolg van hierover opgebouwd vakantiegeld.
=ALS(C4<825,46;0,08*C4;ALS((C4>=825,46)EN(C4<891,48);0,057*C4;ALS((C4>=891,48)EN(C4<893,98);0,08*C4-20,47;ALS((C4>=893,98)EN(C4<1687,18);0,08*C4-4,98;ALS((C4>=1687,18);0,0517*C4-3,22)))))Dit is de "vertaling" van een tabel uit de Normenbrief van de rijksoverheid: Artikel 11. Vakantieaanspraak voor personen jonger dan de
pensioengerechtigde leeftijd met inkomen uit tegenwoordige arbeid (https://www.rijksoverheid.nl/binaries/rijksoverheid/documenten/publicaties/2022/12/09/normenbrief-1-januari-2023/Normenbrief+1+januari+2023.pdf).
Vraag mij niet waarom het zo ingewikkeld is; ik volg slechts voor iemand anders of de gemeente de berekeningen correct uitvoert. Helaas soms niet.

Offline MKe

  • Lid
Re: Calc vraag: if then else
« Reactie #15 Gepost op: 2023/01/30, 11:32:23 »
Het is in spreadsheets een goed gebruik om functies in cellen zo simpel mogelijk te maken. Functies zoals hierboven zijn extreem moeilijk te debuggen. Door dit in een reeks van cellen onder te brengen en stap voor stap te doen is het veel gemakkelijker om te begrijpen wat er gebeurt. Als de tussen-cellen visueel in de weg zitten is het vrij gemakkelijk om hun kolommen of rijen te verbergen.

Bovenstaande formule is dus zeer bad practice.

Re: Calc vraag: if then else
« Reactie #16 Gepost op: 2023/01/30, 13:33:41 »
Tja, de Overheid is van het pricipe ¨Waarom gemakkelijk als het moeilijk ook kan.¨  ;)
Allemaal Linux gerelateerde links op mijn website http://home.scarlet.be/jefdamen/Ubuntu.html
Mijn YouTube kanaal:http://www.youtube.com/user/asilnevs
https://jefdamen.wordpress.com/
We are spiritual beings having a human experience

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #17 Gepost op: 2023/01/30, 14:26:23 »
@MKe,
Ik ben het met je eens dat enkele cellen extra gebruiken voor tussenstappen i.h.a. de overzichtelijkheid ten goede komt.

Maar in dit geval is er geen sprake van tussenstappen. Het is hier nodig om de bijverdiensten in één van de vijf inkomenscategorieën onder te brengen: onder de 825,46; vanaf 852,46 tot 891,48; etc. Bij elke categorie hoort een andere berekening van de vakantie-aanspraak.
Het betreft hier dus geen tussenstappen maar een opdeling. De genestheid op vijf niveaus van de ALS (dan, anders)-constructie geeft dit ook aan.
Dus geen bad practice, maar -helaas- pure noodzaak.

Re: Calc vraag: if then else
« Reactie #18 Gepost op: 2023/01/30, 16:06:32 »
Het blijft inderdaad het spel van overzichtelijkheid en inzichtelijkheid van informatie.
Soms wil je gewoon één antwoord in één vak zien. Soms wil je de weg ernaar toe zien waarbij elke stap/berekening afzonderlijk weer extra inzicht oplevert. Als die laatste tussen-berekeningen er toch al zijn (indien gewenst) blijft de eind-berekening vanzelf ook eenvoudiger. Maar andere keren gaat het weer gewoon om het getal onder de streep.
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Offline MKe

  • Lid
Re: Calc vraag: if then else
« Reactie #19 Gepost op: 2023/01/30, 19:55:25 »
Goed, niet om een onnodige discussie te starten, maar ik ben het er nog steeds niet mee eens. De losse berekeningen kunnen in aparte cellen en de beslissingsboom kan ergens anders. Ik als programmeur gruw hiervan. Te veel verantwoordelijkheden in een cel.  Maar goed als het werkt, dan werkt het. Wat ik zei is maar een advies. Ik hoef het gelukkig niet te debuggen   :P
« Laatst bewerkt op: 2023/01/30, 19:59:26 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Offline ajjp

  • Lid
Re: Calc vraag: if then else
« Reactie #20 Gepost op: 2023/01/30, 22:01:21 »
Ik sluit me erbij aan om niet hier een onnodige discussie te starten. En de gekozen oplossing is mij ook een gruwel.
Mocht je je nog eens een half uurtje vervelen: ik houd me aanbevolen voor hoe het dan wel zou moeten/kunnen. Ik zie zelf echter niet hoe het anders zou moeten/kunnen, maar ik ben dan ook geen programmeur (al ben ik in een grijs verleden nog wel "opgevoed" met ALGOL 60).

Re: Calc vraag: if then else
« Reactie #21 Gepost op: 2023/01/31, 13:34:38 »
Ach, beetje gezellige discussie kan leerzaam zijn, ook voor meelezers. Niets mis mee. Toch?  ^-^

De losse berekeningen kunnen in aparte cellen en de beslissingsboom kan ergens anders. Ik als programmeur gruw hiervan. Te veel verantwoordelijkheden in een cel.  Maar goed als het werkt, dan werkt het. Wat ik zei is maar een advies. Ik hoef het gelukkig niet te debuggen   :P

Ik begrijp je punt helemaal.
Maar je loopt ook aan tegen onoverzichtelijkheid als er teveel broninformatie is om tot een paar antwoorden te komen.
Met te veel voorberekeningen (vakken met info) verlies je het overzichtelijke van simpele totalen (door formules) zoals je het eigenlijk nastreeft.

Ik denk toch dat het dat spel wordt van wat je nou precies snel wilt kunnen halen uit je overzicht en berekeningen, waarbij te kleine voor-details het alleen maar onoverzichtelijk maken.
- I ♥ Linux -
Bij irritatie, voeg hier 'partyrabbit' toe -> https://forum.ubuntu-nl.org/index.php?action=profile;area=lists;sa=ignore

Offline MKe

  • Lid
Re: Calc vraag: if then else
« Reactie #22 Gepost op: 2023/01/31, 20:35:25 »
Ik sluit me erbij aan om niet hier een onnodige discussie te starten. En de gekozen oplossing is mij ook een gruwel.
Mocht je je nog eens een half uurtje vervelen: ik houd me aanbevolen voor hoe het dan wel zou moeten/kunnen. Ik zie zelf echter niet hoe het anders zou moeten/kunnen, maar ik ben dan ook geen programmeur (al ben ik in een grijs verleden nog wel "opgevoed" met ALGOL 60).
Lijkt me wel een leuke uitdaging. Het lukt me echter nog ff niet om je functie in mijn engelse localc te krijgen. Moet nog ff zoeken waar de fout in mijn vertaling zit. Kom ik op terug.

Offline MKe

  • Lid
Re: Calc vraag: if then else
« Reactie #23 Gepost op: 2023/01/31, 20:37:18 »
Ach, beetje gezellige discussie kan leerzaam zijn, ook voor meelezers. Niets mis mee. Toch?  ^-^

Ik begrijp je punt helemaal.
Maar je loopt ook aan tegen onoverzichtelijkheid als er teveel broninformatie is om tot een paar antwoorden te komen.
Met te veel voorberekeningen (vakken met info) verlies je het overzichtelijke van simpele totalen (door formules) zoals je het eigenlijk nastreeft.

Ik denk toch dat het dat spel wordt van wat je nou precies snel wilt kunnen halen uit je overzicht en berekeningen, waarbij te kleine voor-details het alleen maar onoverzichtelijk maken.
Tja, als je het goed in kolommen doet, dan kun je de kolommen verbergen die je niet wilt zien. Dan zie je ook alleen de eindwaarde.

Offline Jenske

  • Lid
Re: Calc vraag: if then else
« Reactie #24 Gepost op: 2023/01/31, 21:35:04 »
In Calc bestaat er een functie ...

ALS.VOORWAARDEN(

Deze geeft in één ruk (in plaats van in allerlei in elkaar geneste ALS-en) een antwoord. Zoek die functie maar eens op en misschien ben je er beter mee af dan met geneste ALS-en.

Je vindt er meer over op deze plaats:
https://help.libreoffice.org/latest/nl/text/scalc/01/func_ifs.html

.. Kubuntu 23.10 op een ...
.. geen idee welk computermerk, 32 Gbyte RAM, 4 Gbyte video-RAM