Avatar billede stoney73 Novice
30. november 2009 - 21:26 Der er 5 kommentarer og
1 løsning

Alle søgeresultater skal skrives til samme felt adskilt af kommaer

Jeg har en lille udfordring i excel.

Jeg har et regneark der bl.a indeholder følgende kolonner:

A (mdr) B (uge) 
Januar  01-2009
Januar  02-2009
Januar  03-2009
Januar  04-2009
Februar 05-2009

I bunden af regnarket foretager jeg nogle totaloptællinger i arket bl.a. per måned og der ville jeg så også gerne vise hvilke uger der er medtalt under den enkelte mdr. (ugerne behøver nødvendigvis ikke at blive medtalt under den måned de kalendermæssigt hører til, det er A kolonnen der bestemmer hvilken måned de skal tælles under), men vel at mærke i samme samme felt adskilt af komma (f.eks. FELT 1: Januar; FELT 2: 01, 02, 03, 04

Er der nogen der kan hjælpe med dette?
Avatar billede excelent Ekspert
01. december 2009 - 06:21 #1
Function Samle(rng As Range, værdi As Range) As String
For Each c In rng
If c = værdi Then Samle = Samle & Left(c.Offset(0, 1), 2) & ", "
Next
Samle = Left(Samle, Len(Samle) - 2)
End Function

Indsæt kode i et alm. modul
i arket skriver du =samle(område;celle)
hvor område fx er A1:A100 og celle fx er B1
Avatar billede stoney73 Novice
01. december 2009 - 08:52 #2
Hej Excelent

Jeg kan ikke få funktionen til at virke, den virker mig #Value!, men hvis jeg debugger den kan jeg også se at den spørger på om f.eks. 01-2009 er lig Januar og det er det jo ikke.

Kol A    Kol B
01-2009    Januar
02-2009    Januar
03-2009    Januar
04-2009    Januar
05-2009    Januar
06-2009    Februar
07-2009    Februar

Funktionen har jeg udfyldt med følgende:
=samle(A2:A54;B2)
Avatar billede excelent Ekspert
01. december 2009 - 09:54 #3
område skal være hvor du har måneder (jan,feb...)
jeg går ud fra du har en liste med alle 12 mdr.
et andet sted fx i C2:C13
og du så indsætter formel til højre for denne
du skal nok lige gøre område absolut
=samle($B$2:$B$54;C2)
Avatar billede excelent Ekspert
01. december 2009 - 10:26 #4
Ja jeg vrøvler
kan se du har vendt om på kol a og b
prøv denne

Function Samle(rng As Range, værdi As Range) As String
For Each c In rng
If c = værdi Then Samle = Samle & Left(c.Offset(0, -1), 2) & ", "
Next
Samle = Left(Samle, Len(Samle) - 2)
End Function
Avatar billede stoney73 Novice
01. december 2009 - 20:56 #5
Hej Excelent

Den virker perfekt, ligger du et svar så du kan få point.

Mange tak for hjælpen :-)
Avatar billede excelent Ekspert
01. december 2009 - 21:21 #6
velbekom

Hvis du har behov for at kolonne med uge/år er variabel, så kan du anvende denne i stedet.
i arket taster du så :
=samle($B$2:$B$54;C2;-1) hvis mdr er i kol B og uger i kol A
=samle($C$2:$C$54;C2;-2) hvis mdr er i kol C og uger i kol A
=samle($B$2:$B$54;C2;1) hvis mdr er i kol B og uger i kol C
=samle($B$2:$B$54;C2;2) hvis mdr er i kol B og uger i kol D


Function Samle(rng As Range, værdi As Range, kolonne) As String
For Each c In rng
If c = værdi Then Samle = Samle & Left(c.Offset(0, kolonne), 2) & ", "
Next
Samle = Left(Samle, Len(Samle) - 2)
End Function
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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