La formule suivante fournit un autre moyen d'afficher dans Workbook1 le texte d'une ligne de six cellules dans Workbook2, si la cellule A1 dans Workbook2 est égale à une valeur "X".
Il s’agit d’une formule matricielle. Vous devez donc sélectionner les six cellules de Workbook1 dans lesquelles vous souhaitez afficher les valeurs de texte, coller ou taper la formule dans la barre de formule, puis compléter la saisie avec Ctrl + Décalage + Entrer . La formule affichera des tirets ("-") dans les cellules s'il n'y a pas de "X" dans la cellule A1 de Workbook2. (Par souci de simplicité, je suppose que les valeurs des deux classeurs sont dans la feuille Sheet1.)
=IF([Workbook2.xlsx]Sheet1!$A$1="X",OFFSET([Workbook2.xlsx]Sheet1!$B$1,0,0,1,6),"-")
La partie clé de la formule est la fonction OFFSET, qui prend les arguments suivants:
- UNE référence de cellule , dans ce cas $ B $ 1
- UNE décalage de ligne , le nombre de lignes vers le haut (un nombre négatif) ou vers le bas (un nombre positif) que la plage de cellules que vous souhaitez renvoyer commence
- UNE décalage de colonne , le nombre de colonnes à gauche (négatives) ou à droite (positives) commençant par la plage à renvoyer
- le la taille , ou nombre de lignes dans la plage que vous voulez renvoyer
- le largeur , ou le nombre de colonnes dans la plage que vous voulez renvoyer.
Dans la formule, la référence de cellule est $ B $ 1, la ligne décalée de $ B $ 1 est 0, la colonne décalée de $ B $ 1 est 0, la hauteur des valeurs à renvoyer est 1 ligne et la largeur est 6 colonnes . Ici, la fonction OFFSET renverra les valeurs dans les cellules B1: G1 si "X" est une correspondance. Si le décalage de ligne avait été 2 et le décalage de colonne 4, les valeurs des cellules F3: K3 seraient renvoyées.