Additionner des lignes automatiquement

0

Bonjour

Je viens de récupérer un fichier avec des données pour 1200 unités territoriales. Sauf que le format est comme suit.

Exemple :

Unité 1    10
Unité 1    12
Unité 1    14
Unité 1    22
Unité 2     5
Unité 2     8
Unité 3    12
etc

Je voulais savoir s'il était possible de faire une somme automatique des chiffres d'une même unité et d’automatiser cela pour mes 1200 unités territoriales de sorte à avoir une colonne qui ressemble à ça

Unité 1    58
Unité 2    35
Unité 3    etc

http://www.casimages.com/i/161227114904626484.png.html

D'avance, merci de votre aide.

Posté le 27 décembre 2016, 11:32
par fernandseb
Répondre
-1

Bonjour,

serait il possible que tu nous envoie un fichier exemple pour que l'on puisse mettre les formules au bon endroit.

tu peux utiliser www.cjoint.com et nous transmettre le lien.

cordialement,

Tom

Tom Posté le 27 décembre 2016, 12:00
par Tom
1

Bonjour fernandseb, toutes et tous,

Salut Tom,

Peut-être un début de solution si cela convient !

http://www.cjoint.com/c/FLBpmFOEcbu

Cordialement.

mdo100 Posté le 27 décembre 2016, 16:15
par mdo100
  • oui très bonne solution – Tom 27 décembre 2016, 17:02
2

Bonjour à tous,

Je me permets d'ajouter une solution qui construit la liste des unités existantes ainsi plus besoin d'encoder toutes les unités possibles.  J'ai calibré le tableau sur 1.220 lignes (+1 ligne de titre) ainsi il devrait être possible de copier/coller la liste originale contenant les 1.200 données en colonne A et B (j'ai ajouté une vingtaine de lignes par sécurité).

Bonne année 2017 à tous les trois et à bientôt sur le Forum

Chris

http://www.cjoint.com/c/FLEj7AJOTPN

Cliques sur le lien et suis les instructions pour récupérer le fichier.

Posté le 30 décembre 2016, 11:00
par chris1945
0

Salut chris1945,

Bien vu, encore un truc que je mets sous le coude, je parle du fait de nommer la même plage de cellules avec 2 noms différents, je ne savais même pas que cela soit possible.

Merci, pour les trucs et astuces que tu donnes généreusement sur ce forum, je suis sûr que 2017 sera encore plein de surprises.

Meilleurs vœux pour 2017, à toi et tes proches, ainsi qu'à tout le forum.

Cordialement.

mdo100 Posté le 31 décembre 2016, 12:00
par mdo100
0

Bonjour Tout le monde,

Déjà bonne Année à vous.

Chris pour ma culture personnelle, peux tu m'expliquer la construction de ta formule  avec =Index et que signifie ch ?

Cordialement,

Tom

Tom Posté le 2 janvier 2017, 11:16
par Tom
-1

Bonsoir Tom,

D'abord le plus facile : ch est simplement le nom donné à la plage A2:A1221.  Pourquoi ch :ce nom provient de l'exemple que j'ai dans mon petit mémo que je te joins et qui explique comment extraire les doublons d'une liste à savoir :

Mémo :

Cas1:La liste initiale doit commencer en A2, C1 doit être libre et si on déplace le champ Champ1, il faut déplacer la colonne A entière :

En C2:
=INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))
Valider avec Maj+ctrl+entrée

Supprimer les 0 avec Outils/Options/Affichage/Valeur 0 OU en testant la formule :

Si(INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))=0;"": INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0; LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))


Ou en complétant la formule :par &"" (meilleure solution)

=(INDEX($A:$A;MIN(SI(ch<>"";SI(NB.SI(C$1:C1;ch)=0;LIGNE(ch);LIGNES(ch)+LIGNE(ch)))))&"")


Si A1 est vide(pas de titre) possibilité de simplifier la formule :


=INDEX($A:$A;MIN(SI(Ch<>"";SI(NB.SI(C$1:C1;Ch)=0;LIGNE(Ch)))))
Valider avec Maj+ctrl+entrée

(=INDEX(A:A;FAUX) en matriciel donne le contenu de A1)

Voir exemple : http://www.cjoint.com/c/GAcsFEraJDN

Comme tu le constateras, la fonction INDEX va chercher dans la plage A:A la ligne contenant l'information de la plus petite occurrence (MIN) d'une référence.  Il s'agit d'une formule matricielle (à introduire par CTRL/MAJ/ENTREE) donc on teste d'abord si la ligne est <> blanc dans la plage puis si la référence est déjà apparue dans la colonne C jusqu'à la ligne -1 en cours de traitement (si <> 0 cela veut dire que l'on a affaire à un doublon et donc à éliminer). Le traitement se fait en mémoire et si tu veux voir comment le calcul se fait, je te conseille de te positionner sur une des cellule de la colonne C où se trouve la formule et puis de cliquer sous l'onglet Formules sur "Evaluer la formule" (à droite) et tu suivras pas à pas le déroulement du calcul.  Si tu ne connaissait pas je te le conseille quand tu as des problèmes : cela permet de comprendre où se situe l'erreur dans la formule).  Conseils : l'affichage dans cet utilitaire est petit et quand on a affaire à une formule matricielle, il est difficile de suivre le déroulement car beaucoup de données donc il vaut mieux limiter la plage et au lieu de mettre A:A plutôt mettre A2: A10 par exemple (ne pas oublier de changer la plage du nom ch)

Pour finir, il y a l'astuce d'ajouter &"" pour éviter de mettre un zéro quand on rencontre les cellules vides en colonne A..  Cela permet de contrecarrer Excel qui met automatiquement un 0 quand il doit afficher le résultat d'une cellule vide.  Comme tu le verras dans le mémo, il y a d'autre moyen (paramétrer Excel pour enlever les 0 non significatifs que je n'aime pas car on peut avoir besoin de ce 0 dans d'autres endroits du tableau ou bien tester le résultat et mettre "" si 0 mais cela fait une formule kilométrique et mange du temps d'exécution) mais je préfère celle-ci.

J'espère avoir été clair et sinon pose les questions qui te chiffonnent (expliquer le fonctionnement d'une formule matricielle est toujours délicats).

A bientôt sur le Forum

Chris


Posté le 2 janvier 2017, 19:57
-1

Bonjour Chris,

Super, je connaissais pas le bouton évaluation de la formule. c'est très intéressant pour voir ses erreurs et le pourquoi d'un résultat attendu faux.

En tous cas la formule est astucieuse

Merci pour les explications.

A plus tard,

Cordialement,

Tom

Tom Posté le 3 janvier 2017, 12:24
par Tom

Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :