• 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.

Dubbele waarden optellen als subtotalen

Status
Niet open voor verdere reacties.

Lennart24

Nieuwe gebruiker
Lid geworden
2 nov 2012
Berichten
3
Beste Leden,

Ik heb een vraagje over Exel en hoop dat iemand van jullie mij hierbij kan helpen.

In de bijlage heb ik een file toegevoegd waarin gegevens voor een paklijst staan. In kolom D staan productomschrijvingen, waarbij meerdere producten vaker voorkomen. Het is nu de bedoeling dat voor elk product dat meer dan één keer in de lijst staat de gegevens in kolom B, het aantal stuks, bij elkaar worden opgeteld. Dus de dubbele waarden gefilterd en de bijbehorende aantallen bij elkaar opgeteld als subtotalen.

Om dit handmatig op te lossen is een beetje veel werk, misschien weten een van jullie óf en hoe dit via VBA opgelost kan worden?

Alvast bedankt!

Mvg.

Lennart
 

Bijlagen

Dat kan met formules en pivottable, zie bijlage.
Via VBA kan uiteraard ook indien dit de voorkeur heeft.
 

Bijlagen

Laatst bewerkt:
Beste WHER,

Bedankt voor je reactie!

De bedoeling is alleen dat in kolom D "Description" als het waren alle duplicaten verwijderd worden, maar dat daarbij dan wel de aantallen uit kolom B worden opgeteld als subtotaal en weergegeven bij de overgebleven unieke productomschrijving.

Dus dat je zegmaar hetzelfde effect krijgt als met een draaitabel en 'Description' bij rijlabels zet en 'Number' bij -waarden.

Gr. Lennart
 
Dank je! Dit werkt inderdaad prima.

Ik vroeg mij alleen af hoe ik dit resultaat via VBA kan bereiken, maar dan zonder dat er een nieuwe kolom wordt ingevoegd. Of is dat niet mogelijk?
 
Dat zal ongetwijfeld mogelijk zijn met VBA, maar zodoende verlies je de originele gegevens waarop je samenvatting gebaseerd is. Geen goed idee lijkt mij.
 
bijv.
Code:
Sub M_snb()
  sn = Filter([transpose(if(A2:A400="","",trim(D2:D400)&"_"&B2:B400))], "_")
  sp = Range("M1:N400")
    
  For j = 0 To UBound(sn)
    sp(j + 1, 1) = Split(sn(0), "_")(0)
    sp(j + 1, 2) = Evaluate(Join(Filter(Split(Join(Filter(sn, sp(j + 1, 1)), "_"), "_"), " ", False), "+"))
         
    sn = Filter(sn, sp(j + 1, 1), False)
    If UBound(sn) = -1 Then Exit For
  Next
    
  Range("M1:N400") = sp
End Sub
 
Laatst bewerkt:
Dubbele tellen met VBA en SQL

Lennart,

Het is mogelijk om in Excel een SQL vraag op een tabblad los te laten.
Binnen SQL is het mogelijk om de aantallen samen te tellen en een lijst te maken van de gegevens en hun aantallen.

ik heb een voorbeeldje gemaakt binnen je betand. Op tabblad 1 heb ik en knop gemaakt met daarachter een
VBA programma'tje dat een overzicht maakt van de gegevens op tabblad 2

Veel Succes.

Bekijk bijlage HelpMijPackingList.xlsm
 
@Elsendoorn2134

Goeie suggestie.
Dit is voldoende:

Code:
Sub M_snb()
  With New ADODB.Recordset
    .Open "SELECT Description, Unit, SUM(Number) as Waarde FROM `Blad1$` GROUP BY Description, Unit;", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & ThisWorkbook.FullName & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
    Blad2.Cells(2, 1).CopyFromRecordset .DataSource
  End With
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan