Somme si
Résolu/Fermé
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
-
21 févr. 2010 à 19:32
laryburd Messages postés 22 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 25 février 2010 - 22 févr. 2010 à 18:00
laryburd Messages postés 22 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 25 février 2010 - 22 févr. 2010 à 18:00
A voir également:
- Somme si
- Somme si couleur - Guide
- Formule somme excel colonne - Guide
- Somme si ens ou ✓ - Forum Excel
- Somme si ens différent de ✓ - Forum Excel
- Excel somme si couleur ne fonctionne pas ✓ - Forum Excel
12 réponses
Le Pingou
Messages postés
12222
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
3 décembre 2024
1 452
21 févr. 2010 à 21:24
21 févr. 2010 à 21:24
Bonjour,
En [J2] taper : =NB.SI(F2:I2;0)
En [J2] taper : =NB.SI(F2:I2;0)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
21 févr. 2010 à 22:16
21 févr. 2010 à 22:16
bonjour
Si j'ai bien compris ton problème cette fonction devrait le résoudre
Tu peux la mettre dans un module de ton classeur PERSO
et appeler ton calcul dans la cellule souhaitée (J2 dans ton ex)
avec =PERSO.XLS!écart() ou en 2007 =PERSONAL.XLSB!écart()
Si j'ai bien compris ton problème cette fonction devrait le résoudre
Public Function écart() If Application.Caller.Row < 2 Then écart = "erreur de position" Else Dim col As Long, lig As Long écart = 0 lig = Application.Caller.Row For col = Application.Caller.Column - 1 To 1 Step -1 If Not IsNumeric(Cells(lig, col).Value) Then Exit Function If Not IsEmpty(Cells(lig - 1, col).Value) Then écart = écart + 1 Next col End If End Function
Tu peux la mettre dans un module de ton classeur PERSO
et appeler ton calcul dans la cellule souhaitée (J2 dans ton ex)
avec =PERSO.XLS!écart() ou en 2007 =PERSONAL.XLSB!écart()
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
21 févr. 2010 à 23:11
21 févr. 2010 à 23:11
Merci pour l'aide mais cela ne fonctionne pas car mon fichier se nome 003645.xls et est in crémenté de 1 chaque jour.
ex demain il s'appellera 003646.xls etc...
J'ai aussi essayé de modifier le "/" de place et il donne toujours 2.
Je sais qu'il existe une fonction simple que je peux mettre en J2 mais je n'arrive pas a la faire fonctionner.
Celle qui m'avait été donnée en 2008 était celle -ci
=SOMME(SI(NON(ESTVIDE(DECALER(A1:I1;0;col_txt;1;10-col_txt)) );1))
Mais je n'arrive à rien avec .
Je ne sais plus si s'était une matricielle.
Laurent
ex demain il s'appellera 003646.xls etc...
J'ai aussi essayé de modifier le "/" de place et il donne toujours 2.
Je sais qu'il existe une fonction simple que je peux mettre en J2 mais je n'arrive pas a la faire fonctionner.
Celle qui m'avait été donnée en 2008 était celle -ci
=SOMME(SI(NON(ESTVIDE(DECALER(A1:I1;0;col_txt;1;10-col_txt)) );1))
Mais je n'arrive à rien avec .
Je ne sais plus si s'était une matricielle.
Laurent
Le Pingou
Messages postés
12222
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
3 décembre 2024
1 452
21 févr. 2010 à 23:32
21 févr. 2010 à 23:32
Bonjour,
Il me semble que la fonction de gbinforme fonctionne correctement.
Sans comprendre le but que vous voulez atteindre, je ne peux rien de plus.
Désolé.
Il me semble que la fonction de gbinforme fonctionne correctement.
Sans comprendre le but que vous voulez atteindre, je ne peux rien de plus.
Désolé.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
21 févr. 2010 à 23:59
21 févr. 2010 à 23:59
J'ai bien mis sa fonction dans un module de mon fichier et copier la ligne " =PERSO.XLS!écart() " dans la cellule J2.
Mais est ce la bonne manip?
Je sais appeler une macro mais pour appeler un module dans une cellule???
Laurent
Mais est ce la bonne manip?
Je sais appeler une macro mais pour appeler un module dans une cellule???
Laurent
Raymond PENTIER
Messages postés
58745
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
3 décembre 2024
17 248
22 févr. 2010 à 01:22
22 févr. 2010 à 01:22
et en remplaçant SOMME(SI( par SOMME.SI( ?
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 01:49
22 févr. 2010 à 01:49
Merci de vous intéresser à mon problème mais j'ai essayé aussi votre proposition et çà ne marche pas non plus.
Et pourtant la fonction proposée fonctionnait en 2008 avec excel 2003.
J'ai toujours excel 2003 et çà ne marche plus???
Laurent
Et pourtant la fonction proposée fonctionnait en 2008 avec excel 2003.
J'ai toujours excel 2003 et çà ne marche plus???
Laurent
Raymond PENTIER
Messages postés
58745
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
3 décembre 2024
17 248
22 févr. 2010 à 02:02
22 févr. 2010 à 02:02
Tant qu'on n'aura pas ton fichier, il sera difficile de t'aider davantage ...
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 02:27
22 févr. 2010 à 02:27
En voici un exemple.
Laurent
http://www.cijoint.fr/cjlink.php?file=cj201002/cijtLxRj2b.xls
Laurent
http://www.cijoint.fr/cjlink.php?file=cj201002/cijtLxRj2b.xls
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
22 févr. 2010 à 08:35
22 févr. 2010 à 08:35
bonjour à tous les intervenants,
J'ai bien mis sa fonction dans un module de mon fichier et copier la ligne "
Ce n'est pas tout à fait ce que je t'ai dit : "Tu peux la mettre dans un module de ton classeur PERSO "
Si tu n'as pas de Perso.xls : c'est facile :
- tu ouvres un nouveau fichier
- tu enregistres une macro
en prenant soin de sélectionner "classeur de macros personnelles"
dans la liste déroulante "Enregistrer la macro dans" de la boîte de dialogue "Enregistrer une macro".
- Tu sélectionnes 2-3 cellules
- tu arrêtes l'enregistrement
- tu fermes ton classeur sans enregistrer
- tu fermes excel et tu sauvegardes ton classeur personnel
- tu ouvres excel et tu copies la fonction dans le module du classeur PERSO
- tu mets la fonction où tu veux dans tes différents classeurs et elle fonctionne.
avec =PERSO.XLS!écart() ou en 2007 =PERSONAL.XLSB!écart()
Par exemple en J2 J7 et J11 de ton exemple
J'ai bien mis sa fonction dans un module de mon fichier et copier la ligne "
Ce n'est pas tout à fait ce que je t'ai dit : "Tu peux la mettre dans un module de ton classeur PERSO "
Si tu n'as pas de Perso.xls : c'est facile :
- tu ouvres un nouveau fichier
- tu enregistres une macro
en prenant soin de sélectionner "classeur de macros personnelles"
dans la liste déroulante "Enregistrer la macro dans" de la boîte de dialogue "Enregistrer une macro".
- Tu sélectionnes 2-3 cellules
- tu arrêtes l'enregistrement
- tu fermes ton classeur sans enregistrer
- tu fermes excel et tu sauvegardes ton classeur personnel
- tu ouvres excel et tu copies la fonction dans le module du classeur PERSO
- tu mets la fonction où tu veux dans tes différents classeurs et elle fonctionne.
avec =PERSO.XLS!écart() ou en 2007 =PERSONAL.XLSB!écart()
Par exemple en J2 J7 et J11 de ton exemple
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 10:17
22 févr. 2010 à 10:17
Bonjour,
J'ai essayé exactement comme tu l'as expliqué, mais lorsque je change un rapport sous un des N°, la cellule en J n'évolue pas.
Par contre si j'insère une colonne après la colonne J, donc en H ou ailleurs, et que je la supprime ensuite, j'ai remarqué que ce qu'il y a dans la cellule en colonne J a évolué, pourquoi?
Laurent
J'ai essayé exactement comme tu l'as expliqué, mais lorsque je change un rapport sous un des N°, la cellule en J n'évolue pas.
Par contre si j'insère une colonne après la colonne J, donc en H ou ailleurs, et que je la supprime ensuite, j'ai remarqué que ce qu'il y a dans la cellule en colonne J a évolué, pourquoi?
Laurent
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 416
22 févr. 2010 à 10:13
22 févr. 2010 à 10:13
Bonjour
une petite solution pour le fun au cas où avec une ligne suplémentaire, et uniquement si tous les formats texte comprennent un /
en suivant le tableau
_Insérer une nouvelle colonne A pour décaler les tableaux
_en B4 la formule à tirer jusqu'en J4
=SI(OU(B2=0;B3="");0;SI(NB.SI(B3:$J3;"*/*")=0;MAX($A4:A4)+1;0))
_en K3
=MAX(B4:J4) donnera sauf erreur le résultat recherché. Je répéte à condition que le slash soit dans chaque cellule texte.A redcopier sous chaque tableau.
Crdlmnt
une petite solution pour le fun au cas où avec une ligne suplémentaire, et uniquement si tous les formats texte comprennent un /
en suivant le tableau
_Insérer une nouvelle colonne A pour décaler les tableaux
_en B4 la formule à tirer jusqu'en J4
=SI(OU(B2=0;B3="");0;SI(NB.SI(B3:$J3;"*/*")=0;MAX($A4:A4)+1;0))
_en K3
=MAX(B4:J4) donnera sauf erreur le résultat recherché. Je répéte à condition que le slash soit dans chaque cellule texte.A redcopier sous chaque tableau.
Crdlmnt
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 10:34
22 févr. 2010 à 10:34
Merci, cela fonctionne, mais le problème c'est que dans mon fichier d'origine (qui est beaucoup plus complexe), je ne peux pas insérer une nouvelle colonne en A.
Cette fonction devra être coller plus loin à droite dans ma feuille d'origine, en colonne "CA" .
Que dois-je modifier dans la fonction pour y arriver?
Laurent
Cette fonction devra être coller plus loin à droite dans ma feuille d'origine, en colonne "CA" .
Que dois-je modifier dans la fonction pour y arriver?
Laurent
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 416
22 févr. 2010 à 11:12
22 févr. 2010 à 11:12
Re
Ca devrait s'arrangter avec ça:
en B4:
=SI(OU($B2=0;$B3="");0;SI(NB.SI(B3:$J3;"*/*")>0;0;1))
et modifier la formule en C4 dans l'item max où il faut remplacer MAX($A4:A4) par MAX($B4:B4)
et tirez de B en J
ceci évite de faire référence à une colonne en amont du champ concerné par MAX
Crdlmnt
Ca devrait s'arrangter avec ça:
en B4:
=SI(OU($B2=0;$B3="");0;SI(NB.SI(B3:$J3;"*/*")>0;0;1))
et modifier la formule en C4 dans l'item max où il faut remplacer MAX($A4:A4) par MAX($B4:B4)
et tirez de B en J
ceci évite de faire référence à une colonne en amont du champ concerné par MAX
Crdlmnt
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 17:41
22 févr. 2010 à 17:41
Merci je vais essayer d'adapter cette fonction a mon fichier.
Laurent
Laurent
Raymond PENTIER
Messages postés
58745
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
3 décembre 2024
17 248
22 févr. 2010 à 13:10
22 févr. 2010 à 13:10
Bonjour.
Autre approche :
* En B1 la formule =SI(ESTTEXTE(B3);COLONNE();A1) à recopier jusqu'en I1
* En J2 la formule =SI(ESTTEXTE(I3);0;NB.SI(DECALER(A2;0;MAX(B1:I1);;9-MAX(B1:I1));">0"))
Autre approche :
* En B1 la formule =SI(ESTTEXTE(B3);COLONNE();A1) à recopier jusqu'en I1
* En J2 la formule =SI(ESTTEXTE(I3);0;NB.SI(DECALER(A2;0;MAX(B1:I1);;9-MAX(B1:I1));">0"))
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 17:43
22 févr. 2010 à 17:43
Merci je vais essayer d'adapter cette fonction a mon fichier.
Mais il semble que si je rajoute du texte dans certaines cellules lorsque la cellule supérieure est vide il la prend en compte hors il ne faut pas.
Laurent
Mais il semble que si je rajoute du texte dans certaines cellules lorsque la cellule supérieure est vide il la prend en compte hors il ne faut pas.
Laurent
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 416
22 févr. 2010 à 17:51
22 févr. 2010 à 17:51
Re
ci joint votre fichier avec mes propositions.J'ai rajouté , en rouge,quelques cas que vous évoquez au message précédent. Dites moi ce qui ne colle pas, je n'ai peut être pas tout compris.
Crdlmnt
http://www.cijoint.fr/cjlink.php?file=cj201002/cijthN9QvK.xls
ci joint votre fichier avec mes propositions.J'ai rajouté , en rouge,quelques cas que vous évoquez au message précédent. Dites moi ce qui ne colle pas, je n'ai peut être pas tout compris.
Crdlmnt
http://www.cijoint.fr/cjlink.php?file=cj201002/cijthN9QvK.xls
laryburd
Messages postés
22
Date d'inscription
samedi 9 février 2008
Statut
Membre
Dernière intervention
25 février 2010
22 févr. 2010 à 18:00
22 févr. 2010 à 18:00
Ce que vous avez fais est excellent.
Vous m'avez apporté la solution.
Merci encore.
Laurent
Vous m'avez apporté la solution.
Merci encore.
Laurent
21 févr. 2010 à 22:38
Et le "/" peu se trouver n'importe ou sur la ligne 2.
Je dois savoir combien il me reste de cellules nom texte après la cellule E2, sachant que le "/" peu se trouver n'importe ou sur la ligne 2.
Et surtout ne pas comptabiliser les cellules G2 et I2 car G1 et I1 sont vident.
Laurent