Afficher plusieurs cellules si les données d'un autre classeur contiennent la valeur «X»

1

J'exporte quotidiennement un rapport complexe et je transfère cette information manuellement dans une autre feuille Excel. Ma question est la suivante: dans le classeur 1, puis-je obtenir un groupe de cellules dans une ligne pour afficher le texte du classeur 2 (les données brutes) si la première cellule affiche la valeur "x"? Ce que j'exporte, c'est une liste quotidienne contenant un numéro de cours que je change manuellement en numéro de pièce d'accueil, nom, grade, etc. .

Donc, ce que j'essaie de trouver, c'est quelque chose comme "Afficher les cellules 2, 3, 4, 5, 6, 7 du classeur deux si le classeur 2, la cellule 1, a la valeur" X ".

user196829
la source

Réponses:

1

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.

chuff
la source
0

Je suppose que vos données Workbook2 commencent en ligne 1, et que vous voulez dire «Afficher les cellules des colonnes B, C, D, E, F, et G … Si la valeur dans la colonne A est un «X». » Dans la première cellule du classeur 1 où vous souhaitez commencer à afficher les données du classeur 2 (qui proviendra de B1), tapez

=IF(' path_to_Workbook2 [ filename_of_Workbook2, y compris .xlsx ] Sheet1 '! $ A1 = "X",
' path_to_Workbook2 [ filename_of_Workbook2 ]Sheet1'!B1, "")

Puis glissez / remplissez ça dans la colonne F et vers le bas autant de lignes que vous avez besoin. Évidemment, si votre feuille est nommée autrement Sheet1, changez cela.

Scott
la source
0

Utilisez VLookup:

Vlookup($A:$A,[OtherWorkbook.xls]OtherWorksheet!$A:$G,2,false)

bronx72
la source
1
Le style de votre réponse est plus approprié pour un commentaire que pour une réponse. Les demandes doivent être des commentaires. les réponses sont généralement données dans un style assertif. Merci d'avoir participé!
Nevin Williams