web-dev-qa-db-fra.com

Formule de tableau pour la colonne entière dans Google Sheets avec une recherche ne fonctionnant pas

Je travaille sur l'automatisation d'une feuille de rapport et découvre l'utilisation très pratique de arrayformula dans Sheets qui remplit automatiquement la colonne avec votre formule en fonction des données d'une autre colonne.

Quoi qu'il en soit, chaque fois que j'essaie cette approche avec une formule de recherche, elle utilise uniquement la deuxième ligne de la colonne avec laquelle elle recherche et remplit ensuite toutes les lignes avec le résultat de la recherche par rapport à la première ligne.

J'ai essayé d'utiliser INDEX MATCH et VLOOKUP.

Avec INDEX MATCH, la formule ne faisait pas l'unanimité et ne donnait aucun résultat.

Avec VLOOKUP, j'obtiens le problème mentionné ci-dessus, où il ne fait que comparer la deuxième ligne.

La formule VLOOKUP que j'ai actuellement est la suivante:

=arrayformula( if(B:B<>"",IF( row(B:B)=1, "Country",vlookup(D:D,FBlookup!$A$3:$B$20,2))))

Est-ce que je fais quelque chose de mal ou est-ce que des recherches, en particulier sur une table d'une autre feuille, ne fonctionnent pas comme une formule de remplissage automatique d'une colonne?

1
George S

On dirait que vous essayez de créer un titre dans la ligne 1, puis en dessous, lancez un vlookup s’il existe une valeur dans la colonne B - Cela fonctionne

={"Country";arrayformula(if(len(B2:B)>0,vlookup(D2:D,FBlookup!$A$3:$B$20,2,false),))}
1

En regardant de plus près, j'ai réalisé que j'avais manqué l'argument FAUX à la fin de la formule vlookup qui était en cause. C'est ce qui se passe lorsque vous utilisez uniquement INDEX MATCH ...

N'explique toujours pas pourquoi la formule INDEX MATCH examine uniquement l'en-tête au lieu de prendre de manière dynamique la ligne de données pertinente à rechercher.

=arrayformula( if(B:B<>"",IF( row(B:B)=1, "Country",index($O$2:$O$19,match(D:D,$N$2:$N$19,0)))))
0
George S