Formule matricielle DGET pour parcourir une colonne dans Google Sheets

Imaginez que vous avez effectué des recherches approfondies et que vous ne trouvez personne utilisant une formule matricielle DGET pour parcourir une colonne dans Google Sheets.

Les forums populaires de Google Sheets regorgent de questions sur le sujet, sans réponse ou avec des solutions alternatives utilisant les fonctions QUERY, FILTER ou VLOOKUP.

C’est parce que la fonction de base de données DGET ne prend pas en charge une colonne de critères dans Google Sheets. Vous ne pouvez donc pas vous attendre à obtenir un résultat de matrice en expansion à l’aide de DGET sous sa forme standard.

Syntaxe :
DGET(base de données, champ, critères)

Mais j’ai trouvé un moyen de contourner cette limitation en utilisant la formule DGET elle-même pour l’utiliser en tant que formule matricielle pour parcourir une colonne sans la faire glisser vers le bas.

Par exemple, regardez la formule ci-dessous. Elle utilise un seul critère dans la cellule G2.

=DGET($A$1:$E,"Maths",{"Prénom";G2})

Et que dire de G2:G ci-dessous ?

=ArrayFormula(DGET($A$1:$E,"Maths",{"Prénom";G2:G}))

Vous obtiendrez l’erreur #NUM!. L’info-bulle dira :

Plus d’une correspondance trouvée dans l’évaluation de DGET.

De même, celle-ci fonctionnera :

=DGET($A$1:$E,"Maths",{"Prénom","Nom";G2,H2})

Mais pas celle-ci :

=ArrayFormula(DGET($A$1:$E,"Maths",{"Prénom","Nom";G2:G,H2:H}))

Dans ce tutoriel, vous allez apprendre comment écrire une formule matricielle DGET dans Google Sheets qui parcourt une colonne pour produire un résultat étendu.

Bien sûr, nous pouvons utiliser VLOOKUP à cette fin. Je vais également partager cette formule avec vous.

Formule matricielle DGET pour obtenir des résultats étendus par ligne dans Google Sheets

Dans la base de données suivante, je veux trouver les notes de « Rita », « Paula » et « Joan » (G2:G) pour la matière « Maths ».

Comme vous pouvez le voir, j’ai utilisé trois formules de base de données pour cela dans la plage de cellules H2:H4.

Exemple de formule DGET - Utilisation standard

Remarque : Sur l’image, j’ai utilisé la fonction FORMULATEXT dans la plage I2:I4 pour vous montrer les formules dans la plage H2:H4. Comme vous pouvez le voir, j’ai utilisé la fonction ArrayFormula avec les formules. Ce n’est pas nécessaire.

Cela signifie que j’ai fait glisser (copié-collé) la formule H2 ci-dessous dans la colonne.

=DGET($A$1:$E,"Maths",{"Prénom";G2})

La formule DGET dans H2 ne peut pas se développer d’elle-même à l’aide de la fonction ArrayFormula. Cela signifie que remplacer la référence de cellule G2 par G2:G n’est pas fructueux.

Nous devons réécrire la formule. Voici la logique et les étapes.

Logique

Il est important de noter que la fonction DGET de Google Sheets accepte plusieurs numéros/étiquettes de « champ ».

Voici un exemple :

=ArrayFormula(DGET($A$1:$E,{"Maths","Chimie"},{"Prénom";G2}))

Dans cette formule, les deux champs sont « Maths » et « Chimie ».

Deux champs dans une formule de base de données

Nous pouvons utiliser cette capacité pour écrire la formule matricielle DGET dans Google Sheets.

Comment ?

Nous allons transposer (changer l’orientation) la base de données (plage) pour utiliser les critères en tant que champs et vice versa.

Vous pouvez apprendre cela ci-dessous.

Formule et explication

Formule de la formule matricielle DGET (expansion par ligne) :

=ArrayFormula(IFERROR(dget(TRANSPOSE(A1:E),G2:G,{"Prénom";"Maths"})))

J’ai transposé la base de données. J’ai donc utilisé les critères en tant que champs et les champs en tant que critères.

Veuillez noter que pour obtenir les notes d’une autre colonne, par exemple la colonne « Chimie », insérez la même formule dans la cellule I2, puis remplacez « Maths » par « Chimie » dans la formule I2.

Explication de la formule :

J’ai déjà expliqué comment écrire une formule matricielle DGET dans Google Sheets ci-dessus. Voici plus de détails.

  • Base de données : TRANSPOSE(A1:E)

Notre base de données réelle se trouve dans la plage A1:E. Au lieu de l’utiliser, nous avons utilisé la plage transposée A1:E en utilisant la fonction TRANSPOSE.

  • Champ : G2:G

Dans notre base de données transposée, la première ligne devient la première colonne, la deuxième ligne devient la deuxième colonne, et ainsi de suite (veuillez vous référer à la capture d’écran ci-dessous).

DGET Array Formula Explained in Google Sheets

Ainsi, notre colonne de critères réelle deviendra des champs (lignes). C’est pourquoi j’ai utilisé la colonne de critères G2:G comme champs.

  • Critères : {"First Name";"Maths"}

Ici, nos champs réels deviennent les critères.

Dans votre feuille, cela ressemblera à ceci (lors des tests, utilisez uniquement la plage de cellules A1:E8 dans TRANSPOSE pour éviter les problèmes).

DGET Array Formula Explained in Google Sheets

Pouvez-vous me fournir une alternative de Vlookup à la formule ci-dessus ?

Bien sûr ! Voici :

=ArrayFormula(IFNA(vlookup(G2:G,A2:E,3,0)))

Ce Vlookup est très facile à utiliser et à comprendre par rapport à la formule matricielle DGET ci-dessus – Comment utiliser Vlookup pour retourner un résultat de matrice dans Google Sheets.

Qu’est-ce que j’essaie de prouver alors ?

Nous pouvons utiliser la fonction DGET pour renvoyer un résultat de matrice en expansion par ligne dans Google Sheets.

Formule matricielle DGET avec critères dans deux colonnes dans Google Sheets

Que dire de la formule qui ne fonctionne pas ci-dessous ?

=ArrayFormula(DGET($A$1:$E,"Maths",{"Prénom","Nom";G2:G,H2:H}))

Pouvons-nous la rendre fonctionnelle en transposant la base de données comme précédemment ?

La réponse est « OUI », mais ici nous devons suivre une approche légèrement différente.

Voici la formule :

=ArrayFormula(IFERROR(dget(TRANSPOSE({A1:A&" "&B1:B,C1:E}),G2:G&" "&H2:H,{"Prénom Nom";"Maths"})))

Nous devons combiner les colonnes de critères dans la TRANSPOSE (avant de changer l’orientation de la base de données) et également les critères qui agissent en tant que champs.

J’espère que l’illustration ci-dessous vous aidera à comprendre clairement ce concept de formule matricielle DGET.

Deux colonnes de critères dans la formule matricielle DGET

Veuillez transposer la plage comme indiqué ci-dessous dans votre feuille, et vous pourrez lire le reste de la formule.

=ArrayFormula(TRANSPOSE({A1:A8&" "&B1:B8,C1:E8}))

Je recommande sérieusement le Vlookup suivant.

=ArrayFormula(vlookup(G2:G&H2:H,{A2:A&B2:B,C2:E},2,0))

C’est tout. Merci de votre attention. Profitez-en !

Resources:

Articles en lien