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

Data vanuit meerdere ongelijke tabellen goedzetten

Status
Niet open voor verdere reacties.

rhandyypp

Gebruiker
Lid geworden
7 aug 2018
Berichten
9
Hi allemaal,

Ik heb een bestand in Excel welke ik goed probeer te zetten, maar de data is verdeeld over meerdere tabellen welke niet dezelfde opmaak hebben.

In de bijlage een voorbeeld. Hierbij staan 2 tabellen welke een afzet laten zien van een product in een week per winkel. De winkels zijn echter niet altijd hetzelfde, waardoor de winkels niet in dezelfde rij staan. Nu is mijn vraag: is er een formule waarbij ik zoek op 'Product A', 'Winkel A' & 'Week 1'? In de cel wil ik dan graag de afzet van het desbetreffende product, winkel en week zien terug te komen.

Alvast bedankt!Bekijk bijlage Voorbeeld.xlsx
 
Ha Rhandy,

ingewikkeld vraagstuk, ik zal hier eens even goed voor gaan zitten vanavond.
 
Mijn vraag is hoe versimpeld is deze weergave? Op basis van dit bestand zou ik kolommen invoegen(bij tabel 2) om zo een 'database' bestand te maken..
 
Mijn vraag is hoe versimpeld is deze weergave? Op basis van dit bestand zou ik kolommen invoegen(bij tabel 2) om zo een 'database' bestand te maken..

Klopt, hier zat ik ook aan te denken, maar wellicht dat er een snellere manier is.
 
Maak eerst een genormaliseerde tabel.
Daarna doet een draaitabel al het werk voor je.

Met deze macro:

Code:
Sub M_snb()
   sn = Sheet1.Cells(1).CurrentRegion
   sp = Sheet1.Cells(10, 1).CurrentRegion
   
   With CreateObject("scripting.dictionary")
      .Item(.Count) = Array("week", "produkt", "winkel", "aantal")
       
      For j = 2 To UBound(sn)
         For jj = 3 To UBound(sn, 2)
            .Item(.Count) = Array(sn(j, 1), sn(j, 2), sn(1, jj), --sn(j, jj))
         Next
      Next
      
      For j = 2 To UBound(sp)
         For jj = 3 To UBound(sp, 2)
            .Item(.Count) = Array(sp(j, 1), sp(j, 2), sp(1, jj), --sp(j, jj))
         Next
      Next
      
      Sheet1.Cells(34, 1).Resize(.Count, 4) = Application.Index(.items, 0, 0)
   End With
   
   With ThisWorkbook.PivotCaches.Create(1, Sheet1.Cells(34, 1).CurrentRegion).CreatePivotTable(Sheet1.Cells(34, 8))
      .PivotFields(3).Orientation = 1
      .PivotFields(2).Orientation = 2
      .PivotFields(1).Orientation = 2
      .PivotFields(4).Orientation = 4
      .DataFields(1).Function = xlSum
    End With
End Sub
 
Laatst bewerkt:
@KristiaanL

Wilde je die bijlage wel meesturen ?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan