web-dev-qa-db-fra.com

Aligner les lignes d'une feuille avec les lignes d'une feuille importée

J'ai un tableur de noms d'employés. J'utilise = IMPORTRANGE () pour importer les noms dans une autre feuille de calcul qui permet de suivre les dépenses en lignes à côté de chaque nom d'employé importé.

Le problème est que lorsque quelqu'un ajoute un autre nom à la première feuille de calcul et le trie par ordre alphabétique, l'ordre des noms dans la deuxième feuille de calcul (importé à l'aide de = IMPORTRANGE ()) change pour refléter le changement dans la première feuille de calcul.

Malheureusement, les données dans les lignes associées aux noms de la deuxième feuille de calcul ne bougent pas aussi bien. Celles-ci restent statiques et le nom de John finit par être associé aux données de Ted.

J'aimerais pouvoir "attacher" les autres données des lignes de la deuxième feuille de calcul au nom afin que, lorsque les noms changent de ligne, toutes les données de la ligne associée se déplacent avec le nom.

Est-ce possible?

3
GabeBrady

importrange ne va pas réorganiser les lignes. Il importe uniquement des données.

La cause fondamentale est une structure de données médiocre: la deuxième feuille de calcul (avec les dépenses) ne contient aucune information sur les dépenses correspondantes. Cela ne devrait pas être une gestion de données acceptable: chaque table doit avoir une colonne pouvant être utilisée comme identifiant. (Idéalement, un identifiant numérique d'employé plutôt que son nom et placé de préférence dans la colonne A). Si vous avez une colonne d'identification, vous pouvez rechercher les données de chaque personne à l'aide de la combinaison arrayformula(vlookup(...)). Exemple:

=arrayformula(VLOOKUP(A2:A20, importrange("key", "Sheet1!A1:B30"), 2, false))

Cette formule importe la colonne B d'une autre feuille de calcul, mais place les données de sorte que la colonne d'identification A corresponde à celle de la colonne A de la feuille en cours. C'est un lien solide entre deux tables.


Si vous souhaitez conserver l'approche actuelle, vous pouvez au mieux ajouter une colonne "date d'ajout" pour chaque employé et accepter de toujours trier en fonction de cette colonne *. Ensuite, le nouvel employé apparaîtra toujours en bas.

(*) C'est-à-dire jusqu'à ce que quelqu'un oublie et trie une feuille par ordre alphabétique, ce qui entraîne des frais facturés à une mauvaise personne.

1
user79865