XL 2016 Effectuer un calcul si une colonne n'est pas vide

Nessaille

XLDnaute Nouveau
Bonjour,

Je vous sollicite car je ne parviens pas à trouver la solution moi-même : je souhaite indiquer à excel dans mes colonnes H et I de l'onglet "RESULTATS", d'effectuer le calcul déjà indiqué (SOMME SI ENS) si la colonne K de l'onglet "BUSINESS EN COURS" est remplie.
Si cette même colonne K est vide, le calcul ne doit pas être réalisé.

Pouvez vous m'indiquer comment l'articuler svp?

Merci beaucoup pour votre aide, je suis dans une impasse.

Bonne soirée

Vanessa
 

Pièces jointes

  • TEST.xls
    164 KB · Affichages: 13

Chris401

XLDnaute Accro
Bonsoir et bienvenue

Peux-tu essayer en H3 :
Code:
=SOMME.SI.ENS('BUSINESS EN COURS'!H:H;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!G:G;RESULTATS!A3;'BUSINESS EN COURS'!M:M;"SIGNE")
+SOMME.SI.ENS('BUSINESS EN COURS'!H:H;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!G:G;RESULTATS!A3;'BUSINESS EN COURS'!M:M;"PROTO")
+SOMME.SI.ENS('BUSINESS EN COURS'!J:J;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!I:I;RESULTATS!A3;'BUSINESS EN COURS'!M:M;"SIGNE")
+SOMME.SI.ENS('BUSINESS EN COURS'!J:J;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!I:I;RESULTATS!A3;'BUSINESS EN COURS'!M:M;"PROTO")
 

Chris401

XLDnaute Accro
En plus court :

Code:
=SOMME(SOMME.SI.ENS('BUSINESS EN COURS'!H:H;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!G:G;A3;'BUSINESS EN COURS'!M:M;{"SIGNE";"PROTO"}))
+SOMME(SOMME.SI.ENS('BUSINESS EN COURS'!J:J;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!I:I;A3;'BUSINESS EN COURS'!M:M;{"SIGNE";"PROTO"}))
 

Nessaille

XLDnaute Nouveau
En plus court :

Code:
=SOMME(SOMME.SI.ENS('BUSINESS EN COURS'!H:H;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!G:G;A3;'BUSINESS EN COURS'!M:M;{"SIGNE";"PROTO"}))
+SOMME(SOMME.SI.ENS('BUSINESS EN COURS'!J:J;'BUSINESS EN COURS'!K:K;">0";'BUSINESS EN COURS'!I:I;A3;'BUSINESS EN COURS'!M:M;{"SIGNE";"PROTO"}))
Bonsoir Chris, merci pour votre retour. J’ai finalement réussi à faire fonctionner en mettant BUSINESS EN COURS'!K:K;"".
J’ai vu que vous avez formulé cela avec BUSINESS EN COURS'!K:K;">0"
Je n’ai pas testé le vôtre mais a priori pas de différence avec la mienne?
 

Nessaille

XLDnaute Nouveau
Re
Tu demandes de calculer si la colonne K de l'onglet "BUSINESS EN COURS" est remplie.
Ta condition BUSINESS EN COURS'!K:K;""; sommera si la cellule K est vide
Merci Chris pour ton retour tout marche nickel!
Peux tu m’indiquer comment dire à Excel avec somme si ens de remonter les données même si pour le commercial « lambda » dans le tableau de
Business il est noté avec un espace avant ou après
J’ai souvent des données qui ne remonte pas à cause de cela.
Merci pour ton aide :)
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonsoir @Nessaille
Pour ton problème avec les espaces en excès tu peux peut-être jouer avec la fonction SUPPRESPACE :
1637442315659.png


Ça règle même les espaces multiple au sein de la chaîne.

Amicalement
Alain
 

Phil69970

XLDnaute Barbatruc
Bonjour @Nessaille , @Chris401
Edit : Bonjour @AtTheOne

Perso pour supprimer les espaces j'aime bien faire comme ça :

VB:
Sub Sup_Espace()
Dim Derlig&, SupMonEspace$
Derlig = Worksheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To Derlig
    SupMonEspace = Trim(Range("A" & i))
    Range("A" & i) = SupMonEspace
Next i
End Sub

En supposant que je veuille supprimer les espace de la colonne A

@Phil69970
 

AtTheOne

XLDnaute Impliqué
Supporter XLD
Bonjour @Nessaille (Vanessa ?)

Je me suis penché sur ton problème, (lors de mon précédent post je n'avais pas regardé ton fichier).
Ce post est long car j'ai voulu détailler au maximum mes actions.
(En PJ ton fichier modifié)

Pour SUPPRESPACE on ne peut pas se référer à une plage de cellule, ni à une matrice de texte.
Donc elle va fonctionner pour purger le NEGO de la ligne dans ton tableau RESULTATS mais pas dans la formule pour les colonnes du Tableau BUSINESS EN COURS.

Pour répondre à ta demande j'ai du ajouté dans cette dernière feuille, 2 colonnes (pour le négo recherche et le négo offre), elles utilisent ligne à ligne la fonction SUPPRESPACE (pour le négo recherche et le négo offre)

Mais je me suis dit qu'il serait plus pratique d'utiliser des tableaux structurés.
Comme tu es sur la version 2016, j'ai enregistré ton fichier au format .xlsx afin bénéficier des facilités de saisie dans les formules lorsque l'on fait référence à des tableaux structurés.

Je ne sais pas si tu es familière des tableaux structuré :
On sélectionne la plage concernée, on choisit dans le menu Insérer "Tableau", on coche mon tableau comporte des en-têtes (puisque c'est le cas) et on change le nom par défaut par un nom plus parlant.
On peut afficher une ligne des totaux ou la masquer

Bon moi je dispose d'Office 2021 et 2007, j'ai fait le travail sur la version 2007.

Voilà, tu trouveras un résumé de mes actions sur la feuille mémo que j'ai ajouté à ton classeur.
les formules utilisées sont ci-dessous :

Enrichi (BBcode):
Pour la colonne  'Total PROTO SIGNE 2021'
=SOMME(SOMME.SI.ENS(_Tb_EnCours[Honoraires Part Recherche];_Tb_EnCours[TOTAL Honoraires 2021];">0";_Tb_EnCours[Négo recherche Purgé];SUPPRESPACE([NEGO]);_Tb_EnCours[Statut];{"SIGNE";"PROTO"}))
+SOMME(SOMME.SI.ENS(_Tb_EnCours[Honoraires Part Offre];_Tb_EnCours[TOTAL Honoraires 2021];">0";_Tb_EnCours[Négo offre purgé];SUPPRESPACE([NEGO]);_Tb_EnCours[Statut];{"SIGNE";"PROTO"}))

Et pour la colonne 'Total NEGO 2021'

=SOMME.SI.ENS(_Tb_EnCours[Honoraires Part Recherche]; _Tb_EnCours[Totaliser 2021]; ">0";_Tb_EnCours[Négo recherche Purgé]; SUPPRESPACE([NEGO]);_Tb_EnCours[Statut]; "NEGO")
+SOMME(SOMME.SI.ENS(_Tb_EnCours[Honoraires Part Offre];_Tb_EnCours[TOTAL Honoraires 2021];">0";_Tb_EnCours[Négo offre purgé];SUPPRESPACE([NEGO]);_Tb_EnCours[Statut];"NEGO"))

Remarque : dans cette version, à l'intérieur d'un tableau, lorsque sur une ligne, on veut faire référence à une cellule d'une autre colonne mais de la même ligne, le nom de la colonne entre [ ] suffit (sans préciser [#Cette ligne]).
Ici c'est le cas avec la référence [NEGO] et c'est pour celà ça que SUPPRESPACE([NEGO]) fonctionne car dans ce cas, [NEGO] renvoie une seule cellule.

Amicalement
Alain
 

Pièces jointes

  • Copie de TEST.xlsx
    35.3 KB · Affichages: 2
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 153
Messages
2 085 800
Membres
102 980
dernier inscrit
brossadan