Fonction nb.jours.ouvres avec une plage

Bonjour,

Je suis confronté à une problématique où je tourne en rond.

J'ai un tableau à 3 colonnes:

Date de début / Date de fin / Jours ouvrés communs

Je souhaite dans la colonne jours ouvrés communs avoir la somme de tous les jours ouvrés entre la date de début de la ligne de la formule et les autres dates de fin de chaque autres lignes. j'ai essayé : =SOMME(NB.JOURS.OUVRES([@[Date début]]; [Date fin])) mais la formule ne fonctionne pas sur une plage.

Auriez-vous une idée?

Merci,

Yohann

Bonjour,

Il est toujours préférable de mettre un fichier anonymisé en expliquant le problème :)

P.

Bonjour

d'après ce que j'ai compris de la demande, il faut appliquer la fonction NB.JOURS.OUVRES dans un MAP pour effectuer le calcul sur toutes les dates de fin.

=SOMME(MAP([Date de fin];LAMBDA(y;NB.JOURS.OUVRES([@[Date de début]];y))))

EDIT, je viens de voir votre version d'Excel. Ma proposition ne fonctionnera pas

Stéphane

Bonjour,

Merci beaucoup pour vos retours. Cela fonctionne bien (je suis sur un PC au Bureau avec Office 365).

J'ai juste un problème quand il n'y a pas de date de renseigné. Ca rend les calculs faussés. Je ne sais pas où mettre la condition si cellule vide dans date début ou date de fin ne pas intégrer la somme de la ligne en question

Je continue à creuser :)

Merci encore.

Yohann

Bonjour à tous,

Si la cellule date de début est vide, alors on peut faire comme ceci (les valeurs textuelles sont ignorées dans SOMME) :

=SOMME(
    MAP(
        [Date de fin];
        LAMBDA(y;
            SI([@[Date de début]]>0; NB.JOURS.OUVRES([@[Date de début]];y); "")
        )
    )
)

PS : Veuillez mettre à jour votre profil si vous utilisez 365, ça change vraiment beaucoup de choses au niveau des fonctions disponibles.

Bonjour,

Merci Saboh 12617,

ta formule fonctionne uniquement si la date de début de la ligne de la formule est renseignée.

Il faudrait que ça prenne en compte la plage complète. j'ai essayé ça :

=SOMME(MAP([Date fin];LAMBDA(y;SI([Date début]>0; NB.JOURS.OUVRES([@[Date début]];y);"")))), mais la formule me renvoie #CALC

ça devient une usine à gaz cette affaire :)

Cordialement,

Yohann

Bonjour à tous !

Pourquoi s’obstiner à ne pas produire un classeur avec un exemple manuel du résultat attendu ?

J'approuve la réponse de JFL, car on ne peut pas deviner toutes ces subtilités. A priori il suffit de filtrer la colonne :

=SOMME(
    MAP(
        FILTRE([Date de fin]; [Date de fin]<>0)
        LAMBDA(y;
            SI([@[Date de début]]>0; NB.JOURS.OUVRES([@[Date de début]];y); "")
        )
    )
)

Bonjour

Ou encore avec le contrôle sur la date de début avant de calculer le MAP et une vérification qu'il y a au moins une date dans la colonne "Date de fin" (sinon le FILTRE renverra une erreur)

=SI(
    ET([@[Date de début]]>0;OU(ESTNUM([Date de fin])));
    SOMME(MAP(
        FILTRE([Date de fin];ESTNUM([Date de fin]));
        LAMBDA(y; NB.JOURS.OUVRES([@[Date de début]]; y))));
    0)

Stéphane

Bonjour à tous,

Je reviens après 2 jours OFF.

Premièrement merci pour vos précieuses réponses, elles m'ont fortement aiguillées.

J'avais quelques écart dans les résultats, c'était lié à l'incohérence entre les filtres et la plage du MAP.

voici le code qui fonctionne :

=SI(SOMME(([@[Date début]]<>"")*([@[Date fin]]<>""))>0;
LET(
d; FILTRE([Date début]; ([Date début]<>"")*([Date fin]<>""));
f; FILTRE([Date fin]; ([Date début]<>"")*([Date fin]<>""));
SOMME(
MAP(d; f; LAMBDA(x; y; NB.JOURS.OUVRES(x; y)-1))
)
);
"")

Bonne continuation,

Yohann

Rechercher des sujets similaires à "fonction jours ouvres plage"