somme conditionnelle

  • Initiateur de la discussion clav
  • Date de début
C

clav

Guest
bonjour a tous,

j'ai une ligne qui contient 2 types de données: certaines en format pourcentage et d'autres en format standard. Dans une case de cette meme ligne je dois faire la somme de tous les nombres en format standard, et ca doit aussi fonctionner lorsque de nouvelles colonnes sont insérées.

J'ai bidouillé avec les sommes conditionnelles mais je suis toujours coincé...

Merci d'avance!

Clav
 
C

clav

Guest
Malheureusement non, elle contient des infos confidentielles, mais il me semble que la question est assez simple:

Comment faire un formule pour que seuls les nombres en format standard dans une ligne soient sommés dans une cellule de cette meme ligne. (ligne 12 en l'occurence...)
 
C

clav

Guest
Je pourrais plus simplement demander:

Quel est l'argument "critère" de la fonction SOMME.SI() que je dois mettre pour ne prendre que les nombres en format standard de ma plage de données.

Merci
 
A

andré

Guest
Salut,

Si les nombres ne sont pas inférieurs à 1 et que les pourcentages ne sont pas supérieurs à 100 % :
la somme des nombres : =NB.SI(ta plage;">1")
la somme des pourcentages : NB.SI(ta plage;"<1")

Si ce n'est le cas, il faudra chercher une solution sur base du nombre de décimales, par exemple un format de 3 pour les nombres et de 2 pour les pourcentages (Excel interprête 15 % comme 0.15).

10.235 et 3.5% pourrait poser problème !
A ta disposition pour la suite.

Ândré.
 
A

andré

Guest
Salut clav,

Effectivement la question est simple, par contre c'est la réponse qui est difficile (lol).

Donne les deux types de formats employés, ou plus simplement en pièce jointe une copie d'une partie représentative de ce que tu veux additionner (pas besoin de savoir ce que représente tes nombres et pourcentages).

Salut à toi aussi Greg (en passant).

Ândré.
 
C

clav

Guest
merci andré pour ton élément de réponse.

Donc:

il n'existe pas de moyen de faire reconnaitre a Excel le format des nombres dans les cellules... je pensais que c'etait le cas. En passant par VBA peut etre?

André,
je presume que dans ta reponse je dois remplacer =NB.SI par =SOMME.SI

A part ca j'ai des nombres et des pourcentages compris entre 0 et R... donc pas de regles utilisable de ce coté la. Je vais donc essayer de jouer sur le nombre de décimales, mais dans ce cas comment j'ecris le critere?


Merci
 
E

emirj

Guest
Salut Clav,
je verrais bien une macro du style :

'boucle sur les colonnes 1 à 10, pour la ligne 1:

for col = 1 to 10

if cells(1,col).NumberFormat = "0.00%" then

'si ta cellule est en format %age, incrémente ta somme pourcent...
somme_pourcent = somme_pourcent + cells(1,col).value

elseif cells(1,col).NumberFormat = "0.00" then

'si elle est en format 0.00, et bien tu sommes une autre variable
somme = somme + cells(1,col).value
end if

'et tu notes le résultats dans les colonnes 11 et 12, par exemple :
cells(1,11).value = somme
cells(1,12).value = somme_pourcent
next col

Est-ce que ca peut t'aider ?
a+
Julien
 
M

Monique

Guest
Bonjour,

Ton Zip est vide ?

On peut supposer que tes données sont ordonnées.
Du genre tes nombres au format standard 1 colonne sur 2 ou 1 colonne sur 3 ou 2 sur 3.

Une colonne sur 2, colonnes paires (B D F etc)
=SOMMEPROD((MOD(COLONNE(A4:Z4);2)=0)*A4:Z4)

Une colonne sur 2, colonnes impaires (A C E etc)
=SOMMEPROD((MOD(COLONNE(A4:Z4);2)=1)*A4:Z4)

Une colonne sur 3, à partir de A : =MOD(COLONNE();3) = 1
=SOMMEPROD((MOD(COLONNE(A4:Z4);3)=1)*A4:Z4)

Deux colonne sur 3, à partir de B ( B C E F H I etc) : =MOD(COLONNE();3) <>1
=SOMMEPROD((MOD(COLONNE(A4:Z4);3)<>1)*A4:Z4)


Sinon, la fonction CELLULE("format";A1) te renvoie "S" pour les cellules au format standard.
Elle renvoie pour les cellules au format pourcentage : %0 ou %1 ou %2 selon le nb de décimales.
Mais cette formule refuse de fonctionner :
=SOMMEPROD((CELLULE("format";A4:Z4)="S")*A4:Z4)
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 016
dernier inscrit
Mokson