Wildcard zoeken met IF functie Excel

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • zonderbloem
  • Registratie: September 2015
  • Laatst online: 27-07 21:21
Met de ALS functie in Excel zou ik graag middels een wildcard tekst willen opzoeken in de E kolom en als dat voldoet moet er een bepaalde tekst in de F kolom komen te staan. Ik heb 206 verschillende condities waarop gecontroleerd moet worden. Wanneer ik alle 206 ALS statements probeer in te voeren komt de foutmelding: "Deze formule kan niet worden ingevoerd, omdat deze meer dan 64 geneste niveaus bevat". Als voorbeeld gebruik ik onderstaande ALS functie

ALS(AANTAL.ALS(E5;{"Search Closed Sources*"});"Reconnaissance";

Alle reacties


Acties:
  • 0 Henk 'm!

  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Wil je voor elk van de 206 condities een andere tekst genereren? Of moet dezelfde tekst in de cell komen te staan als één van de condities waar is? Met OR kun je tot 255 verschillende condities testen.
IF(OR(A1="X", A1="Y", ...), ...

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


Acties:
  • 0 Henk 'm!

  • zonderbloem
  • Registratie: September 2015
  • Laatst online: 27-07 21:21
naitsoezn schreef op maandag 5 april 2021 @ 09:40:
Wil je voor elk van de 206 condities een andere tekst genereren? Of moet dezelfde tekst in de cell komen te staan als één van de condities waar is? Met OR kun je tot 255 verschillende condities testen.
IF(OR(A1="X", A1="Y", ...), ...
Dat ziet er inderdaad veel belovend uit. De waarde is in veel gevallen hetzelfde dus dat zou prima met de OR kunnen. Ik loop alleen tegen het probleem aan dat de wildcard niet uitgevoerd wordt.

=ALS(OF(E2="Account Discovery*";E2="Command and Scripting*");"Reconnaissance")

Ik heb ook de volgende geprobeerd maar die levert een foutcode op:

=ALS(OF(E2=AANTAL.ALS(E2;{"Abuse Elevation Control Mechanism*"};E2=AANTAL.ALS(E2;{"Account Discovery"});"Reconnaissance")

[ Voor 5% gewijzigd door zonderbloem op 05-04-2021 09:56 ]


Acties:
  • 0 Henk 'm!

  • naitsoezn
  • Registratie: December 2002
  • Niet online

naitsoezn

Nait Soez'n!

Ik weet niet wat je precies met wildcard bedoelt, maar als je zoekt op "*" dan zoek je gewoon naar het teken * net als dat wanneer je bv op "k" zoekt, je zoekt naar de letter k. Met SEARCH kun je wel zoeken of een bepaalde substring voorkomt in een andere string (cell), combineer dat met bv ISNUMBER om er een TRUE / FALSE uit te laten komen.

Of je trekt met de functie LEFT(A1, 10) de eerste 10 tekens uit cell A1 (waarbij 10 gewoon het aantal karakters is van de string die je zoekt) en vergelijkt dat met je zoektstring (van in dit geval 10 tekens), maar ik denk (heb het niet gecontroleerd) dat je dan misschien nog een foutmelding moet afvangen als in A1 minder dan 10 tekens staan.

[ Voor 36% gewijzigd door naitsoezn op 05-04-2021 10:17 ]

't Het nog nooit, nog nooit zo donker west, of 't wer altied wel weer licht


Acties:
  • 0 Henk 'm!

  • JustDutch
  • Registratie: April 2002
  • Laatst online: 30-09 19:04

JustDutch

was ambtenaar :)

kun je dat niet met verticaal zoeken oplossen?
Dan moet je al die 206 argumenten onder elkaar zetten en in de bijvoorbeeld in de kolom erachter wat je in kolom F moet komen te staan. En als die wildcard ervoor is dat ook langere teksten gevonden moeten worden met juist dat begin van de tekst, let dan op het laatste argument in de verticaal zoeken functie, volgens mij moet die dan op waar/ true staan, maar dat vind je wel uit.

[ Voor 40% gewijzigd door JustDutch op 05-04-2021 10:23 ]

Forza Mucca


Acties:
  • 0 Henk 'm!

  • zonderbloem
  • Registratie: September 2015
  • Laatst online: 27-07 21:21
Bedankt voor jullie hulp het is inmiddels gelukt met de onderstaande formule.

=IF(OR(ISNUMBER(SEARCH("*Account Discovery*"; E2));ISNUMBER(SEARCH("Command and Scripting Interpreter*"; E2)));"Letheral movement")

Helaas heeft Excel ook een limiet van 8192 karakters in de formule. Conclusie als je meer wilt ga naar VBA

[ Voor 20% gewijzigd door zonderbloem op 05-04-2021 12:31 ]


Acties:
  • +1 Henk 'm!

  • g0tanks
  • Registratie: Oktober 2008
  • Laatst online: 20:16

g0tanks

Moderator CSA
zonderbloem schreef op maandag 5 april 2021 @ 10:46:
Bedankt voor jullie hulp het is inmiddels gelukt met de onderstaande formule.

=IF(OR(ISNUMBER(SEARCH("*Account Discovery*"; E2));ISNUMBER(SEARCH("Command and Scripting Interpreter*"; E2)));"Letheral movement")

Helaas heeft Excel ook een limiet van 8192 karakters in de formule. Conclusie als je meer wilt ga naar VBA
Dat kan korter. Je hoeft niet elke keer ISNUMBER en SEARCH te herhalen:
code:
1
=IF(OR(ISNUMBER(SEARCH({"*Account Discovery*";"Command and Scripting Interpreter*"};E2)));"Letheral movement";)

[ Voor 4% gewijzigd door g0tanks op 05-04-2021 14:55 ]

Ultrawide gaming setup: AMD Ryzen 7 2700X | NVIDIA GeForce RTX 2080 | Dell Alienware AW3418DW

Pagina: 1