Si(condition; somme de 2 cellules distinctes; sinon rien)

23bdd-vide.zip (0.98 Mo)

Bonjour

Je vous écris car ma formule ne fonctionne que pour 1 ligne et je ne comprends pas pourquoi pour les autres ça ne passent pas...

Je travaille dans un centre de formation, avec entrées continues. Je dois cumuler le nombre d'absence sur les 2ers mois.

Mon tableau reporte le nom des stagiaires et date d'entrée en colonne. Les mois de l'année en ligne. J'ai noté : si l'entrée du stagiaire (colonne) est = au mois de la ligne; alors on calcule les absences de ce mois-ci et celles du mois suivant; et je répète jusqu'aux dernières entrées prévues en décembre; sinon rien.

Je vous l'accorde je ne suis pas très claire ! Je vous mets mon fichier en pièce jointe. Merci beaucoup

Bonjour,

Ton souci vient du fait que tu génères ton mois sur la feuille "point absence" en mettant 01/01/2021 pour janvier, puis 01/02/2021 pour février, etc.

Et tu cherches une égalité avec la date d'entrée de tes stagiaires. Mais un seul rentre pile le 1er jour du mois, le seul pour qui la formule marche (et encore, tu ne le vois pas sur la bonne ligne parce que tu fais référence à H5 au lieu de H2 ...)

Tu as 2 solutions :

Soit tu demandes une correspondance au niveau du mois et de l'année, avec les fonctions éponymes,
Soit tu transformes tes dates en textes, et tu cherches une correspondance à ce niveau-là

Je vois bien une 3ème solution parce que ton fichier a l'air d'être une belle usine à gaz :
Faire faire un vrai programme à quelqu'un dont c'est le métier.

Je te laisse essayer les solutions et n'hésite pas à revenir si ça ne fonctionne pas.

image

PS : Sur la feuille présences, quelque chose du style

=SOMME.SI($BT$1:$AUE$1;I$1;$BT$2:$AUE$2)

devrait aller mieux que ceci :

=BT2+EE2+GV2+JK2+MB2+OQ2+RH2+TY2+WN2+ZE2+ABT2+AEK2+AHB2+AJM2+AMD2+AOS2+ARJ2+ATY2

Merci beaucoup.

Donc pour la troisième solution, faire un programme par un pro, je ne suis pas décisionnaire ! La direction en parle mais, comme ça fait un moment, je préfère agir là je peux et je te le confirme ce fichier est une vraie usine à gaz !

J'ai opté pour transformer la date en texte et c'est impeccable !

Merci beaucoup et bonne journée

Virginie

Pas de souci, avec plaisir !

Je pense aussi que passer par le texte était mieux ici. Plus court en tout cas que de passer par MOIS et ANNEE

=SI(TEXTE($E5;"mmmm aaaa")=TEXTE($K$1;"mmmm aaaa");SOMME($R5;$AA5);SI(TEXTE($E5;"mmmm aaaa")=TEXTE($T$1;"mmmm aaaa")...

ça reste fastidieux quand même, mais ça passe.

Bon courage :)

Je n'ai pas fait comme ça ! J'ai inséré une colonne à côté de celle des entrées, et une ligne au dessus des mois, avec comme format les dates en texte ! Et ca marche !

Ah oui mais là attention, si tu commences à te simplifier les choses, comment cela va-t-il finir ?

Avec un fichier à peu près gérable ? Fais gaffe ;)

Je ne sais pas si tu as écrit les dates transformées en textes à la main. Sinon, c'est cette fonction :

=TEXTE(K2;"mmmm aaaa")

Oui, je l'ai fait avec cette formule.

Et ai-je le droit de te poser une autre question ? Sur un autre fichier, qui lui n'est pas une usine à gaz, mais carrément la centrale nucléaire, sur un onglet j'ai date de fin prévue, et les 3 colonnes suivantes sont des avenants. Sur un autre onglet, je veux récupérer la date de fin prévue avenant compris.

Je note donc si(avenant3 est vide alors avenant 2 si avenant 2 est vide, alors avenant 1 sinon date de fin prévue). Ça me donne 1/1/1900. Pourquoi ?

Et dire que je suis en vacances...

C'est le nombre 1 en date. Là, comme ça, sans le fichier ni la formule sous les yeux, dur à dire.

Excel est un super endroit pour passer des vacances !

J'ose t'envoyer mon tableau, au cas où tu passes tes vacances au même endroit !Et si, tu ne peux pas, pas grave, je ne m'offusquerai pas !

6bdd-pp-vide.xlsx (143.73 Ko)

Alors déjà, ça ne renvoie pas 1/1/1900, mais 0/1/1900, ce qui n'est pas du tout la même chose.

0/01/1900 correspond au nombre 0 et donc, au fait que tes Si renvoient vers une valeur vide.

Les avenants rajoutent du temps de formation ou peuvent des fois en enlever ?

Je te demandais ça car sinon il y a moyen de partir sur un =MAX(plage avec les dates), qui te renverra la date la plus élevée.

Dans tous les cas, ceci fait également ce que tu attends :

=DECALER(STAGIAIRES!BD2;;NB(STAGIAIRES!BE2:BH2))

Si vous proposez des formations Excel en distanciel (parce que la Bretagne c'est beau mais c'est loin), n'hésitez pas

Le souci de ta fonction était dans sa structure. Tu lui disais si le 3ème avenant est vide, alors on prend le 2ème avenant, sinon, si le 2ème est vide, alors on prend le 1er, etc.

Mais du coup, s'il n'y a qu'un avenant, voire aucun, la 1ère condition est remplie. Le 3ème est vide, donc il prend le 2ème et il s'arrête de chercher ici. C'est pour ça que tu n'avais que des 0. Il renvoyait la date du 2ème avenant à chaque fois.

Top, ton idée de formule. Je la prends.

Et oui, je crois qu'une formation Excel s'impose, et vba aussi.

Merci encore

Bonne fin de journée

Rechercher des sujets similaires à "condition somme distinctes sinon rien"