Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 1029
Jeg har et dokument som skal brukes til en indeks for å vise hvilke sider i en katalog ulike produkter er på. Problemet er at noen produkter er på flere sider, og jeg ønsker å få disse til å bli én oppføring i stedet for flere.

Dette bildet viser hva jeg ønsker å oppnå:



Til venstre er hvordan dataene ser ut nå, det til høyre er hvordan jeg ønsker at det skal se ut. Er det noen formler som kan hjelpe meg på vei? Mistenker at jeg bruker feil søkeord.

Edit: La inn eksempelet på Google Docs.
Sist endret av Viva la Opium; 12. desember 2016 kl. 10:50.
Skrev en kjapp makro som gjør det du etterspør. Antar at all data ligger i A- og B-kolonnen, og at navnene på "samme produkt" er identiske. Denne går gjennom dataene, summerer det til et array mens den fortløpende sletter de eksisterende dataene - deretter legger den inn igjen de sorterte dataene. Finnes sikkert funksjoner som kan nøstes for å oppnå det samme mer effektivt, men dette var det jeg kom på på noen minutter.

Kode

Public Type produkt
    navn As String
    sider As String
End Type

Sub SamleProdukt()
Dim produkter() As produkt
Dim sisteRad, i, j, n As Long
ReDim produkter(1 To 1)

sisteRad = Range("a1").End(xlDown).Row

For i = 2 To sisteRad
    funnet = False
    For j = LBound(produkter) To UBound(produkter)
        If Cells(i, 1).Value = produkter(j).navn Then
            funnet = True
            produkter(j).sider = produkter(j).sider & ", " & Cells(i, 2).Value
        End If
    Next j
    
    If funnet = False Then
        n = n + 1
        ReDim Preserve produkter(1 To n)
        produkter(n).navn = Cells(i, 1).Value
        produkter(n).sider = Cells(i, 2).Value
    End If
    
    Cells(i, 1).Value = ""
    Cells(i, 2).Value = ""
Next i

For i = LBound(produkter) To UBound(produkter)
    Cells(i + 1, 1).Value = produkter(i).navn
    Cells(i + 1, 2).Value = produkter(i).sider
Next i

End Sub
jamen yolo da.
Viva la Opium's Avatar
Trådstarter
Det funker som en sjarm!

Fikk til og med avdekket et produkt som hadde forskjellig navn, selv om det skulle vært likt.