Fonction Index()

Accueil

 

Index simple
Index ligne/colonne
Recherche suivant 2 critères
Equiv/Index inverse
Extraction d'une ligne ou d'une colonne
Index vecteur Ligne/Vecteur Colonne
Scrolling vertical et horizontal d'un tableau
Scrolling horizontal d'un tableau
Recherche du moins cher
Recherche avec 2 critères
Index multi-zones
Recherche 3 & 4 critères

 

Recherche imbriquée

 

Index(table;ligne)

La fonction Index(table;ligne) donne le contenu de la cellule de la ligne spécifiée.
Sur l'exemple, on obtient le CA du mois en B1:

=Index(Ca;B1)

Index.xls

Index(Table;ligne;colonne)

Sur l'exemple, on obtient la température du mois et du jour spécifié.

Recherche suivant 2 critères

Sur l'exemple, on recherche le prix d'une pièce en fonction de sa hauteur et de sa longueur.
IndexEquivPrix1
Index Equiv Prix

=EQUIV(B1;Hauteur;1) donne la position dans le champ Hauteur de la hauteur choisie
=EQUIV(B2;Longueur;1) donne la position dans le champ Longueur de la longueur choisie
=INDEX(Prix;EQUIV(B1;Hauteur;1);EQUIV(B2;Longueur;1)) donne le prix

Extraction d'une ligne et d'une colonne d'un tableau avec Index()

=INDEX(champ;3;) donne la 3 ligne
=INDEX(champ;;2) donne la 2eme colonne

Sur cet exemple, nous n'avons qu'un nom de champ BD (A2:B7) .
Pour alimenter la liste déroulante en G2, nous spécifions =Index(BD;;1) pour ne prendre
que la première colonne du champ BD.

On veut la somme de la ligne qui contient le code B.

=SOMME(INDEX(donnees;EQUIV("B";code;0);))

Index(champ;Vecteur Ligne;Vecteur Colonne)

La fonction Index(champ;Vecteur Ligne;Vecteur Colonne) d'Excel permet de spécifier des vecteurs pour les paramètres de ligne et de colonne. On peut ainsi extraire des éléments discontinus d'une table.
(Cette syntaxe n'est pas documentée dans l'aide Microsoft)

Pour obtenir ce qui est à l'intersection des lignes 1,3,5,7 et des colonnes 1,3,6 d'un champ

-Sélectionner 4 lignes et 3 colonnes
=INDEX(champ;{1;3;5;7};{1.3.6})
Valider avec maj+ctrl+entrée

Pour obtenir les colonnes entières 1,3,6 d'un champ.

Extraction tableau

-Sélectionner H2:J8
=INDEX(champ;LIGNE(INDIRECT("1:"&LIGNES(champ)));{1.3.6})
-valider avec maj+ctrl+entrée

Pour prendre une ligne sur 2 et les colonnes 1,3,6:

=INDEX(champ;LIGNE(INDIRECT("1:"&LIGNES(champ)))*2-1;{1.3.6})

Pour prendre une ligne sur 2 et toutes les colonnes:

=INDEX(champ2;LIGNE(INDIRECT("1:"&LIGNES(champ2)))*2-1;COLONNE(INDIRECT("1:"&COLONNES(champ2))))

Synthèse annuelle

-Sélectionner A2:E5
=INDEX(Tbl;{1;7;12;17};{1.5.9.13.17})
- Valider avec maj+ctrl+entrée

Synthèse annuelle

Récupération de plusieurs colonnes dans une table

On veut récupérer le libellé, le prix et la qte avec une seule formule.

-Sélectionner B2:D2
=INDEX(BD;EQUIV(A2;INDEX(BD;;2);0);{1.3.4})
-Valider avec maj+ctrl+entrée

Index MultiColonnes

Scrolling vertical et horizontal d'un tableau

On fait défiler une partie du tableau en H1:O32 en B5:E16

-sélectionner B5:E16
=INDEX(Tbl2;LIGNE(2:14)+F1;{2.3.4.5}+A1)
-Valider avec maj+ctrl+entrée

Scroll vertical et horizontal d'un tableau

Scrolling horizontal d'un tableau

On fait défiler une synthèse d'un tableau en H2:T17 en C5:E8

-Sélectionner C5:E8
=INDEX(Tbl;{1;7;12;17};{1.2.3}+A1)
- Valider avec maj+ctrl+entrée

Scroll tableau horizontal

Recherche avec 2 critères (prix produit fournisseur )

On recherche le prix d'un produit chez un fournisseur. Le même produit peut exister chez plusieurs fournisseurs.
Lorsque le fournisseur est trouvé, il faut limiter la recherche du produit aux produits de ce fournisseur.

=INDEX(prix;EQUIV(F2;DECALER(produit;EQUIV(E2;fourn;0)-1;;SI(EQUIV("zzz";fourn)=EQUIV(E2;fourn;0);LIGNES(produit)-EQUIV(E2;fourn;0)+1;EQUIV("*";DECALER(fourn;EQUIV(E2;fourn;0););0)));0)+EQUIV(E2;fourn;0)-1)

Index12

Autre exemple

EquivDecaler

=INDEX(prix;EQUIV(F2;DECALER(tarif;EQUIV(E2;date)-1;;
SI(E2<MAX(date);MIN(SI(date>E2;LIGNE(tarif)))-LIGNE(tarif)+1;LIGNES(tarif)+1)-EQUIV(E2;date));)+EQUIV(E2;date)-1)
Valider avec maj+ctrl+entrée

Autre exemple

On recherche tous les produits d'un fornisseur.

=SI(LIGNES($1:1)<=NBVAL(DECALER(produit;EQUIV($E$2;fourn;0);;SI(ESTNA(EQUIV("*";DECALER(fourn;EQUIV($E$2;fourn;0););0));
EQUIV("zzz";produit);EQUIV("*";DECALER(fourn;EQUIV($E$2;fourn;0););0))));
INDEX(produit;EQUIV($E$2;fourn;0)+LIGNES($1:1));"")
Valider avec maj+ctrl+entrée

EquivDecaler2

Index((zone1;zone2;...);ligne;colonne;noZone)

Avec Index() multi-zones, la recherche se fait dans le numéro de zone spécifié.

Sur l'exemple, on recherche dans le tableau Garçon ou Fille suivant le genre

=INDEX((garçon;fille);EQUIV(B13;sp;1);EQUIV(B14;cyl;1);SI(B12="garçon";1;2))

FillesGarcons

On recherche une température dans le tableau associé à une semaine:

=INDEX((Sem1;Sem2;Sem3;Sem4);I1;I2;I3)

IndexMZ

Autre exemple

La saisie des CA des villes Paris,Lyon,Bordeaux se fait dans un onglet Saisie.

Dans les onglets de chaque ville, on veut obtenir les ca de la ville

En B4: =INDEX(Ca;EQUIV(A4;produits;0);EQUIV($A$1;villes;0))

En A1, la formule =STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;99) donne le nom de l'onglet.

IndexEquivSaisie

Equiv/Index inversé

En fonction d'une date de naissance et d'un temps, on recherche une cotation. On se positionne sur la valeur inférieure du temps.

Pour obtenir la cotation:

=INDEX(Cotation;EQUIV(M2;INDEX(Temps;;EQUIV(M1;Année;0));1))

Le temps sur lequel on s'est positionné dans le tableau:

=INDEX(Temps;EQUIV(M2;INDEX(Temps;;EQUIV(M1;Année;0));1);EQUIV(M1;Année;0))

EquivIndexInverse

En fonction d'une lettre et d'une valeur, on recherche un code

EquivIndexInverse

Code: =INDEX(code;EQUIV(I7;INDEX(tableau;;EQUIV(I6;Lettre;0));1)+1)

Valeur du tableau: =INDEX(tableau;EQUIV(I7;INDEX(tableau;;EQUIV(I6;Lettre;0));1)+1;EQUIV(I6;Lettre;0))

Autre exemple

Pour un code et une quantité, on recherche la grosseur d'un touret (on se positionne sur la quantité supérieure).

=INDEX(Grosseur;EQUIV(VRAI;INDEX(Qte;EQUIV(B12;code;0);)>=C12;0))
Valider avec Maj+ctrl+entrée

EquivIndexInversé

La dernière note

En J2:
=SI(INDEX(Note;EQUIV(I2;Noms;0);1)<>"";
INDEX(Note;EQUIV(I2;Noms;0);NBVAL(INDEX(Note;EQUIV(I2;Noms;0);)));"")

DernièreNote

Recherche du moins cher

Pour un département et un tonnage, on recherche le transporteur le moins cher.

En H5: =MIN(INDEX(DECALER(prix;EQUIV(H1;dept;0)-1;);EQUIV(H3;tonnage);))

En H9: =INDEX(transport;EQUIV(H5;INDEX(DECALER(prix;EQUIV(H1;dept;0)-1;);EQUIV(H3;tonnage););0))

EquivIndex

Recherche 3 & 4 critères

=INDEX(val;EQUIV(B13;groupe;0);EQUIV(C13;an;0)+EQUIV(D13;Type;0)-1)

Recherche 3 critères
Recherche 4 critères

Fiche adhérent à partir d'une BD

On veut obtenir les renseignements d'un adhérent sous forme d'une fiche.

FicheBDD

Créer les noms de champ
Adhérent =DECALER($A$2;;;NBVAL($A:$A)-1)
BDD =DECALER($A$2;;;NBVAL($A:$A)-1;NBVAL($1:$1))
Titre =bdd!$A$1:$P$1

L'opérateur choisit un numéro d'adhérent en C2.

1- Copier les titres de la BD
2- Collage spécial/transposé en B4
3- En C4: =INDEX(BDD;EQUIV($C$2;Adhérent;0);EQUIV(B4;Titre;0))
4- Cette formule est copiable
5- Déplacer les champs pour la mise en page

On recherche la date d'inscription

On recherche la date d'inscription d'une personne: - IndexSpécial -

-EQUIV(B3;INDEX(Tableau;;1);0) donne la position du nom dans la première colonne de Tableau
-INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0);) représente la ligne pour le nom cherché
-EQUIV("inscrit";INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0););0) donne la colonne de Inscrit

La date d'inscription s'obtient par:
=INDEX(Tableau;1;EQUIV("inscrit";INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0););0)+1)

On recherche la dernière date d'inscription

-EQUIV("zzzz";INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0););1) donne le numéro de la dernière
colonne remplie.

La dernière date d'inscription s'obtient par:
=INDEX(Tableau;1;EQUIV("zzzz";INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0););1)+1-MOD(EQUIV("zzzz";INDEX(Tableau;EQUIV(B3;INDEX(Tableau;;1);0););1);2))

 

 

 

 

 

 

 

Exemples

Index
Index Equiv Prix1
Index Spécial