Utilisez les capacités d'importation de Google Sheet pour être plus productif

Publié: 2022-08-04

Aux États-Unis, le sport est un gros business . Environ 154 millions de personnes regardent des événements sportifs en direct au moins une fois par mois. Et ces chiffres devraient grimper chaque année.

Avec le boom du sport, les industries artisanales telles que les sports fantastiques, DFS et les sites de paris sur les accessoires ont donné aux fans une autre raison de regarder (et de s'engager davantage). Ces jeux permettent aux téléspectateurs avisés de gagner beaucoup d'argent en déjouant les autres joueurs (et les paris sportifs) pour gagner des concours en ligne lucratifs.

La principale façon dont les joueurs fantastiques obtiennent un avantage est d'utiliser des algorithmes propriétaires pour projeter les performances des joueurs. Masser les statistiques des joueurs permet aux joueurs de trouver des joyaux statistiques obscurs qu'ils peuvent exploiter pour gagner plus de concours.

Aujourd'hui, nous verrons comment vous pouvez y parvenir à l'aide de Google Sheets. Nous préparerons un hypothétique brouillon fantastique en important les statistiques des joueurs à partir d'un site Web public. Ensuite, nous utiliserons la puissance des fonctions pour transformer, manipuler, filtrer et trier ces données à notre guise.

Toujours en train de copier du contenu dans WordPress ?

Vous vous trompez… dites au revoir pour toujours à :

  • ❌ Nettoyage HTML, suppression des balises span, des sauts de ligne, etc.
  • ❌ Création manuelle de vos liens d'identification d'ancre de table des matières pour tous les en-têtes,
  • ❌ Redimensionner et compresser les images une par une avant de les remettre en ligne dans votre contenu,
  • ❌ Optimisation des images avec des noms de fichiers descriptifs et des attributs de texte alternatif,
  • ❌ Coller manuellement les attributs target="_blank" et/ou "nofollow" à chaque lien
Obtenez 5 exportations gratuites

Table des matières

1. Identifiez votre source de données cible en ligne
2. Importer des données tabulaires dans Google Sheets
3. Limitez les colonnes que vous souhaitez importer
4. Filtrer les lignes importées en fonction de critères personnalisés
5. Générer une sortie Fantasy Point à l'aide d'un champ calculé
6. Trier les lignes en fonction de la colonne calculée

identifiant wpchtmlp=15056

1. Identifiez votre source de données cible en ligne

Les participants des ligues de prix de football Fantasy savent à quel point il est important d'évaluer et de classer les joueurs avant un repêchage de ligue. Les joueurs Fantasy commencent normalement avec les statistiques de la saison précédente lors de l'élaboration de leur classement de joueurs. Ensuite, ils ajustent le classement de leurs joueurs en fonction de divers facteurs :

● Blessures potentielles

● Batailles de position

● Projections de points fantastiques

● Règles de notation de la ligue

● etc.

Pour cet exemple, imaginons que nous créons des classements de joueurs pour le poste de quart-arrière dans une ligue de football Fantasy. J'ai trouvé les données nécessaires publiées sur le site Web de la Ligue nationale de football.

Capture d'écran des statistiques de passage de la NFL 2021

Notre objectif est d'importer ces données statistiques dans les feuilles Google pour créer nos classements personnalisés pour la saison en cours.

2. Importer des données tabulaires dans Google Sheets

La fonction que nous utiliserons pour effectuer l'importation de données est IMPORTHTML. La documentation de Google Sheets pour cette fonction montre que nous devrons fournir trois entrées :

  1. L'url de la page à examiner
  2. La requête que nous voulons effectuer (soit "liste" ou "table", selon le balisage structurel que nous ciblons).
  3. Un index (commençant à 1) indiquant quelle table de la source HTML doit être importée.

Nous avons déjà identifié l'url de la page que nous ciblons. La requête que nous voulons spécifier est la chaîne "table" puisque les informations sont stockées dans un tableau HTML.

Remarque : Si vous souhaitez importer une liste à puces (ou numérotée), spécifiez "liste" au lieu de "table" comme paramètre secondaire.

Enfin, nous devons déterminer où réside notre table cible (séquentiellement) dans le code source HTML de la page elle-même. Pour ce faire, faites un clic droit n'importe où dans la fenêtre du navigateur et sélectionnez "Afficher la source". Ensuite, vous pouvez rechercher la chaîne "<table" pour déterminer l'index correct.

afficher la source sur une capture d'écran de la fenêtre du navigateur

Puisque notre table cible est la première (et la seule) table de cette page, notre index sera 1.

Voici notre formule initiale :

=IMPORTHTML("https://www.nfl.com/stats/player-stats/", "tableau", 1)

Après avoir entré la formule dans A1, voici comment les données apparaissent :

capture d'écran d'importation de code html sur des feuilles de calcul google

Super, c'était facile ! Mais nous pouvons utiliser davantage de fonctionnalités Google Sheets pour améliorer ce processus. Je vois plusieurs lacunes dans notre processus actuel :

  1. Nous n'avons pas besoin de TOUTES les colonnes de la table source. Je souhaite limiter mes données aux seuls champs dont j'ai besoin pour créer mon classement.
  2. Je souhaiterais peut-être spécifier certains critères minimaux qu'un lecteur doit respecter avant de les importer (j'ai des normes !).
  3. J'aimerais une seule colonne supplémentaire qui résume les performances du joueur tout au long de la saison.
  4. Puisque je classe ces joueurs, les meilleurs joueurs devraient être au sommet.

Voyons comment nous pouvons atteindre ces objectifs.

3. Limitez les colonnes que vous souhaitez importer

Il ne sert à rien d'encombrer notre feuille de calcul avec des données inutiles. Heureusement, Google Sheets permet d'importer uniquement les colonnes souhaitées.

En regardant les colonnes de notre table cible, je ne suis intéressé que par quelques-unes des colonnes.

1. Joueur (Colonne 1)

2. Cours de passage (colonne 2)

3. TD (colonne 7)

4. INT (Colonne 8)

Ces colonnes sont toutes les données dont j'ai besoin pour m'aider à classer ces joueurs pour la saison à venir.

vue en colonne après la fonction importhtml feuilles google

Pour limiter les colonnes importées, nous devons encapsuler notre fonction IMPORTHTML dans une fonction de requête. La fonction de requête prend deux paramètres :

  1. Les données représentant la plage de cellules sur laquelle effectuer la requête.
  2. Une requête à effectuer, écrite en Google Visualization API Query Language.

Pour le paramètre data, nous utiliserons l'intégralité de la fonction IMPORTHTML que nous avons déjà construite. Pour la requête, nous fournirons une requête qui cible les colonnes que nous voulons inclure dans notre importation.

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8")

Maintenant, nos données importées ressemblent à ceci, sans colonnes inutiles !

suppression des colonnes inutiles sur les feuilles google

Nous pouvons donc maintenant importer avec succès l'ensemble de données souhaité tout en limitant les colonnes qui apparaîtront dans nos feuilles finales. Mais il reste encore du travail à faire.

4. Filtrer les lignes importées en fonction de critères personnalisés

Pour mon classement, je ne veux considérer que les quarts qui ont lancé au moins 3000 verges. Plus généralement, je souhaite filtrer les lignes importées en fonction de critères dans une colonne spécifique.

Pour créer un filtre, nous allons ajuster notre fonction de requête existante pour inclure une clause WHERE. Plus précisément, nous indiquerons que nous souhaitons uniquement importer les lignes dont la valeur dans Col2 est supérieure ou égale à 3 000.

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8 where Col2 >= 3000")

Maintenant, lorsque nous examinons l'ensemble des résultats, nous pouvons voir que Lamar Jackson (le seul joueur avec moins de 3000 mètres par la passe) est omis. Meilleure chance l'année prochaine !

Remarque : Lamar Jackson est un étalon et nous l'incluons normalement dans notre classement. C'est théorique, les amis !

5. Générer une sortie Fantasy Point à l'aide d'un champ calculé

Nous avons importé avec succès nos statistiques brutes de quart-arrière, ajusté les colonnes à notre goût et filtré certains joueurs indésirables. C'est un bon début pour créer nos classements personnalisés.

Mais les statistiques brutes ne sont pas très utiles lorsqu'il s'agit de sports fantastiques. Ce que nous devons vraiment faire, c'est calculer la production de points de fantaisie pour chaque joueur. C'est un bien meilleur indicateur de succès.

Et bien sûr, nous pourrions ajouter manuellement une autre colonne, en effectuant ce calcul manuellement dans notre feuille. Mais simplifions plutôt les choses en effectuant le calcul pendant le processus d'importation.

Développer une formule pour le calcul des points fantaisie

Alors, quelle est la formule que nous utilisons pour calculer la production de points fantastiques pour les quarts-arrière ?

Il s'avère que cette formule variera d'une ligue à l'autre, en fonction de vos configurations de score spécifiques. Mais pour ce didacticiel, nous utiliserons une formule similaire au système de notation standard :

Points Fantasy = (Pass Yds / 25) + (TDs * 6) – (INTs * 2)

Ajustement de la requête pour inclure le champ calculé

Pour intégrer le champ calculé, nous allons ajuster notre requête existante pour inclure une colonne calculée. Plus précisément, nous voulons ajouter notre calcul de points fantastiques au paramètre de requête de la fonction de requête.

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8, (Col2/25)+(Col7* 6)-(Col8*2) où Col2 >= 3000")

Maintenant, notre feuille de calcul contient la sortie totale de fantaisie pour chaque joueur (une métrique beaucoup plus utile).

calcul d'une requête existante pour inclure une colonne calculée

Mais ce nouvel en-tête de colonne a l'air vraiment bizarre. Ce serait beaucoup plus propre si nous pouvions appliquer une étiquette personnalisée à la colonne ("Points fantastiques", par exemple) l. Il s'avère que c'est possible, bien que la syntaxe soit un peu étrange.

Ce que nous devons faire est d'ajouter plus de données à la fin de notre requête :

1. Le mot clé 'libellé'

2. Répétez le champ calculé

3. L'en-tête de colonne souhaité sous forme de chaîne

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8, (Col2/25)+(Col7* 6)-(Col8*2) où Col2 >= 3000 étiquette (Col2/25)+(Col7*6)-(Col8*2) 'Points fantaisie'")

Maintenant, c'est plus comme ça !

ajouter une étiquette personnalisée à la colonne

Cette colonne Fantasy Points est bien meilleure! Mais je ne pense pas avoir besoin de la partie décimale de ces nombres.

Pour moi, les chiffres décimaux ajoutent un bruit de fond inutile. Voyons donc si nous pouvons arrondir ces chiffres.

Pour ce faire, nous allons appliquer un format personnalisé à notre requête. Plus précisément, nous devons préciser :

1. Le mot clé 'FORMAT'

2. Répétez le champ calculé

3. Le format numérique personnalisé ("#" dans notre cas)

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8, (Col2/25)+(Col7* 6)-(Col8*2) où Col2 >= 3000 étiquette (Col2/25)+(Col7*6)-(Col8*2) FORMAT 'Points fantaisie' (Col2/25)+(Col7*6)-(Col8 *2) '#'")

Maintenant, notre table semble plus propre.

application d'un format numérique personnalisé

Nous avons parcouru un long chemin et avons rationalisé notre processus de collecte de données. Mais nous avons encore une étape pour terminer ce tutoriel.

Puisque cet exercice vise à créer des classements pour ces joueurs, il serait utile de les trier lors de l'importation des données.

Travaillons là-dessus ensuite.

6. Trier les lignes en fonction de la colonne calculée

Nous nous appuierons à nouveau sur notre requête pour spécifier un ordre de ligne initial pour nos données. Nous voulons trier nos lignes par la colonne calculée ("Points Fantasy"). Mais nous voulons le faire par ordre décroissant.

Le tri peut être effectué via la clause ORDER BY DESC. Encore une fois (et malheureusement), nous devrons référencer notre champ calculé complet.

REMARQUE : Vous ne pouvez pas utiliser l'en-tête de colonne de champ calculé dans la clause ORDER BY car, dans l'ordre SQL des opérations, l'alias n'est appliqué qu'après ORDER BY.

Voici notre formule finale :

=query(IMPORTHTML("https://www.nfl.com/stats/player-stats/", "table", 1), "select Col1, Col2, Col7, Col8, (Col2/25)+(Col7* 6)-(Col8*2) où Col2 >= 3000 ORDER BY (Col2/25)+(Col7*6)-(Col8*2) DESC label (Col2/25)+(Col7*6)-(Col8*2 ) FORMAT 'Points fantaisie' (Col2/25)+(Col7*6)-(Col8*2) '#'”)

Notre ensemble de données final est maintenant classé avec les meilleurs joueurs en premier (selon les règles de notation spécifiques de notre ligue).

classer les feuilles en fonction du meilleur joueur en premier

Les fonctionnalités d'importation de données de Google Sheets sont simples mais efficaces

Que vous soyez un passionné de statistiques, un étudiant ou un chercheur, la polyvalence des fonctionnalités d'importation de données dans Google Sheets vous fait gagner un temps considérable. En utilisant les fonctions détaillées dans cet article, vous avez maintenant le pouvoir d'importer, de filtrer, de trier et de manipuler davantage toutes les données que vous pouvez trouver sur Internet.

Et avec plus de 6 milliards de pages Web (et plus), il semble que vous allez être très occupé.