Comment utiliser IMPORTRANGE dans la fonction FILTER de Google Sheets

Il existe des scénarios spécifiques pour lesquels vous devriez envisager d’utiliser IMPORTRANGE dans la fonction FILTER de Google Sheets. Habituellement, je recommande d’utiliser la fonction QUERY avec IMPORTRANGE pour importer des données d’un fichier Google Sheets à un autre avec un filtre appliqué. Cependant, je ne le recommande pas lorsque vous avez des types de données mixtes dans une seule colonne des données source.

Imaginez que vous ayez une colonne dans le tableau à importer contenant le texte « reporté » dans quelques cellules et des valeurs de dates dans la plupart des autres cellules. La fonction QUERY considérera cette colonne comme un type de données de date car c’est le type de données majoritaire et ignorera les textes. Ainsi, vous verrez moins de lignes dans votre sortie.

La solution consiste à utiliser IMPORTRANGE dans la fonction FILTER. Mais lors de son utilisation, il est essentiel de prendre en compte les performances des calculs répétitifs. De nombreux experts suggèrent la syntaxe suivante, qui effectue le calcul de l’IMPORTRANGE plus d’une fois, ce qui ralentit les performances de votre fichier :

=filter(importrange,index(importrange,0,1)=criterion)

Notez que l’INDEX renvoie la colonne à laquelle appliquer la condition.

Importer des données d’une feuille à une autre dans Google Sheets

Voici un exemple pour illustrer comment importer des données d’une feuille nommée « dépenses – mai » d’un fichier dans les colonnes A, B et C d’un autre fichier :

  1. Copiez et collez la syntaxe ci-dessus dans la cellule A1 d’un nouveau fichier.
  2. Accédez à l’onglet « dépenses – mai » dans le fichier de contenu et copiez l’URL à partir de la barre d’adresse.
  3. Remplacez « spreadsheet_url » par l’URL copiée et « range_string » par le nom de l’onglet « dépenses – mai » dans la syntaxe de la cellule A1.
  4. Entourez l’URL et le nom de l’onglet de guillemets doubles.
  5. Remplacez « dépenses – mai » par ‘dépenses – mai’!A1:C dans la syntaxe de la cellule A1 afin qu’il devienne une plage appropriée à importer.
  6. Ajoutez le signe égal en face de la syntaxe pour que Sheets la reconnaisse comme une formule.
  7. Appuyez sur la touche « Entrée ».

La feuille commencera à importer les données et vous verrez une erreur #REF pour la première fois. Survolez cette erreur et donnez l’autorisation d’importer le contenu.

Filtrer les données importées : la méthode traditionnelle

Cette partie vise à comprendre comment le calcul répétitif affecte votre feuille. Nous avons importé tout le contenu d’une feuille (fichier) dans une autre. Comment appliquer un filtre à l’importation ?

Par exemple, comment n’importer que les catégories « papeterie » d’une feuille à une autre dans Google Sheets ? Voici l’approche traditionnelle :

Formule générique (Une condition) :

=filter(import_range_formula,index(import_range_formula,0,2)="Stationery")

Remplacez « import_range_formula » par la formule originale que vous pouvez trouver sous le sous-titre « Importation de données d’une feuille à une autre dans Google Sheets » ci-dessus. Copiez uniquement la formule après le signe égal et collez-la.

Comme vous pouvez le constater, vous souhaitez utiliser IMPORTRANGE deux fois dans la fonction FILTER. Sheets doit importer les mêmes données deux fois, ce qui affecte les performances. Si vous souhaitez ajouter une autre condition à partir d’une autre colonne, par exemple la colonne de dates, la situation empire encore.

Formule générique (Deux conditions) :

=filter(import_range_formula,index(import_range_formula,0,2)="Stationery",index(import_range_formula,0,1)=date(2023,5,24))

Les chiffres mis en évidence représentent les numéros de colonne (positions relatives des colonnes dans la plage sélectionnée) dans le fichier source.

La bonne façon d’utiliser IMPORTRANGE dans la fonction FILTER

Google Sheets dispose maintenant de la fonction LET, qui permet d’éviter les calculs répétitifs et d’améliorer les performances des formules. Vous pouvez attribuer un nom à la formule IMPORTRANGE à l’aide de la fonction LET et l’appeler dans la fonction FILTER. Cela évite le calcul répétitif de la formule IMPORTRANGE.

Par exemple, importons uniquement les données correspondant à la catégorie « papeterie », comme précédemment :

=filter(import,index(import,0,2)="Stationery")

Ici, nous avons utilisé LET pour attribuer le nom « import » et l’appelons une fois dans FILTER.

Et pour plusieurs critères, par exemple, filtrer « papeterie » pour la date du 24/05/2023 :

=filter(import,index(import,0,2)="Stationery",index(import,0,1)=date(2023,5,24))

Grâce à la fonction LET, nous pouvons éviter d’utiliser plusieurs formules IMPORTRANGE lors de son utilisation dans la fonction FILTER pour filtrer les lignes. Cela peut considérablement améliorer les performances des formules.

Remember, if you want to learn more about Google Sheets or other SEO tools, check out my website Crawlan.com! I have plenty of resources to help you excel in your marketing endeavors.

Articles en lien