web-dev-qa-db-fra.com

Comment importer des données d'une feuille à une autre

J'ai deux feuilles de travail différentes dans Excel avec les mêmes en-têtes dans toutes les cellules de la ligne 1 (a1 = id, b1 = nom, c1 = prix). Ma question est la suivante: y a-t-il un moyen d'importer des données (comme le nom) d'une feuille de calcul à l'autre où "l'identifiant" est le même dans les deux feuilles de calcul.

eg.
sheet 1                             sheet2
ID      Name       Price            ID        Name        Price
xyz     Bag        20               abc                     15
abc     jacket     15               xyz                     20

Alors y a-t-il un moyen d'ajouter le "Nom" dans la feuille 1 le "Nom" dans la feuille 2 où le "ID" dans la feuille 1 = "ID" dans la feuille 2?

Sans copier-coller bien sûr Merci

5
Hip Hip Array

VLookup

Vous pouvez le faire avec une simple formule RECHERCHEV. J'ai mis les données dans la même feuille, mais vous pouvez également référencer une feuille de calcul différente. Pour la colonne de prix, changez simplement la dernière valeur de 2 à 3, car vous faites référence à la troisième colonne de la matrice "A2: C4". VLOOKUP example

Référence externe

Pour référencer une cellule du même Workbook, utilisez le modèle suivant:

<Sheetname>!<Cell>

Exemple:

Table1!A1

Pour référencer une cellule d'un différent Workbook, utilisez ce modèle:

[<Workbook_name>]<Sheetname>!<Cell>

Exemple:

[MyWorkbook]Table1!A1
10
das_weezul

J'ai vu ce fil en cherchant autre chose et je sais qu'il est super vieux, mais je voulais ajouter mes 2 cents.

N'UTILISEZ JAMAIS RECHERCHEV. C'est l'une des formules les moins performantes d'Excel. Utilisez plutôt la correspondance d'index. Cela fonctionne même sans trier les données, sauf si vous avez un -1 ou 1 à la fin de la formule de correspondance (expliqué plus bas)

Voici un lien avec les formules appropriées.

La formule de la feuille 2 serait la suivante: = IF (A2 = "", "", INDEX (Sheet1! B: B, MATCH ($ A2, Sheet1! $ A: $ A, 0)))

  • IF (A2 = "", "", signifie que si A2 est vide, renvoie une valeur vide
  • INDEX (Sheet1! B: B, dit INDEX B: B où B: B est les données que vous voulez renvoyer. IE la colonne de nom.
  • Match (A2, signifie Match A2 qui est l'ID pour lequel vous voulez renvoyer le nom.
  • Sheet1! A: A, indique que vous voulez faire correspondre A2 à la colonne ID de la feuille précédente
  • , 0)) spécifie que vous voulez une valeur exacte. 0 signifie retourner une correspondance exacte à A2, -1 signifie renvoyer la plus petite valeur supérieure ou égale à A2, 1 signifie renvoyer la plus grande valeur inférieure ou égale à A2. Gardez à l'esprit que -1 et 1 doivent être triés.

Plus d'informations sur la formule Index/Match

Autres faits amusants: $ signifie absolu dans une formule. Donc, si vous spécifiez $ B $ 1 lorsque vous remplissez une formule vers le bas ou au-dessus, vous gardez cette même valeur. Si vous dépassez $ B1, le B reste le même dans toute la formule, mais si vous remplissez, le 1 augmente avec le nombre de lignes. De même, si vous avez utilisé B $ 1, le remplissage vers la droite incrémentera le B, mais gardera la référence de la ligne 1.

J'ai également inclus l'utilisation de l'indirect dans la deuxième section. Ce que fait indirecte, c'est vous permettre d'utiliser le texte d'une autre cellule dans une formule. Depuis que j'ai créé une plage nommée sheet1! A: A = ID, sheet1! B: B = Name, and sheet1! C: C = Price, je peux utiliser le nom de colonne pour avoir exactement la même formule, mais il utilise l'en-tête de colonne pour modifier les critères de recherche.

Bonne chance! J'espère que cela t'aides.

6
Katina