Avatar billede dla Praktikant
01. december 2009 - 19:41 Der er 8 kommentarer og
2 løsninger

Hvis der står 21 eller 48 eller 54 i cellen, så skriv noget bestemt

I min kolonne AC2:AC1831 står der en masse tal i cellerne, fx 21 21 22 33 34 35 35, altså flere tal i hver celle. Nu vil jeg gerne lave en funktion der skriver noget i kolonne AF, afhængig af hvilke tal der står i AC, fx sådan: Hvis der står 21 eller 48 eller 54 skal der skrives "Kategori 1", hvis der står 22 eller 35 skal der skrives "Kategori 2".

Jeg kan med denne: =HVIS(ER.FEJL(FIND("21";AC2));"";"Kategori 1")
få skrevet teksten ud fra et enkelt tal i cellen, men hvordan gør jeg når den skal kigge efter flere tal?
Avatar billede Slettet bruger
01. december 2009 - 19:44 #1
=HVIS(ER.FEJL(FIND("21";AC2));HVIS(ER.FEJL(FIND("22";AC2));"";"Kategori 2");"Kategori 1")
Avatar billede dla Praktikant
01. december 2009 - 19:54 #2
Men nu er det altså at jeg har 10 forskellige kategorier og 100 tal. Jeg har Excel 2007, så det kan den vel egentlig godt klare? Bagefter skulle den gerne gemmes i 2003 format til de andre som ikke har version 2007, men kan det ikke gøres, må de finde sig i det.

Jeg prøver om lidt, skal lige have noget at spise først. Tak indtil videre.
Avatar billede Slettet bruger
01. december 2009 - 19:56 #3
Det kan også gøres med VBA, hvis det har interesse.
Avatar billede Slettet bruger
01. december 2009 - 19:57 #4
Eller funktionen vlookup / vopslag
Avatar billede Slettet bruger
01. december 2009 - 19:58 #5
Hmm.. glem min sidste kommentar - tænkte ikke lige på, at cellen indeholder flere værdier, som skal analyseres enkeltvis :)
Avatar billede dla Praktikant
01. december 2009 - 19:59 #6
Jeg vil meget gerne se en løsning med vba.

Men du overså da vist oså mit lille "eller" - kategori 1 er 21 ELLER 35 ELLER 48
Avatar billede Slettet bruger
01. december 2009 - 20:05 #7
Eller kan implementeres ved at insætte samme tekst ved flere kriterier.

VBA kommer om lidt.

/1
Avatar billede Slettet bruger
01. december 2009 - 20:31 #8
Benyttes således:
=lookup(AC2)

Husk at tilrette categories arrayet - "1 to 100" skal ændres, så det det passer til det maksimale kategoriindex ("1 to [maksimal kategoriindex]")

Function lookup(ByRef r As Range)
    Dim categories(1 To 100) As String
    categories(19) = "Kategori 99"
    categories(21) = "Kategori 1"
    categories(22) = "Kategori 1"
    categories(24) = "Kategori 3"
    categories(35) = "Kategori 2"
   
   
    Dim indexes() As String
    indexes = Split(r.Value, " ")
    Dim i As Integer
   
    test = ""
    For i = 0 To UBound(indexes)
        If categories(indexes(i)) = "" Then
            MsgBox ("Category " & i & " doesn't exist")
        Else
            If lookup <> "" Then
                lookup = lookup + " "
            End If
            lookup = lookup & categories(indexes(i))
        End If
    Next
End Function

/1
Avatar billede dla Praktikant
01. december 2009 - 20:52 #9
Hmm... den skriver #VÆRDI! alle steder undtagen der hvor der kun står et tal i cellen, der skriver den 0 og kommer med beskeden Category 0 doesn't exist.

Grunden til #VÆRDI! er måske at tallene ikke står med mellemrum imellem, men med linjeskift (min fejl jeg ikke skrev det), hvordan løser vi det?
Avatar billede dla Praktikant
08. december 2009 - 08:53 #10
Jeg løste opgaven ved at lave en Access database i stedet, der kunne jeg bedre styre de forskellige udtræk jeg skulle bruge.

Men du får lidt point for din hjælp.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester