Er zijn verschillende manieren om vast te stellen of een Excel-cel een getal bevat dat rechtstreeks is ingevoerd, in tegenstelling tot een getal dat voortvloeit uit een formule:
1. Met behulp van de functies `ISNUMBER` en `ISFORMULA`:
Dit is de meest eenvoudige en betrouwbare methode. Combineer deze functies om beide voorwaarden te controleren:
* `ISNUMMER(A1)`: Deze functie retourneert 'WAAR' als cel A1 een getal bevat (direct ingevoerd of het resultaat van een formule die uitmondt in een getal), en anders 'FALSE'.
* `ISFORMULE(A1)`: Deze functie retourneert 'WAAR' als cel A1 een formule bevat, en anders 'FALSE'.
Om te controleren of een cel een *direct ingevoerd* getal bevat, moet zowel `ISNUMBER` `TRUE` zijn als `ISFORMULA` `FALSE` zijn:
```uitblinken
=EN(ISGETAL(A1), NIET(ISFORMULE(A1)))
```
Deze formule retourneert alleen 'WAAR' als cel A1 een getal bevat dat rechtstreeks in de cel is getypt en niet door een formule is berekend. Plaats deze formule in een andere cel en vervang `A1` door de cel die u wilt controleren.
2. Gebruik van de `CELL`-functie (minder betrouwbaar):
De functie `CEL` kan informatie verschaffen over de opmaak en inhoud van een cel. Het is echter minder betrouwbaar voor deze specifieke taak, omdat het niet altijd nauwkeurig onderscheid maakt tussen een direct ingevoerd getal en een formule die resulteert in een getal:
```uitblinken
=ALS(CEL("type",A1)="v",WAAR,ONWAAR)
```
Hiermee wordt gecontroleerd of het celtype "v" (waarde) is, wat *kan* duiden op een direct ingevoerd getal. Maar een formule die evalueert naar een getal zou ook 'v' retourneren, dus deze methode is niet onfeilbaar.
3. VBA-macro (voor complexere scenario's):
Voor complexere behoeften of grootschalige analyses biedt een VBA-macro meer flexibiliteit. U kunt door cellen bladeren en hun eigenschappen onderzoeken om te bepalen of het formules zijn of direct ingevoerde getallen. Dit is geavanceerder, maar geeft u nauwkeurige controle. Hier is een eenvoudig voorbeeld:
```vba
Subcontroleceltype()
Cel dimmen als bereik
Voor elke cel binnen bereik("A1:A10") 'Pas het bereik indien nodig aan
Als IsNumeriek(cel.Waarde) En Niet cel.HasFormule Dan
Debug.Print cell.Address &" bevat een direct ingevoerd nummer."
Einde Als
Volgende cel
Einde sub
```
Deze macro loopt door de cellen A1 tot en met A10. `IsNumeric` controleert op een getal, en `cell.HasFormula` verifieert of het een formule is. Het resultaat wordt afgedrukt in het directe venster (Weergave> Directe venster).
De `AND(ISNUMBER(A1), NOT(ISFORMULA(A1)))` methode is de meest betrouwbare en aanbevolen aanpak om te bepalen of een cel een direct ingevoerd getal in Excel bevat. De andere methoden worden voor de volledigheid gegeven, maar hebben beperkingen. |