XL 2016 Problème Index et Equiv sur un tableau matriciel et blocage des informations.

BALLET

XLDnaute Nouveau
Bonjour à tous et surtout bonne santé à tous,

Je viens avec un problème de recherche d’informations sur une base et sur la mise à jour de la nouvelle base.

1) Je recherche dans le tableau « data » et je copie dans l’onglet « base » les lignes qui ont comme statut du devis : EtatAccepte.

2) Je bloque ces lignes.

3) Je mets à jour le tableau data, par extraction d’un nouveau fichier de mon logiciel de gestion et je le colle sur l’onglet data.

4) Je recherche dans le nouveau tableau data et je copie dans l’onglet base les nouvelles lignes qui ont comme statut du devis : EtatAccepte.

5) Je bloque ces lignes.

6) Je mets à jour les lignes. Les devis Etats Acceptés passent en devis : Etattravauxréalises, Etat Archives, Etattravaux en cours, en fonction du nouveau tableau data , qui est l’image de mon logiciel de gestion.

7) Je renouvelle les actions (3-4-5-6) toutes les semaines.

Ensuite je vais créer une gestion de suivi de rentabilité des chantiers, un planning et créer aussi un tableau de bord, mais je bloque sur l’utilisation de INDEX et EQUIV. Si la première ligne fonctionne pour la seconde ligne pas de réussite. Je vous joins mon classeur. merci de me répondre avec des formules. (Pas VBA).

D’avance merci à tous pour votre aide et bonne journée.
 

Pièces jointes

  • Suivi de devis-essais copie test.xlsx
    23.6 KB · Affichages: 5
Solution
Bonjour à tous,

Pour la formule sans le sierreur():
=INDEX('data '!A$2:A$600;PETITE.VALEUR(SI("EtatAccepte"='data '!$E$2:$E$600;LIGNE('data '!$A$2:$L$600)-1);LIGNE(1:1)))
INDEX(matrice, no_lig, [no_col])
PETITE.VALEUR(matrice, k)


donc on recherche dans la colonne "E" le plus petit numéro de ligne qui possède "EtatAccepte".
PETITE.VALEUR(SI("EtatAccepte"='data '!$E$2:$E$600;LIGNE('data '!$A$2:$L$600)-1);LIGNE(1:1))

si la colonne "E" possède "EtatAccepte"
SI("EtatAccepte"='data '!$E$2:$E$600
alors on retourne le numéro de ligne, il y a moins 1 car les données commencent à la ligne 2 du tableau.
LIGNE('data '!$A$2:$L$600)-1
pour retourner la plus petite valeur on utilise la fonction ligne
ligne(1:1) retourne 1
ligne(2:2) retourne 2...

JHA

XLDnaute Barbatruc
Bonjour à tous,

Modification de la formule
VB:
=SIERREUR(INDEX('data '!A$2:A$600;PETITE.VALEUR(SI("EtatAccepte"='data '!$E$2:$E$600;LIGNE('data '!$A$2:$L$600)-1);LIGNE(1:1)));" ")
copier vers la droite et le bas

mais il y a beaucoup plus facile, tu filtres la colonne "E"
copier le résultat du filtre et coller dans une autre feuille.


JHA
 

Pièces jointes

  • Suivi de devis-essais copie test.xlsx
    30.8 KB · Affichages: 9
Dernière édition:

BALLET

XLDnaute Nouveau
Bonjour, Je te remercie pour la rapidité de la réponse. Ce classeur va être utilisé par des personnes qui n'ont pas une bonne pratique d'Excel. L'extraction et le coller dans l'onglet data est faite par un conseiller en gestion à distance. Il a une connaissance basique d'Excel. Je vais aussi verrouiller une partie des onglets pour que l'utilisateur ne supprime pas les formules et les données. J'ai eu par le passé des "sueurs froides". Pour ne pas mourir idiot: peux-tu m'expliquer comment fonctionne la formule. Bonne journée et Merci.
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Pour la formule sans le sierreur():
=INDEX('data '!A$2:A$600;PETITE.VALEUR(SI("EtatAccepte"='data '!$E$2:$E$600;LIGNE('data '!$A$2:$L$600)-1);LIGNE(1:1)))
INDEX(matrice, no_lig, [no_col])
PETITE.VALEUR(matrice, k)


donc on recherche dans la colonne "E" le plus petit numéro de ligne qui possède "EtatAccepte".
PETITE.VALEUR(SI("EtatAccepte"='data '!$E$2:$E$600;LIGNE('data '!$A$2:$L$600)-1);LIGNE(1:1))

si la colonne "E" possède "EtatAccepte"
SI("EtatAccepte"='data '!$E$2:$E$600
alors on retourne le numéro de ligne, il y a moins 1 car les données commencent à la ligne 2 du tableau.
LIGNE('data '!$A$2:$L$600)-1
pour retourner la plus petite valeur on utilise la fonction ligne
ligne(1:1) retourne 1
ligne(2:2) retourne 2 etc..

Ensuite ce numéro servira pour retourner la valeur de la colonne "A" ('data '!A$2:A$600).

J'espère que cela t'aidera

JHA
 

Discussions similaires

Réponses
8
Affichages
430

Statistiques des forums

Discussions
311 725
Messages
2 081 945
Membres
101 849
dernier inscrit
florentMIG