Noter une valeur en fonction d'une date

Bonjour,

excusez moi de vous déranger mais je suis actuellement complètement coincé. Je travaille sur un fichier Excel de 101 288 lignes. Je dois effectuer une enquête et donc tirer des résultats de ce fichier. Sauf que j'ai un problème... je travaille sur plus ou moins 40 000 numéro de vaches différents. Dans ma base de donnée j'ai réussi à rallier la date d'insémination avec le constat de gestation le plus proche de cette date et le code du constat qui va avec. Sauf que certaines vaches ont eu des inséminations mais pas de constat; quand j'effectue des GCD ces cases sont considéré comme vide et cela fausse mes résultats. En effet je peux avoir par exemple une vache ayant 4 rang d'IA mais ayant eu que 1 ou 2 constat de gestation (souvent en face de la dernière date d'IA mais pas toujours) où elle est jugée vide ou pleine. Sauf que les 3 premières inséminations avant cette date de constat de gestation doivent être considérer vide mais je ne sais pas qu'elle formule peu permettre de noter V que dans certaine case. De plus la dernière date d'insémination en lien avec une vache peut aboutir à un constat de gestation P (plein) uniquement si il y plus de 90 jours sans une autre insémination par rapport à la date d'aujourd'hui. Sauf que si vous avez réussit à suivre mon explication les 3 premières inséminations auront presque systématiquement une date à plus de 90 jours par rapport à aujourd'hui mais je ne veux pourtant pas un constat P. Je vous joins un extrait de mon tableau sur quelques lignes si quelqu'un arrive à m'aider; il faut que je puisse remplir les cases rouges. Je voudrais également que dans les cases à moins de 90 jour par rapport à aujourd'hui il ne note rien...

J'ai au total plus 35 000 lignes dans cette situation donc impossible de les faire à la main...

Je ne sais pas faire de macro; je peux apprendre mais cela risque de me compliquer les choses; de plus mon fichier est déjà lourd et excel est parfois à saturation.

10exemple.xlsx (10.24 Ko)

Merci d'avance...

Hello Claire,

Un peu compliqué ces explications...

Peux-tu aérer ton paragraphe avec par exemple : explication du fichier (notamment les données à exploiter dans ton fichier, colonne B, E, F ???), ce que tu veux exactement comme résultat par rapport à quoi (données d'entrées / données de sorties).

Puis tu nous parle de GCD, d'IA (insémination artificielle je suppose ?), de 4 rangs... En tout cas je n'ai pas compris !

Pour essayer de faire avancer ton problème, je suppose (avec des pincettes quand même) que c'est resolvable avec des fonctions SI().

Même pour moi c'est compliqué à expliquer; il y a énormément de données...

Par rapport au fichier que j'ai joint la colonne F correspond au date d'insémination

la colonne E correspond au rang d'insémination (Nombre de fois qu'une vache vient en chaleur avant d'avoir un constat de gestation Plein)

la colonne G correspond à la date de constat de gestation en lien avec l'insémination qui est en face

la colonne H correspond au code de gestation en lien avec la date de constat de gestation (si la vache à la date donnée à côté a été constaté pleine ou non)

Les résultats que je veux dépendent de la date d'insémination (colonne F) mais également de la date d'aujourd'hui, et si la vache en question a une seule ou plusieurs dates d'insémination et donc un ou plusieurs rang d'IA.

Je vais essayer de le reexpliquer plus clairement...

Donc quand une vache a plusieurs dates d'insémination dans la dernière date que l'on connait si cette date d'insémination est antérieur à aujourd'hui de minimum 90 jours alors si faudrait noter P (Pleine)

Par contre dans les autres dates d'insémination de cette même vache qui sont presque toujours antérieur de plus de 90 jours il faudrait noter V car ce n'est pas la dernière insémination de cette vache

Et enfin j'aimerais que lorsque la dernière date d'insémination d'une vache n'est pas antérieur de 90 jours à la date d'aujourd'hui qu'il n'ai rien de marqué dans la case

Je ne dois remplir que les cases rouges de mon tableau, les cases jaunes doivent rester intactes...

J'espère avoir été plus clair.

Merci d'avance

J'vais essayer de résoudre ton problème en reprenant tes points selon la façon que je l'ai comprise :

Donc quand une vache a plusieurs dates d'insémination dans la dernière date que l'on connait si cette date d'insémination est antérieur à aujourd'hui de minimum 90 jours alors si faudrait noter P (Pleine)

Si la date dans la colonne G est antérieur à de 90 jours ou moins et que la colonne E est supérieur à 1, je marque P

=SI( ET(E2 > 1 ; AUJOURDHUI() - G2 <= 90 ) ; "P" ; "")

Par contre dans les autres dates d'insémination de cette même vache qui sont presque toujours antérieur de plus de 90 jours il faudrait noter V car ce n'est pas la dernière insémination de cette vache

Si la date dans la colonne G est supérieur à 90 jours et que la colonne E est supérieur à 1, je marque V

=SI( ET(E2 > 1 ; AUJOURDHUI() - G2 > 90 ) ; "V" ; "")

Je combine mes deux fonctions (j'ai ajouté des espaces pour simplifier la lecture) :

=SI( ET(E2 > 1 ; AUJOURDHUI() - G2 <= 90 ) ; "P" ; SI( ET(E2 > 1 ; AUJOURDHUI() - G2 > 90 ) ; "V" ; ""))

Quand il n'y a pas de date en G, cela génère une erreur : je vais utiliser cette erreur pour ne rien mettre avec la fonction SIERREUR(;)

=SIERREUR(SI(ET(E2>1;AUJOURDHUI()-G2<= 90);"P";SI(AUJOURDHUI()-G2>90;"V";""));"")

Bon du coup je ne suis absolument pas sûr que c'est ce que tu as besoin, mais c'est un début.

PS : si tu ne comprends pas ce que font les fonctions, je t'invite à regarder toi même en cherchant sur internet ou avec l'aide d'excel !

Les fonctions sont à placer en H2 et à étirer jusqu'en bas. Comme tu as un très grand fichier, tu peux sélectionner ta plage d'abord, coller la formule et valider par Ctrl+Entrer

Malheureusement quand j'écris la formule excel me dit qu'il manque des arguments mais je ne vois pas ou...

De plus la colonne G correspond aux dates de constat de gestation et non au date d'insémination... C'est donc les dates dans la colonne F qu'il faut soustraire à aujourd'hui... Comme toutes les dates sont remplis en colonne F, il n'y a pas d'erreur...

J'espère avoir été un peu plus clair...

Petite re precision également, il faut que la différence entre la date d'aujourd'hui et la date d'insémination soit strictement supérieur à 90 jours....

Merci d'avance

Bonsoir je voulais vous informé que j'avais réussi, en utilisant deux formules. Merci pour l'aide apporté

Ravi d'avoir pu aider, je me suis dit qu'en donnant des formules même à titre d'exemple ça pouvait suffir !

Tu peux mettre le sujet en résolut :)

Bonjour voici le problème résolut. Par contre toutes les version d'Excel n'ont pas la fonction MAX.SI.ENS. J'ai donc créé deux colonnes supplémentaire. Sur quelques lignes Excel n'a pas trop de mal; par contre si quelqu'un est amené à les réutiliser sur un fichier aussi lourd que le mien, penser à enregistrer avant de faire la deuxième formule car le calcule est vraiment lourd. Pour enregistrer les deux en même temps il a vraiment du mal... Voir se ferme tout seul au milieu et obligé de recommencer car il n'arrive pas à les récupérer...

7exemple.xlsx (10.87 Ko)
Rechercher des sujets similaires à "noter valeur fonction date"