• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

aantal van een bepaald item tellen

Status
Niet open voor verdere reacties.

HenkBakker

Gebruiker
Lid geworden
9 nov 2006
Berichten
165
Het zal wel erg eenvoudig zijn om een oplossing voor mijn 'probleem' te geven, maar ik kom er helaas niet op.

In de bijlage een lijst met producten met hun HS-codes, aantallen, gewichten en waardes.
De lijst is bijna 3000 regels lang; maar kan maximaal 90.000 regels lang worden.

Wat ik wil is, om per HS-code de totale aantallen van bijbehorend product optellen. Hetzelfde voor het gewichten en de waarden.

Om het juiste resultaat te verkrijgen, doe ik het nu op deze manier:
1. filter een bepaalde HS-code. Neem als voorbeeld 4203.30.00.
2. kopieer de code in cel B90005.
3. kopieer B90005:E90005
4. plakken speciaal (waarden) naar B90007:E90007
5. kopieer deze cellen
5. hef het filter op
6. plak de gegevens in G45:J45 (voor de volgende HS-code in G46:J46 enz.)
deze stappen moeten 115 (het aantal verschillende HS-codes) herhaald worden om de tabel in blad 'CI' te vullen.

Er is niets mis met deze methode, maar je bent wel erg even bezig.
Is er iemand, die hiervoor een formule weet (of een macro kan maken) om de hetzelfde resultaat met één druk op de knop te verkrijgen?
 
Omslachtig inderdaad, aangezien er een functie voor is...
Code:
H4: =SOM.ALS($B$4:$B$2970;$G4;C$4:C$2970)
I.v.m. privacy zou ik wel het bestandje weer weghalen.
 
Laatst bewerkt:
Code:
Sub hsv()
Dim sv, a, i As Long, d As Object
With Sheets("ci info")
sv = .Cells(1).CurrentRegion
ReDim b(UBound(sv))
 Set d = CreateObject("scripting.dictionary")
    For i = 4 To UBound(sv)
      a = d(sv(i, 2))
      If IsEmpty(a) Then a = b
         a(0) = sv(i, 2)
         a(1) = a(1) + sv(i, 3)
         a(2) = a(2) + sv(i, 4)
         a(3) = a(3) + sv(i, 5)
      d(sv(i, 2)) = a
    Next i
  .Cells(Rows.Count, 7).End(xlUp).Offset(1).Resize(d.Count, 4) = Application.Index(d.items, 0)
End With
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan