13. juni 2005 - 12:00Der er
2 kommentarer og 1 løsning
Opret ny liste hvor navne kun står 1 gang
Hej Jeg sidder med en liste over de 10 største virksomheder i en sektor gennem 14 år. Virksomhedsnavnene står nedad gennem rækkerne og årstallene står på tværs. Jeg skal bruge en VBA kode der laver en liste et andet sted på arket, hvor alle de selskaber der har været i top 10 gennem årene står, men kun 1 gang. I kolonne A3:A12 står top 10 virksomhederne fra 1986. De skal bare skrives ned, da data først starter i 1986, men fra 1987 sker der en udskiftning af et par af selskaberne i top 10. De to selskaber der kommer i top 10 skal nu skrives på listen under dem der i forvejen står der. Det skal så fortsætte indtil 2004 (kolonne S3:S12), så alle top 10 virksomheder er talt med 1 gang.
Det er jo nok noget med en masse loops, men det er kokset for mig.
Det er ikke helt det du beder om, men måske lidt inspiration. Den nedenstående funktion kan bruges til at finde unikke celleværdier fra et område.
Hvis du f.eks. i A15 skriver 1 og i A16 2 osv. osv. Så kan funktionen kaldes ved i B15 at skrive:
=uniqueitem($A$3:$S$12;A15)
og kopiere denne celle. Herved frembringes en liste over unikke celleværdier.
Function UniqueItem(InputRange As Range, ItemNo As Long) As Variant Dim cl As Range, cUnique As New Collection, cValue As Variant Application.Volatile On Error Resume Next For Each cl In InputRange If cl.Formula <> "" Then cUnique.Add cl.Value, CStr(cl.Value) End If Next cl UniqueItem = "" If ItemNo = 0 Then UniqueItem = cUnique.Count Else If ItemNo <= cUnique.Count Then UniqueItem = cUnique(ItemNo) End If End If On Error GoTo 0 End Function
Er det noget i den retning du søger? Hvis ja, så kan vi se på at tilpasse den til dit behov.
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.