Quel jours j'ai dépensé le plus

  • Initiateur de la discussion opera_8
  • Date de début
O

opera_8

Guest
Bonjour à tous,

C'est toujours un plaisir de vous lire et... on apprends énormément. Merci à toutes et à tous. Me voici avec mon petit problème:

Je cherche (et ne trouves pas) une formule que dans une cellule m'affiche la date du jour où j'ai dépensé le plus, et dans la deuxième le montant total correspondant; ex.:

date montant
01.04.2003 100
02.04.2003 200
02.04.2003 50
02.04.2003 80
03.04.2003 400

Résultat escompté : 02.04.2003 330

PS sans passer par un TCD, si c'est possible.

Un grand merci d'ores et déjà.
 
C

Celeda

Guest
Re: C'est quoi un TCD ?

Bonsoir,

C'est bö un TCD, on fait plein de choses avec, on peut le torturer de toutes les maniéres pour obtenir ce que l'on désire mettre en évidence.
Seuls le probleme des formules interieures avec les sous-totaux causent quelques soucis.

Voici un petit fichier pour obtenir ce que tu souhaites, enfin une solution parmi tant d'autres :

de la grande valeur avec une formule matricielle et un index et des plages ..........mais pas de sable blanc avec une vue imprenable sur le maître nageur........

J'espére que cela t'aidera.

Celeda
 

Pièces jointes

  • Conso_Depenses.zip
    4.8 KB · Affichages: 40
M

marabbeh

Guest
Re: C'est quoi un TCD ?

N'empêche le gars qui n'aime pas les TCD n'a toujours pas la soluce.

Il y a 2 solutions.

J'en vois une sans VBA : tu crées 2 autres colonnes, la 1ère contient dans chaque cellule le montant de la journée correspondante s'il est supérieur à la cellule précédente, sinon le montant de la cellule précédente. La 2ème contient les dates. Tu fais un recherchev() sur ces 2 colonnes avec le maximum de la colonne des montants, et tu obtiens la date.

Avec VBA, tu crées un bouton qui déclenche une recherche dans la colonne des montants

Supposons que la 1ère date est en A5 et le 1er montant en B5
Sub Montant_max()
Dim Max As Single
Dim Ligne, N As Integer
N = 0
Max = 0
Do While Range("B5"). Offset(N, 0).Value <> ""
If Max < Range("B5"). Offset(N, 0).Value Then
Max = Range("B5"). Offset(N, 0).Value
Ligne = N
End If
N = N + 1
Loop
MsBox("Le jour où j'ai dépensé le plus est " & Range("A5").Offset(Ligne, 0).Value & " (" & Range("B5").Offset(Ligne, 0).Value & " €)")
End Sub

Il y a peut-être qqch à faire si la date s'affiche au format nombre.
 
M

Monique

Guest
Bonjour,

Est-ce que tu veux le jour où le nombre de dépenses est le plus élevé
ou le jour où le total journalier de dépenses est le plus élevé ?
Dans le fichier joint, tu as les deux, plus d'autres.
 

Pièces jointes

  • Opera.zip
    2.5 KB · Affichages: 36
  • Opera.zip
    2.5 KB · Affichages: 36
  • Opera.zip
    2.5 KB · Affichages: 45
O

opera_8

Guest
Bonjour,

Merci pour le fichier joint Monique. Je te lis souvent, je te trouve très active, efficace et ... très compétente.

C'est bien "le jour où le total journalier de dépenses est le plus élevé"

Bonne journée
 
A

andré

Guest
Re:

Salut Monique,

Ce qui est compliqué n'est pas nécessairement difficile, et ce qui est difficile n'est pas nécessairement compliqué.

Superbe démonstration de ce vieil adage !

Ândré
 
M

Monique

Guest
Re:

Bonsoir,

Le plus difficile, en fait, a été de lutter contre le sommeil.
En cherchant une solution, c'est une autre qui est arrivée, bêtement, par hasard. Il suffisait de continuer.
 
S

Sandrine

Guest
Bonjour Monique,
J'ai lu avec attention ta réponse car j'ai le même type de pb,
en plus je voudrais afficher une récap avec par date le montant dépensé,
mon souci c'est que j'ai des dates avec 0 en dépense et celle-ci je ne veux pas les voir apparaître dans mon tableau récap

j'ai utilisé un tableau croisé dynamique mais il affiche les dates à 0 et celles-ci je n'en veux pas !

Comment faire ???
 
M

Monique

Guest
Bonjour,

Dates de A1 à A100
Sommes de B1 à B100
Dates récapitulatives en colonne E par exemple
Formules au choix :
=SOMME.SI($A$2:$A$100;$E2;$B$2:$B$100)
=SOMMEPROD(($A$2:$A$100=$E2)*1;($B$2:$B$100))
Si tu veux distinguer les - des +
=SOMMEPROD(($A$2:$A$100=$E2)*($B$2:$B$100<0)*1;($B$2:$B$100))
=SOMMEPROD(($A$2:$A$100=$E2)*($B$2:$B$100>0)*1;($B$2:$B$100))
Récap. mensuelle : (dates en colonne E)
=SOMMEPROD((MOIS($A$2:$A$100)=MOIS($E2))*($B$2:$B$100>0)*1;($B$2:$B$100))
=SOMMEPROD((MOIS($A$2:$A$103)=MOIS($E2))*($B$2:$B$103<0)*1;($B$2:$B$103))

Et si tu ne veux pas que soit affichée la valeur 0, tu as le choix.
Ou bien affichage
Barre de menus - Outils - Options - Onglet "Affichage", tu décoches "Valeurs zéro"
Ou bien format conditionnel
Barre de menus - Format - Mise en forme conditionnelle - "La valeur de la cellule est" - "Egale à " -
et tu tapes = 0 puis tu cliques sur "Format", onglet "Police" et tu choisis une couleur de police identique à celle du fond.
Ou bien formules conditionnelles
=SI(SOMME.SI($A$2:$A$100;$E2;$B$2:$B$100)=0;"";SOMME.SI($A$2:$A$100;$E2;$B$2:$B$100))
=si( (formule) = 0 ; " " ; (formule) )
 
S

Sandrine

Guest
merci pour tes formules,

comment fait-on si l'on veut créer automatiquement ce tableau càd sans avoir saisi auparavant les dates,

pour la valeur 0 en fait ce n'est pas le 0 qui me gêne c'est que je ne veux pas avoir dans mon tableau récap la date concerné
si j'ai
2001 200
2004 10
2002 100
2003 0
2004 50

je veux au final
2001 200
2002 100
2004 60
 

Discussions similaires

Statistiques des forums

Discussions
312 329
Messages
2 087 333
Membres
103 519
dernier inscrit
Thomas_grc11