Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Extraire une ligne sur deux
Grâce à une nouvelle
formule matricielle audacieuse, nous allons voir comment il est possible de réaliser des
extractions alternées de données à partir d'un tableau source.
Sur l'exemple illustré par la capture, un premier tableau présente les résultats enregistrés pour chaque semaine des douze mois de l'année. Dans un second tableau sur la droite, c'est l'
extraction alternée de ces scores qui est réalisée. En effet, la restitution débute à partir du mois de Février. Elle se poursuit sur le mois d'Avril et ainsi de suite.
Classeur Excel à télécharger
Pour la mise en place de la solution, nous suggérons d'appuyer les travaux sur un
classeur Excel offrant ce tableau des résultats à extraire.
Nous retrouvons bien le tableau des résultats avec sur sa droite, le tableau devant accueillir les
extractions alternées. Le
tableau d'extraction est nommé
tab. Vous pouvez le constater en déployant la
zone Nom en haut à gauche de la
feuille Excel. Cet intitulé représente toutes les cellules de la source.
Nous exploiterons ce nom dans l'élaboration de la
formule matricielle pour alléger sa syntaxe.
Débuter l'extraction alternée
Nous allons engager un
raisonnement matriciel consistant à passer en revue tour à tour chaque ligne et chaque colonne du tableau d'origine. Comme dans le volet précédent, nous allons exploiter la
fonction Index pour initialiser l'
extraction alternée des données.
- Sélectionner toutes les cellules du tableau de destination, soit la plage H5:L11,
- Taper le symbole égal (=) pour initier la syntaxe de la formule matricielle,
- Inscrire la fonction d'extraction suivie d'une parenthèse, soit : Index(,
- Désigner le tableau d'extraction par son nom, soit : tab,
- Puis, taper un point-virgule (;) pour passer dans l'argument de l'indice de ligne,
Analyser chaque ligne du tableau
Comme nous l'avons fait dans le volet précédent pour réunir les colonnes séparées, en guise d'indice de ligne, nous allons désigner
toutes les lignes du tableau grâce à une
matrice virtuelle de chiffres. Cette
matrice devra être interprétée par une
fonction Excel dédiée. En effet et vous le savez, les
calculs matriciels engagent des
raisonnements récursifs capables d'analyser les éléments tour à tour. Et c'est que nous allons entreprendre ici.
- Inscrire la fonction donnant l'indice de ligne suivie d'une parenthèse, soit : Ligne(,
Nous l'avons dit. Ce n'est pas une seule ligne qui nous intéresse, mais toutes. C'est ici donc que débute la construction de la
matrice virtuelle à interpréter.
- Inscrire la fonction d'interprétation suivie d'une parenthèse, soit : Indirect(,
- Entre guillemets, taper le chiffre 1 suivi du symbole deux points, soit : "1:",
Nous annonçons ainsi la
borne supérieure de la
matrice. Elle désigne la première ligne du
tableau d'extraction. Le symbole deux points annonce quant à lui la borne inférieure à suivre. Nous devons la calculer en fonction de la hauteur du tableau. Donc, nous devons concaténer cette information. Et pour la trouver, nous allons exploiter l'homologue de la fonction Ligne au pluriel, soit la
fonction Lignes.
- Ajouter un espace suivi du symbole de concaténation (&) suivi d'un nouvel espace,
- Inscrire la fonction comptant les lignes d'un tableau, suivie d'une parenthèse, soit : Lignes(,
- Désigner le tableau d'extraction par son nom, soit : tab,
- Fermer la parenthèse de la fonction Lignes,
- Fermer la parenthèse de la fonction Indirect,
- Puis, fermer la parenthèse de la fonction Ligne,
Nous sommes ainsi de retour dans l'argument de l'
indice de ligne de la
fonction Index.
Considérer une ligne sur deux
Nous venons de désigner toutes les lignes à analyser certes. Mais rappelons-le, nous souhaitons réaliser une
extraction alternée. Sur cette hauteur totale, nous ne devons donc considérer qu'une
ligne sur deux.
- Multiplier le précédent résultat par 2, soit : *2,
- Puis, retrancher une unité à ce score, soit : -1,
En effet et rappelons-le, ce
raisonnement matriciel va considérer les indices de lignes de la matrice tour à tour. Pour le premier, le résultat va conduire à la ligne 1*2-1, soit toujours à la première ligne. Pour le deuxième, le résultat va conduire à la ligne 2*2-1, soit à la ligne 3, pour le troisième à 3*2-1, soit à la ligne 5 et ainsi de suite. Cette petite astuce indique donc bien à la formule d'extraction de focaliser son attention
une ligne sur deux en partant de la première.
- Taper un point-virgule (;) pour passer dans l'indice de colonne de la fonction Index,
Désigner toutes les colonnes pour l'extraction
Là encore, il n'est pas question de désigner seulement l'une des colonnes du tableau d'extraction. Comme précédemment avant le calcul pour l'alternance, elles doivent toutes être considérées. Et pour cela, la technique est la même. Il suffit simplement de remplacer les
fonctions Ligne et Lignes, respectivement par les
fonctions Colonne et Colonnes.
- Construire la matrice virtuelle suivante : Colonne(Indirect("1:" & Colonnes(tab))),
- Fermer la parenthèse de la fonction Index,
- Puis, valider la formule matricielle par le raccourci clavier CTRL + MAJ + Entrée,
Rappelons-le, ce raccourci clavier est nécessaire jusqu'à la version 2016 incluse pour qu'Excel comprenne qu'il s'agit d'un
raisonnement matriciel.
Et comme vous pouvez l'apprécier, ce sont bien tous les
résultats alternés un mois sur deux qui sont extraits dans le tableau final.
La syntaxe complète de la
formule matricielle que nous avons construite est la suivante :
=INDEX(tab;LIGNE(INDIRECT("1:" & LIGNES(tab)))*2-1; COLONNE(INDIRECT("1:" & COLONNES(tab))))