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

XL 2019 Récupérer le premier nombre d'une ligne selon entreprise puis retrouver date

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Loïc DUBOIS

XLDnaute Occasionnel
Bonjour à tous,

J'espère que vous allez bien ?

J'ai une petite interrogation.
En effet sur mon fichier, j'ai enormement de lignes (chaque ligne concerne une entreprise), les colonnes sont des dates. Mon soucis est que j'ai beaucoup de colonnes et j'ai des résultats apparaissant comme "NULL", des nombres sont noyés dans ces "NULL". Je cherche donc à savoir si je peux avoir une formule excel qui me permette d'avoir le premier nombre de la ligne apparaissant. Une fois cela fait, j'aimerais trouver la date correspondant (sur la ligne 1) à l'entreprise et le nombre trouvé précèdemment.

Je vous joint un fichier excel avec le fichier de base et ce que je veux retrouver.

Nb : Si aucun nombre n'est présent sur la ligne, on écrit NULL.
Nb 2 : Je n'ai pas accès à la fonction recherchex.

Merci d'avance,

N'hésitez pas si vous avez des questions.
 

Pièces jointes

Bonjour Loïc,
Un essai en PJ avec :
VB:
=SIERREUR(SI(MIN(SI(ESTNUM('Fichier de base'!C2:ZZ2);COLONNE('Fichier de base'!C2:ZZ2)))<>0;INDEX('Fichier de base'!2:2;MIN(SI(ESTNUM('Fichier de base'!C2:ZZ2);COLONNE('Fichier de base'!C2:ZZ2))));"");"")
Validation par Maj+Ctrl+Entrée car formule matricielle.
Pour 4295902756 le premier nombre est 0, et non 14150, 14150 est le premier nombre non nul.

Si la prochaine question est rechercher le premier nombre non nul, perso je ne sais pas faire en formules.
par contre en VBA. Oui.
 

Pièces jointes

Bonjour @Loïc DUBOIS 🙂,

Pour ce genre de cas, j'ajoute une colonne auxiliaire dont le but est de simplifier considérablement la longueur des formules.

Feuille "Fichier de base" :
On insère une colonne en A et on y met la formule matricielle (à valider par Ctrl+Maj+Entrée) suivante en A2 à recopier vers le bas :
VB:
=PETITE.VALEUR(SI(((D2:XP2<>"NULL")*(D2:XP2>0));COLONNE(D2:XP2));1)
Cette formule donne le numéro de colonne de la ligne qui contient le premier nombre supérieur à 0.

Feuille "Fichier voulu" :
Dans la cellule B2, on saisit la formule suivante à recopier vers le bas :
VB:
=SIERREUR(INDEX('Fichier de base'!$1:$1048576;EQUIV(A2;'Fichier de base'!$C:$C;0);INDEX('Fichier de base'!$A:$A;EQUIV(A2;'Fichier de base'!$C:$C;0)));"NULL")

Dans la cellule C2, on saisit la formule suivante à recopier vers le bas :
VB:
=SIERREUR(INDEX('Fichier de base'!$1:$1;INDEX('Fichier de base'!$A:$A;EQUIV(A2;'Fichier de base'!$C:$C;0)));"")

edit : bonsoir @sylvanu 😉
 

Pièces jointes

Dernière édition:
Re,

Quitte à insérer une colonne, on peut en insérer deux sur la feuille "Fichier de base" :
En A2, on place la formule matricielle à recopier vers le bas :
VB:
=SIERREUR(INDEX(A2:XQ2;PETITE.VALEUR(SI(((E2:XQ2<>"NULL")*(E2:XQ2>0));COLONNE(E2:XQ2));1));"NULL")
En B2, on place la formule matricielle à recopier vers le bas :
VB:
=SIERREUR(INDEX(A$1:XQ$1;PETITE.VALEUR(SI(((E2:XQ2<>"NULL")*(E2:XQ2>0));COLONNE(E2:XQ2));1));"")

et sur la feuille "Fichier voulu", on a les deux formules très simples en B2 et C2 à recopier vers le bas :
VB:
=INDEX('Fichier de base'!A:A;EQUIV(A2;'Fichier de base'!D:D;0))
et
VB:
=INDEX('Fichier de base'!B:B;EQUIV(A2;'Fichier de base'!D:D;0))
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
248
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…