EXCEL : utilisation de la fonction SOMME.SI

Résolu
denisw95 Messages postés 53 Statut Membre -  
Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'utilise la fonction SOMME.SI avec les paramètre suivant :

=SOMME.SI(Activités!$B$1:$B$15;$M$72;CONCATENER("Activités!L";K73+1;"C1";":L";K73+1;"C15"))

Mon problème est que, concernant la matrice identifier par la fonction CONCATENER, je récupère l'adresse de la matrice et non pas le contenu de la matrice.

Auriez-vous une solution à mon problème ?

Merci d'avance pour vos réponses

Cdlt

6 réponses

  1. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,

    il faudrait savoir ce que tu veux récupérer comme information dans ta fonction CONCATENER (qui me semble écrite bizarrement).

    pépé
    0
  2. denisw95 Messages postés 53 Statut Membre
     
    Je fais des statistiques sur 6 mois glissants. Pour trouver les bonnes données à traiter, je :
    - recherche la colonne à prendre en compte via la fonction EQUIV
    - le résultat de la fonction EQUIV me permet d'identifier l'ensemble des cellules à sommer en fonction du critère de sélection contenu dans la cellule M72

    La fonction SOMME.SI telle qu'écrite ci-dessus n'est pas accepté par EXCEL. Si je mets la fonction CONCATENER dans une cellule distincte (XY) et que j'applique la fonction SOMME.SI(Activités!$B$1:$B$15;$M$72;XY), je récupère 0 au lieu de la valeur sommée.
    0
  3. pépé35530 Messages postés 2951 Date d'inscription   Statut Membre Dernière intervention   1 390
     
    Bonjour,
    il me semble que la fonction Concatener ne fonctionne que pour des chaînes de caractères.
    La fonction Somme.si attend un plage de valeurs numériques.

    A+
    pépé
    0
    1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      Bonjour pépé.

      Non : Justement, le gros avantage de CONCATENER est d'accepter d'accoler des textes, des valeurs numériques, le contenu de cellules nommées, le contenu de cellules.
      Le résultat, lui, est effectivement un texte.

      Salutations.
      0
  4. denisw95 Messages postés 53 Statut Membre
     
    N'existe t-il pas une fonction du type VALEUR (CONCATENER("Activités!L";K73+1;"C1";":L";K73+1;"C15")) qui me permettrait de récupérer le contenu de la matrice et non pas l'adresse de la matrice ?
    0
    1. Raymond PENTIER Messages postés 58226 Date d'inscription   Statut Contributeur Dernière intervention   17 490
       
      Essaie de commencer ta formule par INDIRECT(
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    Bonjour tous

    il semble que votre formule mélange les types de référence de colonne ,
    en effet le libellé de votre formule avec un K73=0 donne:
    Activités!L1C1:L1C15

    Je n'ai pas testé ce mélange des genres sur excel, mais je pense que c'est une partie du problème.
    Par par ailleurs, Raymond à raison, le CONCATENER donne du texte mais pas une adresse.

    Il faut traduire avec la fonction INDIRECT
    essayez celle ci:
    =SOMME.SI($B$1:$B$15;$M$72;INDIRECT("Activités!"&ADRESSE(1;K73+1)&":"&ADRESSE(15;K73+1)))

    qui fera référence avec le code INDIRECT et K73=0 au champ:

    Activités!$A$1:$A$15
    " " " " " " $B$1:$B$15 avec K73=1
    Etc...

    Je pense que c'est ce que vous cherchez?

    bonne chance

    crdlmnt

    Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
    0
  7. denisw95
     
    Bonjour,

    Merci pour ces retours

    =SOMME.SI($B$1:$B$15;$M$72;INDIRECT("Activités!"&ADRESSE(1;K73+1)&":"&ADRESSE(15;K73+1)))

    répond exactement à mes attentes

    J'avais également implémenté la formule suivante, mais plus complexe et contraignante en maintenance :

    =SOMME.SI(Activités!$B$1:$B$15;M$72;CHOISIR(DROITE($L73;2)-DROITE($C$1;2)+1;Sem17;Sem18;Sem19;Sem20;Sem21;Sem22;Sem23;Sem24;Sem25;Sem26))

    où DROITE($L73;2) donne la semaine à traiter

    DROITE($C$1;2) donne le début de l'historique

    Semxx donne les plages concernées pour effectuer la somme

    Cdlt
    0