format code vs formule

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Ozzie PHP

Ozzie PHP

05/02/2015 00:59:01
Quote Anchor link
Hallo allemaal,

Eerder deze week tipte Ward mij over het gebruik van "Format code" (hierna FC).

Werkt iemand hier wel eens met FC in OpenOffice of Excel?

Met FC kun je een bepaald "format" op de waarde van een cel loslaten. Zo kun je bijv. aangeven dat een negatieve tijdsindicatie een rode kleur moet hebben en een positieve een groene kleur. Een tijdsindicatie van 0 uren, 0 minuten en 0 seconden maken we blauw. De FC ziet er (in OpenOffice) dan als volgt uit:

[>0][GREEN]UU:MM:SS;[<0][RED]UU:MM:SS;[BLUE]UU:MM:SS

Nu kun je niet alleen kleuren wijzigen, maar je kan bijvoorbeeld ook een tekst opgeven:

[>0][GREEN]UU:MM:SS;[<0][RED]"ONJUIST!";[BLUE]UU:MM:SS

Dit zorgt ervoor dat als de tijdsindicatie negatief is, er een "onjuist" melding wordt getoond. Nu vraag ik me af of het de bedoeling is om dit soort waarschuwingen te verwerken in de FC. Je zou die waarschuwing namelijk ook in de formule zelf kunnen opnemen:

IF(A1<0;"ONJUIST!";A1)

Door de FC nu een klein beetje aan te passen, bereiken we exact hetzelfde effect:

[>0][GREEN]UU:MM:SS;;[BLUE]UU:MM:SS;[RED]

De waarschuwingstekst laten we achterwege, en we geven aan dat tekst in het rood moet worden getoond. De "onjuist" melding zal dus in het rood getoond worden, exact zoals bij de eerste variant.

Maar welke van deze 2 manieren is nu de juiste vraag ik me af. Waar gebruik je die FC precies voor?
Gewijzigd op 05/02/2015 00:59:46 door Ozzie PHP
 
PHP hulp

PHP hulp

01/12/2024 01:52:10
 
Jan R

Jan R

05/02/2015 08:13:20
Quote Anchor link
Beiden zijn juist.

Voor de volledigheid: Als je geen tekst wil kan je ook nog werken met voorwaardelijk opmaak.
Ook nog de fc bestaat uit 4 delen. standaard: positief; negatief; nul; tekst.
Nu schrijf je bij de fc zelf nog eens diezelfde standaards erbij. Dus enkel nodig als je hier afwijkt.

Ook goed forum voor MS-office is http://answers.microsoft.com/nl-nl/office/forum/excel de fc is volledig afgekeken van ms door openoffice. Als ze iets goed doen mag het ook geweten zijn.

Ik DENK dat fc sneller is dan formule. voor het geval je er een paar honderden hebt.

Jan
 
Ward van der Put
Moderator

Ward van der Put

05/02/2015 09:23:16
Quote Anchor link
Het lijkt op een ander vraagstuk: wanneer gebruik je HTML en wanneer CSS?

Daarmee krijg je dan een logische vergelijking. Wil je slechts de opmaak van de uitkomst veranderen, dan gebruik je daarvoor een opmaakoptie, zoals die format code. Is het je vooral te doen om de inhoud van de uitkomst, dan is een formule meer op zijn plaats.

Als je het opzetten van een spreadsheet ziet als het bouwen van een financieel of rekenkundig model, dan zou de logica daarvan overeind moeten blijven wanneer je alle opmaak weggooit.

De format code heeft een typische historie: figuurlijke rode cijfers ook letterlijk rood weergeven. Veranderen negatieve bedragen als je ze in zwart zou weergeven of printen? Nee, inhoudelijk niet, dus is een format code in dergelijke gevallen op zijn plaats.

De zaak verandert als je, zoals in jouw voorbeeld, fouten wilt melden. Dan draait het wel om de inhoud. En dan is een formule meer op zijn plaats. Het draait dan om de fout en de foutmelding; dat je die vaak rood weergeeft, is een bijzaak.
 
Ozzie PHP

Ozzie PHP

05/02/2015 10:48:03
Quote Anchor link
Bedankt voor de reacties.

@Jan R

>> Ook nog de fc bestaat uit 4 delen. standaard: positief; negatief; nul; tekst.

Ja, maar die laatste hoef je er niet per se bij te zetten (in ieder geval hoe ik het tot nu toe heb ondervonden).

>> Nu schrijf je bij de fc zelf nog eens diezelfde standaards erbij. Dus enkel nodig als je hier afwijkt.

Dit is vrij raar. Ik had ze er in het begin in OpenOffice helemaal niet bij gezet, maar OpenOffice (in mijn geval eigenlijk LibreOffice maar dat zal hetzelfde zijn) die zet ze er op een gegeven moment zelf bij. Dus ik typ ze zonder bijv. [>0] en als ik dan later terug kijk, dan heeft OpenOffice ze er zelf bij gezet.

>> Ik DENK dat fc sneller is dan formule. voor het geval je er een paar honderden hebt.

Dit meen ik dus ook gezien te hebben. Als ik bijv. 50.000 cellen vul met IF-statements wordt mijn bestand veel groter (en trager bij het opslaan) dan wanneer ik die IF-statement achterwege laat en het met format code oplos.

@Ward

Ik snap wel wat je bedoelt te zeggen. De foutmeldingen die ik geef, zijn in feite "hints" dat er iets niet klopt. Dat zou je in feite ook met jouw voorbeeld van de kleuren kunnen vergelijken. Een rood getal kan een negatief getal zijn, maar kan ook duiden op "dit getal is onjuist". Daarom vind ik het dus een beetje vaag waar die format code nu echt voor is bedoeld. Maar wellicht is wat Jan R zegt wel terecht, dat het beiden kan. Het voordeel is wel dat het gebruik van format code een stuk minder "zwaar" is dan overal een IF-statement te gaan plaatsen.
 
Ward van der Put
Moderator

Ward van der Put

05/02/2015 11:05:28
Quote Anchor link
Jan heeft óók gelijk: het is beide.

Lang niet elke Excel-gebruiker kan even goed met formules overweg. Het lijkt onderhand programmeren ;-) Ik vermoed dat mede daarom meer à la Word opmaken werd toegevoegd.

Tegen meldingen kun je ook anders aankijken. Ik heb een goede vriend met een zeldzame vorm van kleurenblindheid: hij ziet helemaal geen kleuren. Een van de hoofdregels uit accessibility is daarom dat je nooit uitsluitend met kleur ergens een betekenis aan mag geven. Dus dan doen we maar een pictogram erbij en prominent het woord "Fout".

Wil je de uitkomst ergens hergebruiken? Bijvoorbeeld in een optelling van uren? Dan moet je eigenlijk een formule gebruiken die een foutwaarde oplevert. Of op zijn minst een N/A (not available) oftewel #N/B in Excel. Net zoals je bij PHP zou doen met een exception, een trigger_error() of desnoods een return false.
 
Ozzie PHP

Ozzie PHP

05/02/2015 11:25:06
Quote Anchor link
Hmmm, oké ... naja, het document is primair bedoeld voor mezelf, dus ik denk dat ik maar gewoon die format code op m'n eigen manier gebruik :) Dat programmeren klopt overigens wel, ik had gisteren ook zo'n "leuke" formule gemaakt :) Dan komt ineens je programmeerervaring toch handig van pas :)
 
Ward van der Put
Moderator

Ward van der Put

05/02/2015 11:37:05
Quote Anchor link
Ja, dat je automatisch haakjes-openen en haakjes-sluiten op- en aftelt bijvoorbeeld ;-)
 
Ozzie PHP

Ozzie PHP

05/02/2015 11:43:49
Quote Anchor link
Hehe ... lol ...

Op zich kun je er best mee uit de voeten. Niet even ideaal en overzichtelijk zoals je het in PHP zou doen. Ik heb letterlijk telkens een "onderdeelje" gemaakt in een losse cel, en dat dan weer geplakt in de "hoofdformule". Want alles ineens in de "hoofdformule" intypen is dusdanig onoverzichtelijk dat dit me een betere oplossing leek :)
 
Ward van der Put
Moderator

Ward van der Put

05/02/2015 12:02:37
Quote Anchor link
PHP leren begint meestal ook met copy-paste.
 
Ozzie PHP

Ozzie PHP

05/02/2015 12:15:42
Quote Anchor link
Voor sommigen wel ;)

Hoewel het dan meestal gaat om voorgekauwde copy-paste en dat is toch weer wat anders. Mijn actie was vooral bedoeld om het overzicht te behouden. Al die geneste IFs ORs en ANDs verdeeld over 2 regels is allesbehalve leesbaar.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.