Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Excel 2007] '=' operator werkt niet met jokertekens*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben bezig met berekeningen waarbij sommige waarden niet meegenomen moeten worden indien een bepaalde tekst in de beschrijving voorkomt. Hiervoor gebruik ik de NIET functie. Uiteindelijk is met behulp van de NIET functie de formule goed gekomen. Echter werkt het pas na het invoegen van ISGETAL en VIND.SPEC in de NIET functie. Hieronder volgt een voorbeeld:

1. Indien NIET functie met met zoeken op NAAM werkt die gewoon.

Afbeeldingslocatie: http://i39.tinypic.com/35kiipi.jpg

2. Echter wil ik juist diegene met de tekst 'nieuw' erin elimineren. Als ik dan jokertekens invoer *nieuw* werkt de formule niet.

Afbeeldingslocatie: http://i44.tinypic.com/28a464g.jpg

3. Nadat ik de functie isgetal en vind.spec invoer (tip op internet bij andere formule) werkt de formule wel juist.

Afbeeldingslocatie: http://i42.tinypic.com/161hmk6.jpg

4. Om te laten zien dat jokertekens wel gewoon werken in bijvoorbeeld de Aantal.ALS formule staat hieronder een voorbeeld, indien nieuw voorkomt in CEL D telt hij hem op.

Afbeeldingslocatie: http://i41.tinypic.com/2i6c4xw.jpg

Nu wil ik graag weten waarom dit gebeurt. Ik dacht dat jokertekens gewoon voor elke formule op dezelfde manier werkte maar blijkbaar is dat niet zo? Heeft iemand een idee hoezo de NIET functie niet werkt met *nieuw* (dus met jokertekens)?

Alvast bedankt.

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

De NIET()-functie is een simpele boolean NOT en heeft dus niets met wildcards te maken. Het doet niets anders dan true => false en false => true.

VIND.SPEC() is waar je vraag over gaat. En die heeft geen * wildcard nodig want gebruikt die impliciet al. Isgetal eromheen is om te checken of het inderdaad op een positie in de string staat. Behalve natuurlijk als je "nieuw" aan het begin of einde vd zin zou willen negeren.

Maar nee, wildcards werken zeker niet in elke functie. Dat zal per functie moeten zijn aangegeven bij F1.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Kalief
  • Registratie: Maart 2005
  • Laatst online: 25-11 19:56
Is dit niet makkelijker?

=NOT(ISERROR(FIND("nieuw";"naam nieuw")))

Komt "nieuw" voor in "naam nieuw" dan geeft Find de positie van "nieuw" terug, zo niet dan geeft-ie een foutmelding. In het eerste geval geeft IsError een false, in het tweede geval een True. Not draait die om zodat de functie True roept als je gezochte tekst voorkomt en False als die niet voorkomt.

Niemand wordt Kalief in plaats van de Kalief!


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Kleine titelfix. :)
Wat f_j_k zegt: '=' geeft hier dus altijd onwaar, omdat de strings exact gelijk moeten zijn.
Vind.spec geeft echter nooit onwaar, maar een getal of een foutmelding.

Om een boolean terug te geven of een tekst voorkomt in een andere tekst moet je dus de uitkomst van vind.spec() controleren:
code:
1
2
=ISGETAL(VIND.SPEC("nieuw";A1)) -->geeft waar als string gevonden is
=ISFOUT(VIND.SPEC("nieuw";A1))  -->geeft waar als string *niet* gevonden is.

[ Voor 7% gewijzigd door Lustucru op 05-04-2009 10:02 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland