Comment extraire des nombres en excluant les dates d’une plage dans Google Sheets

Est-ce que vous savez pourquoi la fonction ISNUMBER ne nous aide pas à extraire des nombres en excluant les dates d’une plage dans Google Sheets ? C’est parce que cette fonction renverra VRAI si la cellule testée contient un nombre ou une date. Cela pose un défi lors de l’extraction des nombres en excluant les dates d’une cellule ou d’une plage dans Google Sheets.

Deux autres fonctions que nous pouvons essayer en tant qu’alternatives sont TYPE et N. Ces deux fonctions ont le même problème. La fonction TYPE renverra 1 pour les nombres et les dates, et 2 pour les textes. De plus, nous ne pouvons pas l’utiliser dans une plage. D’autre part, la fonction N renverra la valeur de la date si la cellule testée contient une date, le même nombre si la cellule contient un nombre, sinon 0.

Alors quelle est la solution pour extraire des nombres en excluant les dates d’une plage dans Google Sheets ? Comment différencier un nombre d’une date en utilisant une formule dans Google Sheets ? Si vous voulez extraire à la fois des nombres et des dates (qui sont tous des nombres dans Google Sheets) d’une plage, veuillez suivre ce guide : Comment copier uniquement les nombres de plusieurs colonnes dans Google Sheets.

Comment exclure les dates lors de la copie des nombres dans Google Sheets (Formule)

Pour copier/extraire des nombres en excluant les dates (puisque les dates sont des nombres), nous pouvons utiliser une combinaison clé des fonctions ISNUMBER et DATEVALUE.

Voici la formule en quelques étapes afin que je puisse éviter de vous expliquer la formule en détail. C’est parti !

Différents types de valeurs dans la fonction ISNUMBER

Pour tester si une cellule, par exemple la cellule A1, contient un nombre ou une date, et non une chaîne de caractères, nous pouvons utiliser la formule suivante :

=isnumber(A1)

ISNUMBER avec différents types de valeurs

Analyse du résultat de la formule ISNUMBER

  • Si A1 = Nombre, le résultat sera VRAI.
  • Si A1 = Texte, le résultat sera FAUX.
  • Si A1 = Date, le résultat sera VRAI.

Maintenant, passons à la deuxième fonction clé de la combinaison.

Différents types de valeurs dans la fonction DATEVALUE

Autant que je sache, il n’y a pas de fonction capable de tester si une cellule contient uniquement un nombre, pas une date ou un texte. Mais heureusement, nous avons une fonction capable d’identifier les dates dans une cellule. Cette fonction est DATEVALUE.

Je sais qu’il y a aussi la fonction ISDATE, mais elle ne convient pas à notre objectif. Pourquoi ? Nous voulons extraire des nombres en excluant les dates d’une plage, pas d’une seule cellule dans Google Sheets. ISDATE ne renverra pas une plage, à l’inverse de DATEVALUE. Il n’y a donc pas d’intérêt à utiliser ISDATE dans notre formule de combinaison.

La fonction DATEVALUE renverra une erreur #VALUE! si la cellule testée ne contient pas de date. Cela signifie que, en l’entourant de la fonction IFERROR qui supprime les erreurs, nous pouvons obtenir une valeur nulle si la cellule contient un texte ou un nombre.

Voici la formule :

=iferror(DATEVALUE(A1)>0)

Analyse du résultat de la formule DATEVALUE

  • Si A1 = Nombre, le résultat sera vide.
  • Si A1 = Texte, le résultat sera vide.
  • Si A1 = Date, le résultat sera VRAI.

Combinaison de ISNUMBER et DATEVALUE pour extraire des nombres en excluant les dates dans Google Sheets

À partir des deux formules ci-dessus, nous pouvons en conclure ce qui suit :

  • Si la sortie de la formule #1 + la sortie de la formule #2 = 1, la cellule en question contient un nombre.
  • Si la sortie de la formule #1 + la sortie de la formule #2 = 0, la cellule contient un texte.
  • Si la sortie de la formule #1 + la sortie de la formule #2 = 2, la cellule contient une date.

Il faut noter que le faux booléen est 0 et le vrai est 1.

L’illustration ci-dessous vous aidera à mieux comprendre la combinaison de la formule 1 et de la formule 2.

Combinaison de ISNUMBER et DATEVALUE

Selon ce qui précède, pour extraire la valeur de la cellule A1 si c’est un nombre et non une date ou un texte, nous pouvons utiliser la formule suivante :

=if( isnumber(A1)+ iferror(DATEVALUE(A1)>0) =1,A1, )

La fonction logique IF renverra la valeur de la cellule A1 si le résultat de la combinaison est égal à 1, sinon la cellule restera vide.

Mes valeurs sont dans A1:C10. Pour extraire des nombres en excluant les dates ainsi que les chaînes de caractères d’une plage, utilisez la version tableau de la formule ci-dessus :

=ArrayFormula( if( isnumber(A1:C10)+ iferror(DATEVALUE(A1:C10)>0) =1,A1:C10, ) )

Si la formule se trouve dans « Feuille2 » et que les valeurs se trouvent dans « Feuille1 », alors A1:C10 doit être remplacé par Feuille1!A1:C10.

Formule pour aplatir les nombres extraits en excluant les dates d’une plage

La plage A1:C10 ci-dessus contient 3 colonnes et plusieurs cellules vides. En utilisant la fonction FLATTEN, nous pouvons aplatir les valeurs en une seule colonne.

=flatten( ArrayFormula( if( isnumber(A1:C10)+ iferror(DATEVALUE(A1:C10)>0) =1,A1:C10, ) ) )

Enfin, utilisez la fonction QUERY pour supprimer les cellules vides de la colonne aplatie.

=query( flatten( ArrayFormula( if(isnumber(A1:C10)+iferror(DATEVALUE(A1:C10)>0)=1,A1:C10,) ) ), "Select * where Col1 is not null" )

Et voilà comment extraire des nombres en excluant les dates d’une plage dans Google Sheets.

Articles en lien