[EXCEL] vraag voor zoekterm VIND.SPEC meerdere waarden

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • tjerkpolle
  • Registratie: Februari 2004
  • Laatst online: 02-10 08:40
Mijn vraag
voor excel

ik ben bezig met een kasboek
Heb hierin de volgende formule gemaakt die werkt
=ALS(ISFOUT(VIND.SPEC("T-MOBILE";X27));" ";Z27)
ik wil hiermee de bankimport automatisch naar de juiste kolom vullen

Hier is X27 de kolom met NAAM en hij zoekt hierin bijvoorbeeld in dit geval naar T-Mobile.
Als hij dit vind, zet hij de waarde uit kolom Z27 in de betreffende cel.

Nu wil ik echter op meerdere waarden kunnen zoeken in de kolom X27. Dus bijvoorbeeld op T-Mobile maar ook op KPN. Kan ik meerdere zoektermen opgeven die bij een van beide de waarde in de betreffende kolom zetten? Ik heb al geprobeerd met OR maar ik denk dat het het fout gebruik.


Relevante software en hardware die ik gebruik
Excel for MAC 16.73

Wat ik al gevonden of geprobeerd heb
met de functie OR kan je normaal zoeken en meerdere termen opgeven, maar dit is met tot op heden niet gelukt.

Alle reacties


Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 11:14
Het kan met een OF maar dan moet je het deel "ISFOUT(VIND.SPEC("T-MOBILE";X27))" herhalen voor ieder zoekcriterium.

Makkelijker is met deze functie (even zelf naar de Nederlandse excel functies vertalen)
code:
1
=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH(namenlijst;X27)))))>0`;Z27;"")

De lijst met namen waarop je wilt zoeken staat in dit voorbeeld in het benoemde bereik "namenlijst". Die zou je op een aparte sheet kunnen zetten
bron

[ Voor 0% gewijzigd door dixet op 13-06-2023 16:55 . Reden: komma in een puntkomma verandert (iets met NL of EN instellingen) ]


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
tjerkpolle schreef op maandag 12 juni 2023 @ 20:51:
Heb hierin de volgende formule gemaakt die werkt
=ALS(ISFOUT(VIND.SPEC("T-MOBILE";X27));" ";Z27)
Hier is X27 de kolom met NAAM en hij zoekt hierin bijvoorbeeld in dit geval naar T-Mobile.
Met die formule zoek je niet in de gehele kolom X, maar slechts in 1 cel van die kolom, nl. X27 .
Nu wil ik echter op meerdere waarden kunnen zoeken in de kolom X27. Dus bijvoorbeeld op T-Mobile maar ook op KPN. Met de functie OR kan je normaal zoeken en meerdere termen opgeven, maar dit is met tot op heden niet gelukt.
Met deze functie lukt het wel voor cel X27:
code:
1
=als(isfout(of(vind.spec("T-MOBILE";X27);vind.spec("KPN";X27)));" ";Z27)

Aan de te zoeken teksten kun je nog andere toevoegen.

Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 11:14
dix-neuf schreef op dinsdag 13 juni 2023 @ 13:36:
[...]

Met die formule zoek je niet in de gehele kolom X, maar slechts in 1 cel van die kolom, nl. X27 .

[...]

Met deze functie lukt het wel voor cel X27:
code:
1
=als(isfout(of(vind.spec("T-MOBILE";X27);vind.spec("KPN";X27)));" ";Z27)

Aan de te zoeken teksten kun je nog andere toevoegen.
?? de TS vraagt ook alleen maar in die cel te zoeken. Ik stel me zo voor dat hij die formule doortrekt naar alle rijen zodat hij bij bekende namen de waarde uit de overeenkomende rij in kolom Z overneemt.

Jouw functie zoekt ook alleen maar in die ene cel, niet in de hele kolom. Alleen moet je de formule aanpassen/aanvullen voor iedere nieuwe naam die je wilt gaan zoeken. Dat werkt bij 2 of drie namen nog wel maar als hij er straks 25 of meer heeft wordt dat vrij onleesbaar. In mijn voorgestelde oplossing - die dus verder het zelfde doet - kan je werken met een lijstje met namen in een andere sheet die automatisch gebruikt wordt

Acties:
  • 0 Henk 'm!

  • tjerkpolle
  • Registratie: Februari 2004
  • Laatst online: 02-10 08:40
Hallo allemaal,

dank voor jullie reacties. Zoals dixet al schrijft zal ik de formule inderdaad doorkopieren naar de regels eronder. Dus mijn voorbeeld was voor 1 cel, maar zal door gekopieerd worden in mijn kasboek.
Het zullen een max. een 3 a 4 tal zoektermen zijn dus hoeft wmb niet in een apart tabblad.

Mijn voorbeeld werkt.
=ALS(ISFOUT(VIND.SPEC("T-MOBILE";X27));" ";Z27)

als ik echter deze gebruik
=als(isfout(of(vind.spec("T-MOBILE";X27);vind.spec("KPN";X27)));" ";Z27)

krijg ik geen resultaat en blijft de cel Z27 leeg?
Wat doe ik niet goed @dixet @dix-neuf

Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 11:14
Als parameter van een formule een fout bevat, zal de hele formule een fout terug geven.

Omdat van "VIND.SPEC("T-MOBILE";X27)" en "VIND.SPEC("KPN";X27)" altijd één van de twee een fout geeft zal je OR altijd een fout geven. Dus zal je ISFOUT functie altijd WAAR zijn. Dus zal je resultaat altijd " " zijn.

Beter controleer je per VIND.SPEC of het resultaat niet fout is en wissel je de waar en onwaar kant van de ALS om:

code:
1
=IF(OR(NOT(ISERROR(SEARCH("T-MOBILE";X27)));NOT(ISERROR(SEARCH("KPN";X27))));Z27;" ")

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
dixet schreef op vrijdag 23 juni 2023 @ 08:27:
Als parameter van een formule een fout bevat, zal de hele formule een fout terug geven.
De vragensteller meldde dat de formule een lege cel als resultaat geeft.
Dat kan redelijkerwijs alleen maar betekenen dat in Z27 ofwel geen T-MOBILE ofwel geen KPN voorkomt.
dixet schreef op vrijdag 23 juni 2023 @ 08:27:
Omdat van "VIND.SPEC("T-MOBILE";X27)" en "VIND.SPEC("KPN";X27)" altijd één van de twee een fout geeft zal je OR altijd een fout geven. Dus zal je ISFOUT functie altijd WAAR zijn.
Dat is pertinent ONJUIST ! Voor de OF-functie geldt dat bij vergelijking van twee waarden er slechts 1 juist hoeft te zijn om als resultaat WAAR te krijgen. De functie die ik eerder plaatste, is juist.

Acties:
  • 0 Henk 'm!

  • Hoiz
  • Registratie: Augustus 2009
  • Laatst online: 01-08 08:20
Klinkt als iets dat je beter kan automatiseren met power query en een data model. De bank import, is deze in CSV?

Acties:
  • 0 Henk 'm!

  • dixet
  • Registratie: Februari 2010
  • Laatst online: 11:14
dix-neuf schreef op vrijdag 23 juni 2023 @ 08:38:
[...]

De vragensteller meldde dat de formule een lege cel als resultaat geeft.
Dat kan redelijkerwijs alleen maar betekenen dat in Z27 ofwel geen T-MOBILE ofwel geen KPN voorkomt.

[...]

Dat is pertinent ONJUIST ! Voor de OF-functie geldt dat bij vergelijking van twee waarden er slechts 1 juist hoeft te zijn om als resultaat WAAR te krijgen. De functie die ik eerder plaatste, is juist.
Er is een verschil tussen ONWAAR en FOUT. Als alle waardes WAAR en/of ONWAAR zijn geeft OF inderdaad WAAR of ONWAAR terug. Als één waarde #FOUT is geeft OF fout terug

Zie dit voorbeeld:
Afbeeldingslocatie: https://tweakers.net/i/PUZP0BqqYDg24k98T70XEKc-nk4=/800x/filters:strip_exif()/f/image/XD9GZxJCIRGKsvnpOJHrlWfR.png?f=fotoalbum_large

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
dixet schreef op vrijdag 23 juni 2023 @ 08:46:
Er is een verschil tussen ONWAAR en FOUT. Als alle waardes WAAR en/of ONWAAR zijn geeft OF inderdaad WAAR of ONWAAR terug. Als één waarde #FOUT is geeft OF fout terug
Als bij gebruik van OF 1 van de 2 beweringen ONWAAR is, geeft de formule ook ONWAAR terug.
Voor de formule, van toepassing voor de vragensteller, wordt ONWAAR als FOUT beschouwd. De van toepassing zijnde formule heet immers ook ALS.FOUT. Mijn opmerking in mijn vorig bericht blijft dus overeind. Het woord NIET (Engels NOT) is ook niet nodig (dat kán wel, maar dat is alleen maar de probleemstelling omdraaien en de formule langer maken).

Het probleem van de vragensteller nog eens goed bekijkend en overwegend dat met de formule naar 2 (of meer) teksten steeds in 1 cel wordt gezocht, denk ik dat het misschien beter is om EN te gebruiken in plaats van OF.
tjerkpolle, probeer onderstaande formule in de cel waarin het resultaat moet komen. Let er wel op dat, om in die resultaatcel wat te kunnen zien, er in Z27 wel wat moet staan (dat dat niet zo was, was wellicht de reden dat er bij gebruik van mijn vorige formule bij jou niets verscheen).

code:
1
=als(en(isfout(vind.spec("T-MOBILE";X27));isfout(VIND.SPEC("KPN";X27)));"";Z27)

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

dix-neuf schreef op vrijdag 23 juni 2023 @ 08:38:
[...]
Dat is pertinent ONJUIST ! Voor de OF-functie geldt dat bij vergelijking van twee waarden er slechts 1 juist hoeft te zijn om als resultaat WAAR te krijgen. De functie die ik eerder plaatste, is juist.
dix-neuf schreef op vrijdag 23 juni 2023 @ 10:09:
[...]
Als bij gebruik van OF 1 van de 2 beweringen ONWAAR is, geeft de formule ook ONWAAR terug.
In dit geval zit je er echt naast en wat @dixet schrijft is juist. Probeer dit maar eens:
=OF(WAAR;NB()). Geeft als waarde #N/B
=OF(WAAR;ONWAAR). Geeft als waarde WAAR

[ Voor 22% gewijzigd door Lustucru op 25-06-2023 00:08 ]

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


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Onderstaande twee zinnen die ik hierboven schreef:

1. Voor de OF-functie geldt dat bij vergelijking van twee waarden er slechts 1 juist hoeft te zijn om als resultaat WAAR te krijgen.
en
2. Als bij gebruik van OF 1 van de 2 beweringen ONWAAR is, geeft de formule ook ONWAAR terug.

zijn met elkaar in strijd en 1 van de 2 is dus niet juist; dat is de tweede. Bovendien plaatste ik in de formule in mijn eerste bericht tussen de twee dubbele aanhalingstekens een spatie en dat was niet de bedoeling. Mijn verontschuldigingen daarvoor, ik ben onzorgvuldig geweest.
Hopelijk werkt de formule die ik in mijnbericht van 23-06-2023 plaatste, dat is deze:
code:
1
=als(en(isfout(vind.spec("T-MOBILE";X27));isfout(VIND.SPEC("KPN";X27)));"";Z27)

wel naar wens.
Pagina: 1