Formule Excel : SOMMEPROD et CELLULE

Résolu/Fermé
Francky - 24 mai 2012 à 15:05
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 24 mai 2012 à 19:02
Bonjour,

Je souhaite faire la somme d'une ligne, seulement si c'est des pourcentage, sinon je ne tiens pas compte du chiffre.
J'ai tenté la formule : =SOMMEPROD((CELLULE("format";G30:R30)="%0")*(G30:R30))

Mais elle ne marche pas. La fonction CELLULE balaye pas toutes les colonnes mais garde que la valeur de la première.

Merci

A voir également:

2 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 mai 2012 à 16:05
Bonjour,

avec une fonction personnalisée matricielle :
Function formatCel(r As Range) As Variant
    ' ne sélectionner qu'une ligne ou une colonne
    Dim c As Range, reponse() As Long, i As Long
    Application.Volatile
    ReDim reponse(r.Cells.Count - 1)
    For Each c In r
        reponse(i) = (Right(c.NumberFormat, 1) = "%") * -1
        i = i + 1
    Next c
    If r.Columns.Count = 1 Then
        ' matrice verticale
        formatCel = Application.Transpose(reponse)
    Else
        ' matrice horizontale
        formatCel = reponse
    End If
End Function

Syntaxe :
=formatCel(B2:B6)
Retour :
{0;1;1;0;0} (matrice verticale)
ou {1\0\1\1\0} (matrice horizontale)

Attention: un changement de format n'est pas détectable. Dans ce cas il faut avoir validé une cellule ou fait F9 pour ré-évaluer la fonction.

eric
1
Merci Eric pour cette réponse rapide.
La combinaison du SOMMEPROD et de ta fonction marche impec.

Utilisation : =SOMMEPROD((formatCel(G30:R30)=1)*(G30:R30))

Franck
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 mai 2012 à 17:13
je pense que tu peux te passer de =1 puisque justement je retourne 1,0 au lieu de booléen.
Je met en résolu pour toi
Bonne continuation
eric
0
Oui mais je fais aussi un traitement particulier pour les =0 ;-)
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
24 mai 2012 à 19:02
Ca ne change rien au fait que dans la formule que tu fournis c'est inutile :-)
0