Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 LAMBDA et Somme.si.ensemble, je sèche...

Njp

XLDnaute Nouveau
Bonjour,

J'ai un tableau comptable simple :
Date, Intitulé, Débit, Crédits; Type

J'isole mensuellement les dépenses selon le type de celles-ci avec cette formule :

=SOMME.SI.ENS(E:E;C:C;">="&L6;C:C;"<="&M6;G:G;N3)

Avec :
E:E : colonne débit => Plage_debours
C:C : colonne dates => Plage_Date
L6 : Date début => Date_Debut
M6 : Date fin => Date_Fin
G:G : colonne Type de dépense => Plage_Type
F31 : Type de dépense => Sujet

Je veux tester :

=LAMBDA(Plage_Somme;Plage_Date;Date_Debut;Date_Fin;Plage_Type;Sujet;(SOMME.SI.ENS(Plage_somme;Plage_Date;">="&Date_Debut;Plage_Date;"<="&Date_Fin;Plage_Type;Sujet))(E:E;C:C;L6;C:C;M6;G:G;N3)

Excel me rajoute * avant les arguments et #CALC!..

Un ordre d'argument à respecter ?
J'ai utilisé la syntaxe d'une formule existante ?
Incompatible avec un certain type de formule ?
Je m... quelque part ?

Microsoft me dit "Si vous créez une fonction LAMBDA dans une cellule sans l’appeler également à partir de cette cellule, Excel renvoie #CALC! comme erreur."
Traduction approximative ou je suis idiot ?...
Non, ne répondez pas à la deuxième option....

J'en appelle donc humblement aux pros, je sèche...

NJ
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Cela marche si on créer un formule nommée par exemple SSI de
VB:
=LAMBDA(Plage_Somme;Plage_Date;Date_Debut;Date_Fin;Plage_Type;Type;SOMME.SI.ENS(Plage_Somme;Plage_Date;">="&Date_Debut;Plage_Date;"<="&Date_Fin;Plage_Type;Type))
Puis on utilise
Code:
=SSI(H:H;A:A;L6;M6;E:E;N3)
dans une cellule

Mais bon, pas vraiment intéressant par rapport à un SOMME.SI.ENS

Sinon avec LET
VB:
=LET(Plage_Somme;H:H;Plage_Date;A:A;Date_Debut;M1;Date_Fin;M2;Plage_Type;E:E;Type;M3;SOMME.SI.ENS(Plage_Somme;Plage_Date;">="&Date_Debut;Plage_Date;"<="&Date_Fin;Plage_Type;Type))
 
Dernière édition:

Njp

XLDnaute Nouveau
Je ne comprends pas ta procédure...
Et c'est la rapidité d'écriture de la formule qui m'intéresse... juste à sélectionner les collonnes et les cellules...
Et la maitrise de LAMBDA...
 

chris

XLDnaute Barbatruc
RE

Écrire une formule aussi longue dans une cellule au lieu de SOMME.SI.ENS n'apporte pas de gain de temps

Sur le site de Microsoft https://support.microsoft.com/fr-fr/office/fonction-lambda-bd212d27-1cd1-4321-a34a-ccbf254b8b67 est bien citée la création d'une formule nommée.

Ce que j'ai fait avec la partie logique de la formule qui permet ensuite de l'appliquer n'importe où en précisant simplement les 5 arguments

Par ailleurs tu as une erreur Type d'un côté et Sujet de l'autre
 
Dernière édition:

Njp

XLDnaute Nouveau
Bonjour Dranreb,
les étapes disent de tester la formule avant de la nommer... J'en suis la...
Peut-être question idiote, mais je démarre sur cette fonction...
Les essais que j'ai fait sur des formules simples me renvoient le résultat à cette étape...
un peu perdu là...
 

chris

XLDnaute Barbatruc
Bonjour à tous
Mais la question est : pourquoi #CALC!...
Je l'ai dit : à cause de Sujet au lieu de Type (la liste des arguments doit être similaire dans les 2 parties)
Mais aussi sans doute la répétition d'un même argument

ceci fonctionne
VB:
=LAMBDA(Plage_Somme;Plage_Date;Date_Debut;Date_Fin;Plage_Type;Type;SOMME.SI.ENS(Plage_Somme;Plage_Date;">="&Date_Debut;Plage_Date;"<="&Date_Fin;Plage_Type;Type))(Ventes[Montant];Ventes[Date commande];L6;M6;Ventes[Catégorie];N3)
 

Njp

XLDnaute Nouveau
Merci chris, enfin...

Après correction de ta formule ( les "ventes [date commande ]...), ça marche nickel...
J'ai comparé avec la mienne.
Erreur de débutant, j'ai ouvert une parenthèse à somme.si.ensemble...

Résultat :

LAMBDA(Plage_Somme;Plage_Date;Date_Debut;Date_Fin;Plage_Type;Sujet;SOMME.SI.ENS(Plage_Somme;Plage_Date;">="&Date_Debut;Plage_Date;"<="&Date_Fin;Plage_Type;Sujet))(E:E;C:C;L6;M6;G:G;N3)

Merci encore !!
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…