Cherche formule excel

Muratime

XLDnaute Junior
Bonjour, forum :)

Je cherche une formule a adapter dans mon fichier ci joint.
J'aimerais calculer la différence de prix entre deux noms (les noms ça peu être des objets ou des animaux ou autres) a condition qu'il est une somme de la date la plus récente à la plus ancienne.

Par exemple le nom1 en date du 15-8-17 j'aimerais soustraire sa somme C12 - C2 = 4000 (E12)
Par contre le nom1 est aussi en B7 donc je ne veux pas de soustraction C12-C7 car ce jour là il n'était pas a vendre
La colonne bleue c'est le résultat a obtenir avec la formule
Et que le fichier aura beaucoup plus de ligne et de noms que cet exemple

Voilà merci de vôtre aide
 

Pièces jointes

  • essai.xls
    16.5 KB · Affichages: 32
Dernière édition:

Muratime

XLDnaute Junior
Date serait colonne B Nom colonne C PRIX colonne D et ETAT colonneE
........Date..............Nom.......PRIX........ETAT
1--01/08/2017....NOM1....10000....EN VENTE
2--01/08/2017....NOM2....12000....EN VENTE
3--01/08/2017....NOM3....8000.....EN VENTE
4--01/08/2017....NOM4....5000.....EN VENTE
5--01/08/2017....NOM5....10000....EN VENTE
6--03/08/2017....NOM1
7--03/08/2017....NOM7
8--03/08/2017....NOM8
9--03/08/2017....NOM9
10--03/08/2017..NOM1
11--15/08/2017...NOM1....10000....EN VENTE
12--15/08/2017...NOM2....20000....EN VENTE
13--15/08/2017...NOM3....40000....EN VENTE
14--15/08/2017...NOM4....8000.....EN VENTE
15--15/08/2017...NOM5....5000.....EN VENTE
16--20/08/2017..NOM1....10000....EN VENTE
17--20/08/2017..NOM2....12000....EN VENTE
18--20/08/2017..NOM3....8000.....EN VENTE
19--20/08/2017..NOM4....5000.....EN VENTE
20--20/08/2017.NOM5....10000....EN VENTE

ce que j'aimerais c'est soustraire le prix du nom1 du 20/08/2017 ligne 16 au nom1 ligne 15 du 15-08-17 pour avoir ce résultat en ligne 20
Ensuite soustraire le prix ligne 11 nom1 du 15/08/17 au dernier prix en ligne 1 du 1/08/17 et avoir le résultat en ligne 11 et ainsi de suite pour les autres noms

Dans la formule il manque quelque chose pour différencier chaque groupe de date, sinon elle soustrait tout un a un
 
Dernière édition:

Muratime

XLDnaute Junior
Si je veux écrire la formule en macro ça donnerais quoi ?

j'ai un début avec une autre formule mais je ne sais pas comment adapter ta formule

Code:
Sub Formules()
    Dim ws As Worksheet
    Dim Nblig As Long
    For Each ws In ThisWorkbook.Worksheets
        If ws.Name Like "Data" Then
            With ws
                .Select
                Nblig = .Cells(Rows.Count, "A").End(xlUp).Row
                If Nblig = 1 Then Exit Sub
                .Range("BI2:BI" & Nblig) = "=SUMPRODUCT((R2C31:R2000C31=RC31)*(R2C18:R2000C18=COLUMN(C[-60]))*R2C2:R2000C2)"
         
                    '.CurrentRegion.Copy
                    '.PasteSpecial Paste:=xlPasteValues
                    '.Select
                    'Application.CutCopyMode = False
                'End With
              
            End With
        End If
    Next ws
   
End Sub
 

st007

XLDnaute Barbatruc
Code:
Bonne nuit
      .FormulaArray =  "=SUMPRODUCT((R2C1:R17C1=MAX(IF((R2C2:R17C2=R[14]C5)*(R2C4:R17C4=""en vente""),R2C1:R17C1)))*(R2C2:R17C2=R[14]C5)*(R2C3:R17C3))-SUMPRODUCT((R2C1:R17C1=MIN(IF((R2C2:R17C2=R[14]C5)*(R2C4:R17C4=""en vente""),R2C1:R17C1)))*(R2C2:R17C2=R[14]C5)*(R2C3:R17C3))"
devrait t'éclairer
 
Dernière édition:

eriiic

XLDnaute Barbatruc
Bonjour,

On peut beaucoup simplifier en supposant que la 1ère fois où tu l'inscris c'était pour le mettre en vente, et que tu veuille la différence avec la date la plus ancienne comme demandé. En E2 :
Code:
=SI(OU(EQUIV(B2;$B$1:B2;0)=LIGNE();D2<>"EN VENTE");"";C2-INDEX(C:C;EQUIV(B2;B:B;0)))

A la limite on peut compléter si tu ne veux que la dernière différence pour chaque objet.
eric
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG