Excel: Somme de valeurs identique entre elles

Résolu
takitaka Messages postés 14 Statut Membre -  
fred2los Messages postés 1 Statut Membre -
Bonjour à tous,

Voila j'ai un tableau de 70 colonnes par 50 lignes. Chaque colonne représente une personne. Et chacune de ces personnes se voient attribuées plusieurs lettres. Mais parfois aucune (que je représente ici par un "..."!
Donc admettons l'exemple :

colonne (A) Jean-Louis a en A1 la valeur R, en A2 la valeur K en A3="...", A4=Q, A5="...", A6=Q
Fabrice (colonne B) a quant à lui: B1=R, B2=C, B3=R, B4="...", B5=K, B6=R, B7="..."
.
.
.
Colonne CA, Stephane: CA1=R, CA2=T, CA3="...", CA4="...", CA5="...", CA6=T, CA7=P

Je voudrais calculer la somme des valeurs identiques au sein de chaque colonne. Par exemple pour ma colonne "CA" (représentant Stephane), je voudrais voir le résultat "2" car il y a 2 fois la lettre T. POur Fabrice (colonne B), je voudrais voir le résultat "3" car j'ai 3 fois la lettre R.
Sachant qu'à chaque fois je ne connais pas la lettre d'avance.
Je recherche donc des valeurs identiques entre elles, et non pas identiques à une valeur donnée.
Si possible une formule (pas un script), même matricielle fera très bien l'affaire.

Merci de votre aide.
TK
Configuration: Windows XP
Firefox 2.0.0.11

11 réponses

  1. takitaka Messages postés 14 Statut Membre 1
     
    Je crois que le plus simple serait de te mettre mon fichier en ligne...
    https://www.cjoint.com/?cmm5IGyH4m

    En rouge, sont les éléments en double que je veux compter en bas de page, j'ai mis le nombre pour l'exemple...
    Merci de votre aide.
    1
  2. nannet Messages postés 5 Statut Membre 1
     
    bonjour,

    J'ai lu ton message.

    Il faut utiliser la formule : NB.SI(Plage;"T") ou la lettre que tu veux

    Si tu ne connais pas d'avance la lettre il te suffira de la modifier dans la formule c'est facile ou tu crées une formale pour chaque lettre de el'aphabet que tu utilses

    Bon courage
    0
  3. takitaka Messages postés 14 Statut Membre 1
     
    oui, tout à fait, je pourrais faire cela, mais j'ai du mal m'exprimer, en fait je veux compter les doublons !
    Et là je ne veux pas trop taper 26 fois la même formule dans une même cellule..
    j'ai trouvé un truc dans le même esprit, à savoir me comptabiliser le nombre de fois ou j'aurais une lettre différente dans une ligne. Car je suis supposé avoir strictement la même lettre dans cette ligne, donc je veux compter combien va se présenter l'intrus.
    =SOMME(SI(I6:CI6<>"";1/NB.SI(I6:CI6;I6:CI6)))

    Dans ce cas, si j'ai 70 colonnes, j'ajoute cette formule tout à la fin. Admettons que j'ai 40 fois la lettre "S" et 3 fois la lettre "T", ma formule va m'afficher "3" ! ;-
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Pas sûr d'avoir bien compris ta problèmatique mais si c'est le nombre max de doublons de lettres comprises entre A et Z cette formule devrait faire l'affaire :
    =MAX(NB.SI($A$1:$A$5;CAR(LIGNE(65:90))))
    formule matricielle à valider par CTRL+Shift+Enter

    Si j'ai en vertical S S R R R elle me retourne bien 3
    C'est ça ?
    eric
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. takitaka Messages postés 14 Statut Membre 1
     
    Bonjour,
    Merci à vous 2, en fait, je veux juste que ça me compte le nombre de doublons (des caractères, dans mon cas ce sont simplement des lettres), mais je ne connais pas à l'avance le caractère à vérifier.
    Là je m'aperçois que mon énoncé était bigremùent compliqué alors que j'ai pu le résumer en qq mots....ahhhh, la langue française...LOL
    0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    et si tu essayais la formule que j'ai mis en 3 ? non ? pas envie ?
    eric
    0
    1. takitaka Messages postés 14 Statut Membre 1
       
      Donc, si ma plage de données va de la colonne I à CI, et de la ligne 2 à 32, ma formule devient :
      =MAX(NB.SI($I$2:$I$32;CAR(LIGNE(2:32)))) ?
      Et Je dois modifier la lettre "I" pour chaque colonne ?
      Parce que j'ai essayé, et ça me met 0 (zero) à chaque fois....hmmm...en modifiant ou non, bien sur.
      0
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    pas bcp de temps mais ne modifier que la plage A1:A5, et pas de lettre à saisir

    donc pour toi en B36:
    =MAX(NB.SI(B2:B32;CAR(LIGNE(65:90))))
    formule matricielle à valider par CTRL+Shift+Enter
    à recopier vers la droite

    eric
    0
  9. takitaka Messages postés 14 Statut Membre 1
     
    Dis-moi Eric, c'est quoi ces 2 nombres 65 & 90 ?
    Cela doit-il représenter mes lignes (celles du début et celle de fin) ?
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      non non, aucun rapport avec tes lignes...il ne faut pas changer cette partie.
      J'utilise ligne() mais sans aucun rapport les lignes, c'est juste pour générer les caractères de A à Z (codes ASCII de 65 à 90)

      eric
      0
  10. takitaka Messages postés 14 Statut Membre 1
     
    OK nickel, ça me convient comme ça !
    En fait, ça me sert à vérifier les lettres de lecteur réseau mappés sur mon domaine AD pour chaque utilisateur....Ca te dit peut-etre rien mais voila.
    Merci beaucoup eriiic. :)
    0
  11. takitaka Messages postés 14 Statut Membre 1
     
    J'ai cette macro là aussi, qui me colorie les doublons par colonne, pratique car très visuel, rapide et adapté à mon besoin.
    [code]
    Attribute VB_Name = "Module3"
    Sub MarqueLesDoublons()
    Dim Plage As Range, i&, Cell As Range, Rng As Range

    On Error Resume Next
    Set Plage = Application.InputBox("Plage à examiner", Type:=8)
    If IsEmpty(Plage) Then Exit Sub

    Application.ScreenUpdating = False

    For Each Cell In Plage
    For i = 1 To Plage.Count
    Set Rng = Cell.Offset(i)
    If Rng <> "" And Rng = Cell Then
    Cell.Interior.ColorIndex = 43
    Rng.Interior.ColorIndex = 43
    Exit For
    End If
    Next i
    Next Cell

    End Sub
    [code]
    Mais ça peut etre long dépendamment de la plage à analyser. Moi avec mes 30lignes*60 colonnes ça a du me prendre 1 bonne minute.
    http://www.excelabo.net/excel/comparerreperer.php
    Merci à Frédéric Sigonneau pour ce script.
    Encore merci à vous.
    0
    1. fred2los Messages postés 1 Statut Membre
       
      slt takitaka,

      j'ai besoin de tes lumieres, à savoir, dans une colonne j'ai autant de lettres identiques que de chiffres identiques, je voudrais la formule pour pour avoir le pourcentage de chaque lettres et chaque chiffres pour chaque colonne.

      merci si tu peux me donner la réponse
      fred2los
      0
  12. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    pour colorer les doublons sur une colonne tu as également la mise en forme conditionnelle avec "la formule est" =EQUIV(A1;A:A;0)<>LIGNE()

    Peut-être plus rapide mais ça ne te colorie QUE les doublons, la 1ère valeur trouvée dans la colonne n'est pas colorée elle.

    Bonne journée
    eric
    0