At bruge tegn, der normalt anvendes som jokertegn, som teksttegn i formler

Overskriften til denne artikel kan måske misforstås, desværre, men jeg kunne ikke ifnde på noget bedre. Det handler ikke om at bruge jokertegn som jokertegn (wildcards), men når man vil anvende de tegn, der ellers fungerer som jokertegn, som almindelige tegn i en betinget funktion eller i andre sammenhænge.

Illustrationen til højre viser et simpelt regneark. For at gøre overskueligheden bedre, har jeg valgt at Antal altid er 1. Hvis jeg nu vil tæller, hvor mange gange P forekommer kan jeg gøre det med denne formel:

=TÆL.HVIS(A2:A11;"P"),

og da der bogstavet 'P' forekommer 2 gange, vil svaret være 2. TÆL.HVIS(A2:A11;"K") vil give resultatet 1, da der kun forekommer et enkelt K. På samme måde med SUM.HVIS.

=SUM.HVIS(A2:A11;"P";B2:B11)

vil give 2, da summen af tallene ud for de to P'er faktisk er 2. =SUM.HVIS(A2:A11;"K";B2:B11) giver også 1, da der jo fortsat kun er et enkelt K. På samme måde forholder det sig, hvis jeg vil bruge funktioner som TÆL.HVISER() og SUM.HVISER.

Men hvad så, hvis jeg vil tælle eller summere antallet af asterisker (*) eller spørgsmålstegn (?)?

=TÆL.HVIS(A2:A11;"*") vil give resultatet 10, og =TÆL.HVIS(A2:A11;"?") vil give 8. Det samme gør sig gældende med SUM.HVIS, men af én eller anden grund, som jeg ikke kender, virker det fint med SUMPRODUKT(), men det skyldes måske, at SUMPRODUKT ikke er en betinget funktion, selv om den kan bruges som sådan. Men hvad skal man så gøre, hvis man faktisk vil tælle antallet af *. Her skal man bruge endnu et specialtegn, nemlig en såkaldt accent tilde, eller bare en tilde (~).

=TÆL.HVIS(A2:A11;"~*")

vil give 2 mens

=TÆL.HVIS(A2:A11;"~?")

vil give 1. Og tilsvarende med SUM.HVIS() og de øvrige betingede funktioner.

Tilden vil fortælle Excel, at * skal opfattes som et almindeligt teksttegn, ikke som et jokertegn, og det samme gør sig naturligvis gældende med spørgsmålstegnet.

LOPSLAG()= og VOPSLAG() vil give tilsvarende problemer, hvis opslagsværdien er  * eller en ~. Bruger jeg fx denne formel

=LOPSLAG(E1;A1:B11;2;0)

med en * i  E1, vil formlen returnere ordet Antal. Her er der tilsyneladende ikke problemer med ? Har man en tilde i sin opslagskolonne, og vil bruge tilde som opslagsværdi, får man resultatet #I/T!, så i så fald skal men bruge en dobbelttilde - to tilder - som opslagsværdi, altså ~~.

Tilden (~) er simpelthen et specialtegn i Excel, der får programmet til at ignorere andre tegn med specielle funktioner og opfatte dem bogstaveligt, altså som normale teksttegn.

Problemet opstår også i 'Søg' og 'Søg og Erstat' dialogboksene. Skriver jeg fx følgende i min dialogboks

og vælger Erstat alle, vil regnearket nu se sådan ud:

og det er næppe hensigten. Skriver jeg i stedet ~* i 'Erstat med' ruden, erstattes kun de to asterisker i kolonne A. Jeg skal ikke kunne sige, om problemet vil optræde i andre sammenhænge, men hvis det skulle ske, så prøv om ikke denne løsning vil virke i disse også.

- Tilbage til Excel -