XL 2013 Regrouper des données

don_pets

XLDnaute Occasionnel
Salut le fofo,

dites-moi je sèche sur un regroupement et j'aurais besoin d'un petit coup de main !

Mon tableau en PJ synthétise ma demande, mais pour faire court j'ai un tableau dans lequel je peux avoir un certain nombres de lignes pouvant avoir une donnée commune en A et qui ont chacune des valeurs différentes dans les autres colonnes. Dis comme ça, ce n'est pas limpide, mais j'ai la tête légèrement embrumée. Le plus simple, mon fichier joint avec l'onglet de départ, qui contient des données brutes, et l'onglet arrivée, telle que j'aimerais les avoir.

Merci par avance :)
 

Pièces jointes

  • Test.xlsm
    14 KB · Affichages: 25

don_pets

XLDnaute Occasionnel
Hello Vg,
Solution efficace ! j'avais jamais trop joué avec la sommeprod, (enfin si mais des cas vachement plus simples) donc faut que je le traduise, et qu'après je fasse de la transco sur mon fichier source qui est un peu plus complet, et surtout que je l'automatise via vb.

Pour la petite histoire, c'est une extraction que je fais via sql (enfin que je vais automatiser via excel) et je veux seulement mettre en forme mes données ...

En tout les cas, merci pour le coup de main, je vais tâcher de mettre tout ça en place !
 

don_pets

XLDnaute Occasionnel
Vg,

J'ai pu grâce à toi automatiser cela,

pour les curieux cela donne :

VB:
ligne = 2
Do Until Cells(ligne, 1) = ""
    Cells(ligne, 10).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C10:R1C15=Temp!R1C10)*data!R2C10:R3600C15)"
    Cells(ligne, 11).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C11:R1C15=Temp!R1C11)*data!R2C11:R3600C15)"
    Cells(ligne, 12).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C12:R1C15=Temp!R1C12)*data!R2C12:R3600C15)"
    Cells(ligne, 13).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C13:R1C15=Temp!R1C13)*data!R2C13:R3600C15)"
    Cells(ligne, 14).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C14:R1C15=Temp!R1C14)*data!R2C14:R3600C15)"
    Cells(ligne, 15).FormulaR1C1 = "=SUMPRODUCT((RC1=data!R2C1:R3600C1)*(data!R1C15:R1C15=Temp!R1C15)*data!R2C15:R3600C15)"
    Cells(ligne, 16).FormulaR1C1 = "=VLOOKUP(RC[-15],data!C[-15]:C,16,0)"
    Cells(ligne, 17).FormulaR1C1 = "=VLOOKUP(RC[-16],data!C[-16]:C,17,0)"
   
ligne = ligne + 1
Loop

Encore merci pour ton coup de main
 

vgendron

XLDnaute Barbatruc
tu peux aussi "simplifier" pour mettre la formule

VB:
Sub MettreFormule()

formule = "=SOMMEPROD(($A2=Depart!$A$2:$A$5)*(Depart!$B$1:$D$1=Arrivée!B$1)*Depart!$B$2:$D$5)"
With Sheets("Arrivée")
    .Range("B2").FormulaLocal = formule
    .Range("B2").AutoFill Destination:=Range("B2:D2"), Type:=xlFillDefault
    .Range("B2:D2").AutoFill Destination:=Range("B2:D3"), Type:=xlFillDefault
End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 272
Membres
104 083
dernier inscrit
hecko