01. december 2009 - 19:41Der 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?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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.
Synes godt om
Slettet bruger
01. december 2009 - 19:56#3
Det kan også gøres med VBA, hvis det har interesse.
Synes godt om
Slettet bruger
01. december 2009 - 19:57#4
Eller funktionen vlookup / vopslag
Synes godt om
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 :)
Men du overså da vist oså mit lille "eller" - kategori 1 er 21 ELLER 35 ELLER 48
Synes godt om
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
Synes godt om
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
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?
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.
Synes godt om
Ny brugerNybegynder
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.