Présence d'une chaîne et calculs

Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   -
Rebonjour,

Dans le même thème que ma question précédente...
J'ai un tableau composé en colonne A de textes et en colonne B de nombres :

chaine valeur
chaine1 1
gnagnagnaid1 2
chaine2 4
gnignigniid2 8
chaine3 16
gnagnaid1 32

En C, j'ai des identifiants :

Identifiants
id1
id2
id3

Je cherche une formule qui me donne la somme des valeurs figurant à droite d'une chaîne où apparaît un identifiant.
Si je ne dis pas trop de sottise, dans notre cas, ça devrait donner 42 (Douglas Adams rules).

Merci,

D.

11 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    l'idéal serait que tu crées un exemple de fichier anonymisé et que tu le joignes à la discussion
    pour joindre ton fichier
    1) Tu vas dans https://www.cjoint.com/
    2) Tu cliques sur [Parcourir] pour sélectionner ton fichier (15 Mo maxi)
    3) Tu défiles vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
    4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; tu fais un clic-droit dessus et tu choisis "Copier le lien"
    5) Tu reviens dans ta discussion sur CCM, et dans ton message tu fais "Coller".
    =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

    dans le même style tu as https://mon-partage.fr/
    0
  2. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Une possibilité
    En D1 mettre =SOMME.SI(A:A;"*" & C1 &"*";B:B) puis étirer vers le pas
    Ensuite la somme de la colonne C te donnera le résultat attendu

    Cdlmt
    Via

    0
    1. Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci de ton retour.
      En revanche, je souhaite une formule dans une seule cellule si c'est possible.

      Cordialement,

      D.
      0
  3. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Pas possible sauf avec une fonction personnalisée en VBA
    Tu connais le VBA ?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Pas trop, non.
    Même les formules matricielles ne s'appliquent pas ?

    D.
    0
  6. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Peut être mais je ne vois quelle matricielle bâtir là

    0
  7. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    En ce qui concerne la fonction personnalisée
    Onglet Developpeur - VisualBasic
    Insertion puis Module
    Copier coller la macro suivante dans la page blanche et fermer l'éditeurVBA
    Function identif(plage1 As Range, plage2 As Range)
    For Each cell In plage2
    For Each cell2 In plage1
    On Error Resume Next
    If Application.WorksheetFunction.Search(cell2, cell) > 0 Then Total = Total + Range("B" & cell2.Row)
    Next
    Next
    identif = Total
    End Function

    S'utilise comme une fonction selon la syntaxe =identif(plage des identifiants;plage des chaînes)
    ex : =identif(C2:C4;A2:A7)

    Cdlmnt
    Via
    0
    1. Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci beaucoup, je vais tester dès que possible.

      D.
      0
  8. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Pour ma part je ne comprends pas comment tu devrais avoir 42
    et à quoi correspond (Douglas Adams rules)
    0
    1. Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
       
      Donc.
      On retrouve deux des identifiants recherchés en A2, A5 et A7.
      B2 = 2, B5 = 8 et B7 =32, la somme vaut 42.
      Et dans le Guide du Voyageur Galactique, du regretté Douglas Adams, on apprend avec sidération que la réponse à la question fondamentale de la vie, de l'univers et du reste est 42.

      Aloa,

      D.
      0
  9. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,
    je m'excuse mais je ne comprends pas "On retrouve deux des identifiants recherchés en A2, A5 et A7"
    suit le fil de Via que je salue voir s'il est sur la voie

    0
  10. Detartrax Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
     
    Il est plus que sur la voie, sa fonction que je vient de tester donne les 42 attendus.
    Pour préciser : je cherche dans la colonne A les occurrences de id1, id2 et id3.
    Id1 apparaît en A2 (gnagnagnaid1) et en A7 (gnagnaid1), id2 apparaît en A5 (gnignigniid2).

    Donc Via55, merci beaucoup !
    Puis-je en revanche attendre un peu avant de déclarer la question résolue ?
    Des fois qu'on puisse trouver une formule...
    0
  11. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Ah oui la c'est plus clair et il faut bien passer par du VBA ou ajouter une colonne pour passer par une formule
    je suis la discussion voir si on se lance dans cette voie

    mais sur le fichier que tu as mis en ligne en A2 chaine1 et non gnagnagnaid1 qui est en A3 etc ... enfin le principal est que tu sois sur la voie de la solution

    0