XL 2019 SUM PowerPivot

Juan

XLDnaute Junior
Bonjour à tous,

Je demande votre aide car je ne trouve la solution sur le net.

Voici mon exemple:

J'ai une table avec des clients, des marques vendues sous 2 types : V et S, et des quantités vendues.

Résultats souhaités :
- en colonne G, je souhaite avoir la valeur 0 ou 1 en fonction de la condition suivante :
- si le client a vendu plus de 15 pcs (V+S) et le colonne C = oui, alors 1 sinon 0.

Mon problème intervient lorsque le client a vendu 10 pcs de V et 10 pcs de S. Dans ce cas, le TCD indique 1 que si je n'affiche pas la données V/S. Or, j'ai besoin qu'il m'affiche 1 peut importe que je sélectionne ou non la colonne V/S.

Voici des images pour illustrer et un fichier excel.

Powerpivot 1.JPG
Powerpivot 2.JPG


Merci de votre aide !
Jean
 

Pièces jointes

  • TEST POWER PIVOT.xlsx
    217.5 KB · Affichages: 15

Juan

XLDnaute Junior
A tous,

J'ai réussi à pas mal avancer mais il me manque un dernier step sur lequel je bloque :

Dans l'exemple en PJ, je n'arrive pas à ce que le total du client soit égale à 3, et non 2.25.

Merci beaucoup !
Jean
 

Pièces jointes

  • TEST POWER PIVOT.xlsx
    291.8 KB · Affichages: 11
E

Exl-Noob

Guest
On ne doit pas parler de la même chose. Je faisais référence au total du client qui est de 2.25 au lieu de 3 selon tes déclarations, sauf que je vois qu'il est de 4 dans la colonne.
Car il y a bien 4 lignes (4-7-8-12 dans le TCD) pour lesquelles le nombre de produits vendus dépasse 15 unités, non ?
 

Juan

XLDnaute Junior
On ne doit pas parler de la même chose. Je faisais référence au total du client qui est de 2.25 au lieu de 3 selon tes déclarations, sauf que je vois qu'il est de 4 dans la colonne.
Car il y a bien 4 lignes (4-7-8-12 dans le TCD) pour lesquelles le nombre de produits vendus dépasse 15 unités, non ?
On parlait bien de la même chose. En effet, il y a bien 4 lignes mais le total du client doit être égale à 3 car la colonne S ou V ne compter que pour 1.

Ex : le client fait 10 pcs de V + 10 pcs de S = 20 pcs

ligne par ligne, il n'atteint pas les 16 pcs mais la somme est supérieur à 16, donc on doit le considérer comme 1. Ce qui fait que le total du client doit être de 3 et non de 4
 

job75

XLDnaute Barbatruc
Bonsoir Juan, djidji59430, danielco, Exi-Noob,

Voyez le fichier .xlsm joint et cette macro dans le code de la feuille DATA :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim d As Object, col1%, col2%, tablo, resu(), i&, x$, n&
Set d = CreateObject("Scripting.Dictionary")
With [A3].PivotTable.TableRange1
    col1 = Application.Match("Brand*", .Rows(1), 0)
    col2 = Application.Match("Net Qty", .Rows(1), 0)
    tablo = .Value
    ReDim resu(1 To UBound(tablo), 1 To 1)
    resu(1, 1) = "V+S>=16"
    For i = 2 To UBound(tablo) - 2 '2 lignes de totaux
        x = tablo(i, col1)
        If Not d.exists(x) Then d(x) = i 'mémorise la ligne
        resu(d(x), 1) = resu(d(x), 1) + tablo(i, col2)
    Next i
    For i = 2 To UBound(tablo) - 2
        If resu(i, 1) >= 16 Then resu(i, 1) = 1: n = n + 1 Else resu(i, 1) = 0
    Next i
    resu(i, 1) = n: resu(i + 1, 1) = n
    '---restitution---
    Application.EnableEvents = False 'désactive les évènements
    With .Columns(.Columns.Count + 1)
        .Value = resu
        .Offset(1).Font.Bold = False
        .Offset(1).Font.ColorIndex = xlAutomatic
        .Cells(i).Resize(2).Font.Bold = True 'gras
        .Cells(i).Resize(2).Font.ColorIndex = 3 'rouge
        .Cells(i + 2).Resize(Rows.Count - .Row - i).Delete xlUp 'RAZ en dessous
    End With
    Application.EnableEvents = True 'réactive les évènements
End With
End Sub
Elle se déclenche automatiquement quand on actualise tout ou quand on valide/modifie des données.

Ou quand on filtre le TCD.

A+
 

Pièces jointes

  • TEST POWER PIVOT (1).xlsm
    310.3 KB · Affichages: 7
Dernière édition:

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed