Excel kijkt alleen naar hele integers?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 08-10 16:25
Hallo,

Ik heb een exceldocument waarin in een controle uitvoer op 2 cellen. Beide moeten aan een bepaalde waarde voldoen (een code van 6 cijfers, en een ingevuld getal (integer) in een andere cel.

De formule is:
code:
1
=ALS((EN(LENGTE(A12)=6;INTEGER(D12)));"Ingevuld";"Andere waarde")


Op basis van de waarde ingevuld of andere waarde heb ik vervolgens een voorwaardelijke opmaak.


Nu werkt het op zich prima, maar als ik een waarde van 0,10 heb in cel D12 (en 6 cijferige code in A12) dan krijg ik de 'andere waarde' ingevuld. Oftewel een 'onwaar' waarde. Als ik 1,00 of 11,50 (een waarde hoger, of gelijk aan 1,00) invul, dan werkt het wel.

Het lijkt er dus op dat een waarde lager dan 1,00 niet wordt gezien als een integer.
In principe staat er in cel D12 altijd een cijferwaarde, dus het integer vraagstuk is niet noodzakelijk. Maar gezien de aanwezigheid van een formule is een 'waarde' anders dan 'null of leeg' niet toepasbaar (krijg het althans niet werkend) omdat er een formule in zit.

Maar mogelijk doe ik daarin iets verkeerds.

Hoe dan ook zou ik het graag werkend hebben op basis van of er een Cijferwaarde is ingevuld.
Standaard is de waarde in cel D12 '0' omdat die kijkt naar de waarde van een andere cel die ook weer een formule heeft en standaard een '0' genereert als de cel waar die formule weer naar verwijst niet is ingevuld.

code:
1
=ALS(G12="m1";I12;ALS(G12="m2";J12;ALS(G12="m3";K12;ALS(G12="st";L12;INTEGER(0)))))


De waarde in D12 kan uiteindelijk ook 0,001 of kleiner zijn (wordt afgerond op 2 tiende, dus maximaal 0,00. Een waarde als D12 >= 0,00 bied zo mogelijk dus niet de ideale, maar enkel een 99-percentiel oplossing.

Hoe laat ik de waarde 'ingevuld' (en dus 'waar') worden met een waarde in D12 kleiner dan 1,00?

Litebit.eu voorraad check :).

Alle reacties


Acties:
  • +4 Henk 'm!

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 07-10 15:53
Een integer is per definitie een geheel getal.

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 08-10 16:25
pacificocean schreef op woensdag 8 januari 2020 @ 15:24:
Een integer is per definitie een geheel getal.
Dus dan zou ik beter de 'NUMERIEKE.WAARDE' functie kunnen aanspreken?

Ik was in de veronderstelling dat een 'integer' in de codewereld als een getal (iets numerieks) werd gezien, niet zozeer beperkt door hoe groot die waarde is. Maar die lijkt dan in ieder geval groter dan 1 te moeten zijn.

[ Voor 32% gewijzigd door BLACKfm op 08-01-2020 15:33 ]

Litebit.eu voorraad check :).


Acties:
  • 0 Henk 'm!

  • bregweb
  • Registratie: Juni 2005
  • Laatst online: 10:09
Dan zou 11,50 ook onwaar moeten worden. En is 0 ook een integer?

Welke controle wil je nu eigenlijk doen in D12?

[ Voor 28% gewijzigd door bregweb op 08-01-2020 15:34 ]

Hattrick: Thorgal Eagles


Acties:
  • 0 Henk 'm!

Verwijderd

Als het getal gebroken is dan is het geen integer. 0 is ook een integer, 11,50 niet. Een integer functie() maakt een integer van een niet integer (lees: haalt het breukdeel weg).

Acties:
  • 0 Henk 'm!

  • BLACKfm
  • Registratie: Maart 2004
  • Laatst online: 08-10 16:25
bregweb schreef op woensdag 8 januari 2020 @ 15:31:
Welke controle wil je nu eigenlijk doen in D12?
Onder aan de streep als de waarde die is ingevuld een getal is. Maar 0 is ook een getal, maar die lijkt die dan weer niet mee te tellen.

De 2e formule in mijn TS vult standaard een 0,00 in als in de genoemde cellen geen waarde is ingevuld, en anders de waarde in de respectievelijke cel, liggend aan welke eerst komt (vandaar de hele rits aan ALS-jes).

Hoe dan ook gaat het dus om de waarde in D12, welke altijd een getal is. Van bijv. 0,0000001 tot 59984,448834 (afgerond op 2 decimalen). En ik wil de controle uitvoeren of D12 een getal bevat.


Ik heb het nu aangepast naar:
code:
1
=ALS((EN(LENGTE(A12)=6;NUMERIEKE.WAARDE(D12)));"Ingevuld";"Andere waarde")

En dat lijkt in ieder geval voor nu weer prima te werken (ook met een waarde als 0,10). Maar de vraag is dan of dit de juiste weg is (buiten of het op een andere manier ook zou kunnen).
Als de waarde (standaardwaarde) '0' is, dan is de uitkomst 'onwaar', en dat is een gewenst resultaat.

[ Voor 21% gewijzigd door BLACKfm op 08-01-2020 15:46 ]

Litebit.eu voorraad check :).


Acties:
  • +1 Henk 'm!

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 07-10 15:53
Dus gewoon ISGETAL(waarde) gebruiken.
https://support.office.co...19-40a0-a171-f2d869135665

[ Voor 4% gewijzigd door pacificocean op 08-01-2020 15:50 ]


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Inderdaad, =ISGETAL(D12) verdient de voorkeur boven =NUMERIEKE.WAARDE(D12), je verwacht als invoer immers een getal. Verder is het de vraag hoe nauwkeurig je de invoer wil controleren, want bv. 123,45 in A12 is ook 6 tekens lang. Als je alleen cijfers wil in A12, kun je dan evt. gebruiken: LENGTE(INTEGER(A12)).
Je formule kan met 1 openings- (vóór EN) en sluitingshaakje (ná D!2) minder:
code:
1
=ALS(EN(LENGTE(INTEGER(A12))=6;ISGETAL(D12));"Ingevuld";"Andere waarde")
Pagina: 1