Formule Excel : SOMMEPROD et CELLULE
Résolu
Francky
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
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
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
2 réponses
-
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 -
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