Excel repérer mêmes valeurs dans colonne

Fermé
- 22 juil. 2008 à 12:23
 aë - 28 juil. 2008 à 13:18
Bonjour,

J'ai un tableau avec des relevés sur un mois dont une trentaine de relevés par jours.
Je cherche à faire la somme des relevés de chaque jour de façon à avoir un tableau avec des valeurs journalières et pas horaires (celles dont je dispose actuellement).

la formule actuelle, qui ne fonctionne pas (et c'est normal), est:

=SI(C=C;B=B);SI(SOMME'valeur journalier'!H:H;"X")

colonne C=jours
colonne B= mois

Je voudrais faire en sorte que lorsque que le mois et le jour (voir l'année) sont identiques, la formule selectionne les données situés en colonne H.
Ensuite il faudrait qu'elle calcule la somme des données pour que j'ai un total par jour.

Merci pour votre aide
A voir également:

14 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2008 à 08:56
bonjour

Sans connaître mieux tes données, je te proposes ceci à adapter à ton cas :
=SOMMEPROD((B$1:B10=B1)*(C$1:C10=C1)*(H$1:H10))

formule à mettre sur la colonne où tu veux les totaux journaliers.
0
Bonjour gbinforme,

Merci de me donner cette piste. Malheureusement je crois que ça ne fonctionnera pas.
Depuis hier j'ai un peu avancé et certaines choses ont changé.

Du coup ce n'est plus la somme qu'il me faut mais la moyenne par jour. Si je suis pas trop bête, je pense que ça donnerai ça:

=MOYENNEPROD((B$1:B10=B1)*(C$1:C10=C1)*(H$1:H10)) ?

Et si je veux que cette formule prenne en compte toutes les lignes de la colonne, ça donnerai ça:

=MOYENNEPROD((B$1:B$65536=B1)*(C$1:C1$65536=C1)*(H$1:H$65536)) ?

A tout cela j'ajoute une nouvelle difficulté; je vais chercher les données sur une autre feuille ("valeur journalière").

du coup ma formule qui ne fonctionne toujours pas est:

=MOYENNEPROD(('valeur journalière'!)(B$1:B$65536=B1)*(C$1:C1$65536=C1)*(H$1:H$65536))

Où est l'erreur?


Si tu as besoin de plus de précision dis-le moi et je te renseigne au plus vite.

Merci de m'aider
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
23 juil. 2008 à 18:03
bonjour

Pour utiliser une autre feuille la syntaxe est celle-ci
=SOMMEPROD(('valeur journalière'!B$1:B10='valeur journalière'!B1)*
('valeur journalière'!C$1:C10='valeur journalière'!C1)*('valeur journalière'!H$1:H10))

Par contre la moyenne n'existe pas et donc il faut la coder
=SOMMEPROD(('valeur journalière'!B$1:B10='valeur journalière'!B1)*
('valeur journalière'!C$1:C10='valeur journalière'!C1)*('valeur journalière'!H$1:H10))
/SOMMEPROD(('valeur journalière'!B$1:B10='valeur journalière'!B1)*
('valeur journalière'!C$1:C10='valeur journalière'!C1)*1)
0
Merci beaucoup jvais essayer de l'adapter à mon tableau.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
J'ai un ptit problème:

Je ne trouve pas la même moyenne avec ta formule (=10,50) et avec la formule toute simple MOYENNE(x:x) (=10,60).
...?



Petite question,
dans ta formule:

=SOMMEPROD(('valeur journalière'!B$2:B10='valeur journalière'!B2)*
('valeur journalière'!C$2:C10='valeur journalière'!C2)*('valeur journalière'!H$2:H10))
/SOMMEPROD(('valeur journalière'!B$2:B10='valeur journalière'!B2)*
('valeur journalière'!C$2:C10='valeur journalière'!C2)*1)

Que représente le dernier "1"?
0
Re,

Quand tu mets B10, H10 etc, cela veut-il dire que ma moyenne prend en compte que 10 lignes?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
24 juil. 2008 à 10:39
bonjour

Je ne trouve pas la même moyenne avec ta formule (=10,50) et avec la formule toute simple MOYENNE(x:x) (=10,60)

La formule de la moyenne est pourtant la même mais ta formule sur la colonne doit trouver d'autres valeurs.

Que représente le dernier "1"?

Il compte le nombre de cellules concernées par l'égalité sur colonne B et C.

Quand tu mets B10, H10 etc, cela veut-il dire que ma moyenne prend en compte que 10 lignes?

Absolument, si tu as 10000 lignes tu remplaces par 10000.
Il faut que dans ta feuille résultats tu ais le même nombre de lignes ou bien que tu te crées un tableau avec les valeurs B et C à comptabiliser puis tu changes ainsi ta formule :
=SOMMEPROD(('valeur journalière'!B$1:B10=B1)*('valeur journalière'!C$1:C10=C1)*('valeur journalière'!H$1:H10))/SOMMEPROD(('valeur journalière'!B$1:B10=B1)*('valeur journalière'!C$1:C10=C1)*1)


Cependant, pour faire tes cumuls, cela serait plus simple de créer un tableau croisé dynamique.
0
Justement ce tableau est la source de mon tableau croisé dynamique.
Le nombre de lignes va varier au fil du temps.
Du coup j'ai essayé de remplacer le 10 par le maximum (65536), mais là j'obtiens le joli message : #N/A
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
24 juil. 2008 à 12:23
bonjour


Pourquoi créer un tableau pour être la source de ton TCD ?

Ton tableau croisé est tout à fait capable de te fournir la somme, la moyenne à partir des données brutes.

Pour que ton tableau suive l'évolution de ta base, il te suffit de le créer en ayant nommé une plage comme ceci par exemple dans "insertion" / "noms" / "définir" :
tablo
	=DECALER('valeur journalière'!$B$1;;;NBVAL('valeur journalière'!$B:$B);7)

Ainsi quand tu actualises ton TCD les modification sont prise en compte en appliquant "tablo" à la plage du TCD.
0
Oui je connais les calculs que le TCD peut faire. Cependant je lui demanderai par la suite de me faire la moyenne de mes moyennes journalières.
0
Bonjour gbinforme,

Je galère..!

J'ai adapté ta formule avec mes critères et je fais ça:

=SOMMEPROD(('valeur journalière'!B$3:B$65536='valeur journalière'!B3)*
('valeur journalière'!C$3:C$65536='valeur journalière'!C3)*('valeur journalière'!H$3:H$65536))
/SOMMEPROD(('valeur journalière'!B$3:B$65536='valeur journalière'!B3)*
('valeur journalière'!C$3:C$65536='valeur journalière'!C3)*)

Et là, dans la cellule j'obtiens #VALEUR!

Qu'est-ce que j'ai mal fais??
0
Formule actuelle:

=SOMMEPROD(('valeur journalière'!B$3:B$65536='valeur journalière'!B3)*
('valeur journalière'!C$3:C$65536='valeur journalière'!C3)*('valeur journalière'!H$3:H$65536))
/SOMMEPROD(('valeur journalière'!B$3:B$65536='valeur journalière'!B3)*
('valeur journalière'!C$3:C$65536='valeur journalière'!C3)*96)
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
25 juil. 2008 à 10:02
bonjour

Ta formule est très lourde et longue en temps de calcul.

Pour obtenir un résultat plus efficace tu devrais nommer tes zones par exemple
jours	=DECALER('valeur journalière'!$B$3;;;NBVAL('valeur journalière'!$B:$B)-2;1)

en remplaçant 2 par le nombre de cellules documentées dans le titre

Ensuite la formule est plus rapide et plus facile
=SOMMEPROD((jours='valeur journalière'!B3)*(mois='valeur journalière'!C3)*(nombre)) 
/SOMMEPROD((jours='valeur journalière'!B3)*(mois='valeur journalière'!C3)*96)
0
Bonjour bonjour

Pour le moment j'ai réussi à m'en sortir avec une longue formule (année/mois/jour/mode/gaz):

=SOMME(SI(((('valeurs semi-horaire'!B3:B20000)='Moyenne relevés'!B4)*(('valeurs semi-horaire'!C3:C20000)='Moyenne relevés'!C4)*(('valeurs semi-horaire'!E3:E20000)='Moyenne relevés'!E4)*('valeurs semi-horaire'!H3:H20000='Moyenne relevés'!D4));('valeurs semi-horaire'!G3:G20000);0))/(SOMME(SI(((('valeurs semi-horaire'!B3:B20000)='Moyenne relevés'!B4)*(('valeurs semi-horaire'!C3:C20000)='Moyenne relevés'!C4)*(('valeurs semi-horaire'!E3:E20000)='Moyenne relevés'!E4)*('valeurs semi-horaire'!H3:H20000='Moyenne relevés'!D4));1;0)))

Mais comme prévu ça alourdi mon fichier et Excel met un temps fou à démarrer...

Du coup je vais réessayer en nommant mes zones..
Par contre je ne connais pas le nombre de lignes car il sera modifié sans cesse. C'est pour cela que pour le moment, dans ma formule j'ai mit "20 000" arbitrairement..

à la place du 2 je met 20 000, ou il existe une autre appelation plus vague pour prendre en compte toute les lignes de mes colonnes?
0