Table des matières
Dans ce tutoriel, vous trouverez un certain nombre d'exemples de formules qui démontrent les utilisations les plus efficaces de l'INDEX dans Excel.
De toutes les fonctions Excel dont la puissance est souvent sous-estimée et sous-utilisée, INDEX se classerait certainement quelque part dans le top 10. En attendant, cette fonction est intelligente, souple et polyvalente.
Alors, qu'est-ce que la fonction INDEX dans Excel ? Essentiellement, une formule INDEX renvoie une référence de cellule à l'intérieur d'un tableau ou d'une plage donnée. En d'autres termes, vous utilisez INDEX lorsque vous connaissez (ou pouvez calculer) la position d'un élément dans une plage et que vous souhaitez obtenir la valeur réelle de cet élément.
Cela peut sembler un peu trivial, mais une fois que vous aurez réalisé le véritable potentiel de la fonction INDEX, elle pourrait apporter des changements cruciaux à la façon dont vous calculez, analysez et présentez les données dans vos feuilles de calcul.
Fonction INDEX d'Excel - syntaxe et utilisations de base
Il existe deux versions de la fonction INDEX dans Excel - la forme tableau et la forme référence. Les deux formes peuvent être utilisées dans toutes les versions de Microsoft Excel 365 - 2003.
Forme de tableau INDEX
Le formulaire INDEX array renvoie la valeur d'un certain élément dans une plage ou un tableau en fonction des numéros de ligne et de colonne que vous spécifiez.
INDEX(tableau, numéro_ligne, [numéro_colonne])- tableau - est une plage de cellules, une plage nommée ou un tableau.
- numéro de rang - est le numéro de ligne du tableau à partir duquel retourner une valeur. Si row_num est omis, column_num est requis.
- numéro de colonne - est le numéro de la colonne à partir de laquelle retourner une valeur. Si column_num est omis, row_num est requis.
Par exemple, la formule =INDEX(A1:D6, 4, 3)
renvoie la valeur à l'intersection de la 4e ligne et de la 3e colonne de la plage A1:D6, qui est la valeur de la cellule C4.
Pour avoir une idée de la façon dont la formule INDEX fonctionne sur des données réelles, veuillez consulter l'exemple suivant :
Au lieu de saisir les numéros de ligne et de colonne dans la formule, vous pouvez fournir les références des cellules pour obtenir une formule plus universelle : =INDEX($B$2:$D$6, G2, G1)
Ainsi, cette formule INDEX renvoie le nombre d'articles situés exactement à l'intersection du numéro de produit spécifié dans G2 (row_num) et du numéro de semaine saisi dans la cellule G1 (column_num).
Conseil : l'utilisation de références absolues ($B$2:$D$6) au lieu de références relatives (B2:D6) dans l'argument tableau facilite la copie de la formule dans d'autres cellules. Vous pouvez également convertir une plage en tableau (Ctrl + T) et y faire référence par le nom du tableau.
Formulaire de tableau INDEX - points à retenir
- Si l'argument tableau est constitué d'une seule ligne ou colonne, vous pouvez ou non spécifier l'argument correspondant row_num ou column_num.
- Si l'argument array comprend plus d'une ligne et que row_num est omis ou défini à 0, la fonction INDEX renvoie un tableau de la colonne entière. De même, si array comprend plus d'une colonne et que l'argument column_num est omis ou défini à 0, la formule INDEX renvoie la ligne entière. Voici un exemple de formule qui démontre ce comportement.
- Les arguments row_num et column_num doivent faire référence à une cellule du tableau ; sinon, la formule INDEX renverra l'erreur #REF !
Formulaire de référence INDEX
La forme de référence de la fonction INDEX d'Excel renvoie la référence de la cellule à l'intersection de la ligne et de la colonne spécifiées.
INDEX(référence, row_num, [column_num], [area_num] )- référence - est une ou plusieurs plages.
Si vous saisissez plus d'une plage, séparez les plages par des virgules et mettez l'argument de référence entre parenthèses, par exemple (A1:B5, D1:F5).
Si chaque plage de la référence ne contient qu'une seule ligne ou colonne, l'argument row_num ou column_num correspondant est facultatif.
- numéro de rang - le numéro de ligne de la plage à partir de laquelle il faut retourner une référence de cellule, c'est similaire à la forme tableau.
- numéro de colonne - le numéro de la colonne à partir de laquelle il faut retourner une référence de cellule, fonctionne également de manière similaire à la forme tableau.
- numéro de la zone - un paramètre facultatif qui spécifie la plage de l'argument de référence à utiliser. S'il est omis, la formule INDEX renvoie le résultat de la première plage listée dans la référence.
Par exemple, la formule =INDEX((A2:D3, A5:D7), 3, 4, 2)
renvoie la valeur de la cellule D7, qui se trouve à l'intersection de la troisième ligne et de la quatrième colonne de la deuxième zone (A5:D7).
Formulaire de référence INDEX - points à retenir
- Si l'argument row_num ou column_num a la valeur zéro (0), une formule INDEX renvoie la référence de la colonne ou de la ligne entière, respectivement.
- Si les numéros de ligne et de colonne sont omis, la fonction INDEX renvoie la zone spécifiée dans l'argument numéro_zone.
- Tous les arguments _num (row_num, column_num et area_num) doivent faire référence à une cellule dans la référence ; sinon, la formule INDEX renvoie l'erreur #REF !
Les deux formules INDEX que nous avons abordées jusqu'à présent sont très simples et ne font qu'illustrer le concept. Vos formules réelles seront probablement beaucoup plus complexes que cela, alors explorons quelques utilisations plus efficaces d'INDEX dans Excel.
Comment utiliser la fonction INDEX dans Excel - exemples de formules
Il n'y a peut-être pas beaucoup d'utilisations pratiques d'Excel INDEX en soi, mais en combinaison avec d'autres fonctions telles que MATCH ou COUNTA, il peut donner lieu à des formules très puissantes.
Données sources
Pour toutes nos formules d'INDEX (à l'exception de la dernière), nous utiliserons les données ci-dessous qui, pour des raisons de commodité, sont organisées dans un tableau nommé SourceData .
L'utilisation de tableaux ou de plages nommées peut rendre les formules un peu plus longues, mais elle les rend également beaucoup plus flexibles et plus lisibles. Pour ajuster une formule INDEX pour vos feuilles de calcul, il suffit de modifier un seul nom, ce qui compense entièrement la longueur de la formule.
Bien entendu, rien ne vous empêche d'utiliser des plages habituelles si vous le souhaitez. Dans ce cas, il vous suffit de remplacer le nom de la table par SourceData avec la référence de la gamme appropriée.
1. récupérer le Nième élément de la liste
Il s'agit de l'utilisation de base de la fonction INDEX et de la formule la plus simple à réaliser. Pour récupérer un certain élément de la liste, il suffit d'écrire =INDEX(plage, n)
où gamme est une plage de cellules ou une plage nommée, et n est la position de l'élément que vous voulez obtenir.
Lorsque vous travaillez avec des tableaux Excel, vous pouvez sélectionner la colonne à l'aide de la souris et Excel fera apparaître le nom de la colonne avec le nom du tableau dans la formule :
Pour obtenir la valeur de la cellule située à l'intersection d'une ligne et d'une colonne données, vous utilisez la même approche, à la seule différence que vous spécifiez les deux - le numéro de ligne et le numéro de colonne. En fait, vous avez déjà vu une telle formule en action lorsque nous avons abordé la forme de tableau INDEX.
Voici un autre exemple : dans notre tableau d'exemple, pour trouver la deuxième plus grande planète du système solaire, vous triez le tableau en fonction de la taille de la planète. Diamètre et utilisez la formule INDEX suivante :
=INDEX(SourceData, 2, 3)
Array
est le nom de la table, ou une référence de plage, SourceData dans cet exemple.Row_num
est 2 parce que vous recherchez le deuxième élément de la liste, qui se trouve dans le 2ème élément.Numéro de colonne
est de 3 car Diamètre est la 3ème colonne du tableau.
Si vous voulez renvoyer le nom de la planète plutôt que son diamètre, changez column_num en 1. Et naturellement, vous pouvez utiliser une référence de cellule dans les arguments row_num et/ou column_num pour rendre votre formule plus polyvalente, comme le montre la capture d'écran ci-dessous :
2. obtenir toutes les valeurs d'une ligne ou d'une colonne
Outre la récupération d'une seule cellule, la fonction INDEX est en mesure de renvoyer un tableau de valeurs à partir de la base de données de l'utilisateur. ligne entière ou colonne Pour obtenir toutes les valeurs d'une certaine colonne, vous devez omettre l'argument row_num ou le définir à 0. De même, pour obtenir la ligne entière, vous passez une valeur vide ou 0 dans column_num.
De telles formules INDEX peuvent difficilement être utilisées seules, car Excel est incapable de faire tenir le tableau de valeurs renvoyé par la formule dans une seule cellule, et vous obtiendriez l'erreur #VALUE ! Cependant, si vous utilisez INDEX en conjonction avec d'autres fonctions, telles que SUM ou AVERAGE, vous obtiendrez des résultats impressionnants.
Par exemple, vous pouvez utiliser la formule suivante pour calculer la température moyenne des planètes du système solaire :
=AVERAGE(INDEX(SourceData, , 4))
Dans la formule ci-dessus, l'argument column_num est 4 car Température dans la 4ème colonne de notre tableau. Le paramètre row_num est omis.
De la même manière, vous pouvez trouver les températures minimales et maximales :
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
Et calculez la masse totale de la planète (la masse est la 2ème colonne du tableau) :
=SUM(INDEX(SourceData, , 2))
D'un point de vue pratique, la fonction INDEX dans la formule ci-dessus est superflue. Vous pouvez simplement écrire =AVERAGE(plage)
ou =SUM(plage)
et obtenir les mêmes résultats.
Lorsque vous travaillez avec des données réelles, cette fonctionnalité peut s'avérer utile dans le cadre de formules plus complexes que vous utilisez pour l'analyse des données.
3. l'utilisation d'INDEX avec d'autres fonctions (SUM, AVERAGE, MAX, MIN)
D'après les exemples précédents, vous avez peut-être l'impression qu'une formule INDEX renvoie des valeurs, mais la réalité est qu'elle renvoie une valeur référence Cet exemple démontre la véritable nature de la fonction INDEX d'Excel.
Puisque le résultat d'une formule INDEX est une référence, nous pouvons l'utiliser dans d'autres fonctions pour faire une gamme dynamique La formule suivante vous permettra d'y voir plus clair.
Supposons que vous ayez une formule =MOYENNE(A1:A10)
qui renvoie une moyenne des valeurs des cellules A1:A10. Au lieu d'écrire la plage directement dans la formule, vous pouvez remplacer A1 ou A10, ou les deux, par des fonctions INDEX, comme ceci :
=MOYENNE(A1 : INDEX(A1:A20,10))
Les deux formules ci-dessus donnent le même résultat car la fonction INDEX renvoie également une référence à la cellule A10 (row_num est défini sur 10, col_num est omis). La différence réside dans le fait que la plage de la formule AVERAGE / INDEX est dynamique et que si vous modifiez l'argument row_num dans INDEX, la plage traitée par la fonction AVERAGE change et la formule renvoie un résultat différent.
Apparemment, le parcours de la formule INDEX semble excessivement compliqué, mais il a des applications pratiques, comme le montrent les exemples suivants.
Exemple 1 : Calculer la moyenne des N premiers éléments de la liste
Disons que vous voulez connaître le diamètre moyen des N plus grosses planètes de notre système. Vous triez donc la table par Diamètre de la plus grande à la plus petite, et utilisez la formule Moyenne / Indice suivante :
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Exemple 2 : Somme des éléments compris entre les deux éléments spécifiés
Si vous souhaitez définir les éléments de limite supérieure et de limite inférieure dans votre formule, il vous suffit d'utiliser deux fonctions INDEX pour renvoyer le premier et le dernier élément que vous souhaitez.
Par exemple, la formule suivante permet d'obtenir la somme des valeurs dans le champ Diamètre entre les deux éléments spécifiés dans les cellules B1 et B2 :
=SUM(INDEX(SourceData[Diameter],B1) : INDEX(SourceData[Diameter], B2))
4. formule INDEX pour créer des plages dynamiques et des listes déroulantes
Comme il arrive souvent, lorsque vous commencez à organiser des données dans une feuille de calcul, vous ne savez pas combien d'entrées vous aurez finalement. Ce n'est pas le cas de notre tableau des planètes, qui semble complet, mais qui sait...
Quoi qu'il en soit, si vous avez un nombre variable d'éléments dans une colonne donnée, par exemple de A1 à A n Dans ce cas, vous souhaitez créer une plage nommée dynamique qui inclut toutes les cellules contenant des données et qui s'ajuste automatiquement lorsque vous ajoutez de nouveaux éléments ou supprimez des éléments existants. Par exemple, si vous avez actuellement 10 éléments, votre plage nommée est A1:A10. Si vous ajoutez une nouvelle entrée, la plage nommée s'étend automatiquement à A1:A11, et si vous changez d'avis et supprimez les données nouvellement ajoutées,la plage revient automatiquement à A1:A10.
Le principal avantage de cette approche est que vous ne devez pas constamment mettre à jour toutes les formules de votre classeur pour vous assurer qu'elles font référence à des plages correctes.
Une façon de définir une plage dynamique est d'utiliser la fonction OFFSET d'Excel :
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Une autre solution possible est d'utiliser Excel INDEX avec COUNTA :
=Sheet_Name!$A$1:INDEX(Sheet_Name!$A:$A, COUNTA(Sheet_Name!$A:$A))
Dans les deux formules, A1 est la cellule contenant le premier élément de la liste et la plage dynamique produite par les deux formules sera identique.
La différence réside dans les approches. Alors que la fonction OFFSET déplace le point de départ d'un certain nombre de lignes et/ou de colonnes, INDEX trouve une cellule à l'intersection d'une ligne et d'une colonne particulières. La fonction COUNTA, utilisée dans les deux formules, obtient le nombre de cellules non vides dans la colonne concernée.
Dans cet exemple, il y a 9 cellules non vides dans la colonne A, donc COUNTA renvoie 9. Par conséquent, INDEX renvoie $A$9, qui est la dernière cellule utilisée dans la colonne A (habituellement INDEX renvoie une valeur, mais dans cette formule, l'opérateur de référence ( :) l'oblige à renvoyer une référence). Et comme $A$1 est notre point de départ, le résultat final de la formule est la plage $A$1:$A$9.
La capture d'écran suivante montre comment vous pouvez utiliser une telle formule d'index pour créer une liste déroulante dynamique.
Conseil : la façon la plus simple de créer une liste déroulante mise à jour dynamiquement est de créer une liste nommée basée sur un tableau. Dans ce cas, vous n'aurez pas besoin de formules complexes puisque les tableaux Excel sont des plages dynamiques en soi.
Vous pouvez également utiliser la fonction INDEX pour créer des listes déroulantes dépendantes. Le tutoriel suivant en explique les étapes : création d'une liste déroulante en cascade dans Excel.
5. Puissants Vlookups avec INDEX / MATCH
Si vous avez déjà essayé d'utiliser la fonction VLOOKUP d'Excel, vous connaissez ses nombreuses limites, telles que l'impossibilité d'extraire des valeurs des colonnes situées à gauche de la colonne de consultation ou la limite de 255 caractères pour une valeur de consultation.
La liaison INDEX / MATCH est supérieure à VLOOKUP à bien des égards :
- Pas de problème avec les vlookups à gauche.
- Aucune limite à la taille de la valeur de consultation.
- Aucun tri n'est nécessaire (VLOOKUP avec correspondance approximative nécessite de trier la colonne de recherche par ordre croissant).
- Vous êtes libre d'insérer et de supprimer des colonnes dans un tableau sans mettre à jour toutes les formules associées.
- Enfin, INDEX / MATCH ne ralentit pas votre Excel comme le font les Vlookups multiples.
Vous utilisez INDEX / MATCH de la manière suivante :
=INDEX ( pour retourner une valeur de , (MATCH ( valeur de consultation , colonne à consulter , 0))Par exemple, si nous inversons notre table source de façon à ce que Nom de la planète devient la colonne la plus à droite, la formule INDEX / MATCH va toujours chercher une valeur correspondante dans la colonne de gauche sans problème.
Pour plus de conseils et d'exemples de formules, veuillez consulter le tutoriel Excel INDEX / MATCH.
6. formule Excel INDEX pour obtenir une plage dans une liste de plages.
Une autre utilisation intelligente et puissante de la fonction INDEX dans Excel est la possibilité d'obtenir une plage à partir d'une liste de plages.
Supposons que vous ayez plusieurs listes avec un nombre différent d'éléments dans chacune. Croyez-moi ou non, vous pouvez calculer la moyenne ou la somme des valeurs dans n'importe quelle plage sélectionnée avec une seule formule.
Tout d'abord, vous créez une plage nommée pour chaque liste, soit PlanètesD et MoonsD dans cet exemple :
J'espère que l'image ci-dessus explique le raisonnement derrière les noms des gammes : ) BTW, les Lunes Le tableau est loin d'être complet, il y a 176 lunes naturelles connues dans notre système solaire, Jupiter seul en compte 63 actuellement, et ce n'est pas fini. Pour cet exemple, j'ai choisi au hasard 11, enfin... peut-être pas tout à fait au hasard - des lunes portant les plus beaux noms : ).
Veuillez excuser cette digression, nous revenons à notre formule INDEX. En supposant que PlanètesD est votre gamme 1 et MoonsD est la plage 2, et la cellule B1 est celle où vous avez placé le numéro de plage, vous pouvez utiliser la formule Index suivante pour calculer la moyenne des valeurs de la plage nommée sélectionnée :
=AVERAGE(INDEX((PlanètesD, LunesD), , , B1))
Veuillez noter que nous utilisons maintenant la forme de référence de la fonction INDEX, et que le numéro du dernier argument (area_num) indique à la formule la plage à sélectionner.
Dans la capture d'écran ci-dessous, area_num (cellule B1) est défini sur 2, la formule calcule donc le diamètre moyen de Lunes parce que la gamme MoonsD vient en deuxième position dans l'argument de référence.
Si vous travaillez avec plusieurs listes et que vous ne souhaitez pas vous souvenir des numéros associés, vous pouvez utiliser une fonction IF imbriquée pour le faire à votre place :
=AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planets", 1, IF(B1="moons", 2))))
Dans la fonction IF, vous utilisez des noms de listes simples et faciles à retenir que vous souhaitez que vos utilisateurs saisissent dans la cellule B1 à la place des chiffres. Gardez à l'esprit que pour que la formule fonctionne correctement, le texte dans B1 doit être exactement le même (sans distinction de casse) que dans les paramètres de l'IF, sinon votre formule Index produira l'erreur #VALUE.
Pour rendre la formule encore plus conviviale, vous pouvez utiliser la validation des données pour créer une liste déroulante avec des noms prédéfinis afin d'éviter les erreurs d'orthographe et les fautes d'impression :
Enfin, pour rendre votre formule INDEX absolument parfaite, vous pouvez l'enfermer dans la fonction IFERROR qui invitera l'utilisateur à choisir un élément dans la liste déroulante si aucune sélection n'a encore été effectuée :
=IFERROR(AVERAGE(INDEX((PlanetsD, MoonsD), , , IF(B1="planet", 1, IF(B1="moon", 2)))), "Please select the list !")
Voilà comment utiliser les formules INDEX dans Excel. J'espère que ces exemples vous ont permis d'exploiter le potentiel de la fonction INDEX dans vos feuilles de calcul. Merci de votre lecture !