dans celui-ci 12 oeufs et 12 poussins par fichier
Oui merci, j'avais vu !...
@+
Bonjour J'ai interrogé Copilot
Explication de cette formule :
=SI(ESTVIDE(INDIRECT("L4C(-1):L"&NBVAL($A3#)+2&"C(-1)";0))+ESTVIDE(INDIRECT("L3C(-1):L"&NBVAL($A3#)+1&"C(-1)";0));"";INDIRECT("L4C(-1):L"&NBVAL($A3#)+2&"C(-1)";0)-INDIRECT("L3C(-1):L"&NBVAL($A3#)+1&"C(-1)";0))
Cette formule est utilisée pour effectuer une opération conditionnelle sur deux plages de cellules dynamiques, en utilisant notamment les fonctions SI, ESTVIDE, INDIRECT et NBVAL.
- NBVAL($A3#) : calcule le nombre de valeurs dans la plage générée par la formule dynamique associée à la cellule A3.
- INDIRECT("L4C(-1):L"&NBVAL($A3#)+2&"C(-1)";0) : crée une référence à une plage de cellules commençant à la ligne 4, colonne précédente, jusqu’à la ligne « NBVAL($A3#)+2 », toujours colonne précédente. Le mode « 0 » indique une référence de type L1C1 (ligne-colonne).
- De même, INDIRECT("L3C(-1):L"&NBVAL($A3#)+1&"C(-1)";0) fait référence à la plage juste au-dessus.
- ESTVIDE(...) : vérifie si les plages référencées sont vides.
- La somme des deux ESTVIDE permet de savoir si l’une ou l’autre plage est vide. Si c’est le cas, la formule renvoie une cellule vide (« "" »).
- Sinon, elle fait la différence entre les deux plages générées par INDIRECT : INDIRECT("L4C(-1):L"&NBVAL($A3#)+2&"C(-1)";0)-INDIRECT("L3C(-1):L"&NBVAL($A3#)+1&"C(-1)";0)
En résumé, cette formule compare deux plages de cellules dynamiques (générées en fonction du contenu de la cellule A3), et si les deux plages contiennent des données, elle effectue leur soustraction ligne à ligne. Si au moins une des plages est vide, le résultat est une cellule vide.
Pour adapter la formule afin qu’elle fonctionne avec les plages dynamiques des colonnes $F3#, etc., il suffit de remplacer chaque référence à $A3# par la colonne concernée.
Pour $F3# :
=SI(ESTVIDE(INDIRECT("L4C(-1):L"&NBVAL($F3#)+2&"C(-1)";0))+ESTVIDE(INDIRECT("L3C(-1):L"&NBVAL($F3#)+1&"C(-1)";0));"";INDIRECT("L4C(-1):L"&NBVAL($F3#)+2&"C(-1)";0)-INDIRECT("L3C(-1):L"&NBVAL($F3#)+1&"C(-1)";0))
Veillez à adapter la formule pour chaque colonne souhaitée en remplaçant simplement $A3# par la référence de la colonne de départ. Cette adaptation permet de répliquer le calcul différentiel sur plusieurs séries de données dynamiques au sein d’une même feuille.
Si la formule doit partir de la plage dynamique $A9#, il suffit de remplacer chaque occurrence de $A3# par $A9# et d’ajuster les références de lignes dans les paramètres d’INDIRECT en conséquence. Voici l’adaptation :
=SI(ESTVIDE(INDIRECT("L10C(-1):L"&NBVAL($A9#)+8&"C(-1)";0))+ESTVIDE(INDIRECT("L9C(-1):L"&NBVAL($A9#)+7&"C(-1)";0));"";INDIRECT("L10C(-1):L"&NBVAL($A9#)+8&"C(-1)";0)-INDIRECT("L9C(-1):L"&NBVAL($A9#)+7&"C(-1)";0))
Ici, « L10C(-1) » et « L9C(-1) » correspondent respectivement aux lignes de départ adaptées pour la plage commençant à $A9#. Veillez à ajuster ces valeurs si la structure de votre tableau diffère.
C'est bon.
Bonne soirée