Posez votre question Signaler

Excel repérer mêmes valeurs dans colonne

- Dernière réponse le 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
Lire la suite 
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Réponse
+0
moins plus
Merci beaucoup jvais essayer de l'adapter à mon tableau.
Ajouter un commentaire
Réponse
+0
moins plus
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"?
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Quand tu mets B10, H10 etc, cela veut-il dire que ma moyenne prend en compte que 10 lignes?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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??
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Réponse
+0
moins plus
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)
Ajouter un commentaire
Réponse
+0
moins plus
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?
Ajouter un commentaire
Ce document intitulé «  excel repérer mêmes valeurs dans colonne  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.