=REDUCE
Logique Avancé Google Sheets

REDUCE Excel : Accumuler et transformer des tableaux

Maîtrisez la fonction REDUCE d'Excel pour accumuler et transformer des données de tableaux efficacement. Exemples concrets et conseils d'utilisation.

Syntaxe

=REDUCE(valeur_initiale, tableau, lambda(accumulateur, valeur_courante, calcul))
  • valeur_initiale : La valeur de départ de l'accumulateur.
  • tableau : Le tableau de données à traiter.
  • lambda : La fonction LAMBDA à appliquer à chaque élément du tableau. Elle prend deux arguments :
    • accumulateur : La valeur accumulée jusqu'à présent.
    • valeur_courante : L'élément actuel du tableau en cours de traitement.
    • calcul : Le calcul à effectuer pour mettre à jour l'accumulateur.

Utilisation dans Google Sheets

La fonction REDUCE dans Google Sheets est identique à celle d'Excel. Elle permet d'appliquer une fonction LAMBDA pour accumuler des valeurs dans un tableau. Les cas d'utilisation et la syntaxe sont les mêmes, assurant une compatibilité parfaite entre les deux plateformes. Vous pouvez donc utiliser les mêmes formules et techniques décrites pour Excel dans Google Sheets sans modification.

Cas d'utilisation

Analyse financière

Gestion de projet

Traitement de données

Calculs statistiques

Exemples pratiques

Somme des ventes

Données : A1:A10 contient les montants des ventes : 10, 20, 30, 40, 50, 60, 70, 80, 90, 100

=REDUCE(0, A1:A10, LAMBDA(accumulateur, valeur_courante, accumulateur + valeur_courante))

Calcule la somme totale des ventes dans la plage A1:A10. La valeur initiale est 0, et LAMBDA ajoute chaque valeur de vente à l'accumulateur.

Résultat : 550
Concaténation de noms

Données : B1:B5 contient les noms : "Alice", "Bob", "Charlie", "David", "Eve"

=REDUCE("", B1:B5, LAMBDA(accumulateur, valeur_courante, accumulateur & ", " & valeur_courante))

Concatène les noms dans la plage B1:B5, séparés par des virgules. La valeur initiale est une chaîne vide, et LAMBDA ajoute chaque nom à l'accumulateur avec une virgule et un espace.

Résultat : , Alice, Bob, Charlie, David, Eve
Moyenne pondérée

Données : C1:C5 contient les valeurs : 10, 20, 30, 40, 50. D1:D5 contient les poids : 1, 2, 3, 4, 5

=REDUCE(0, SEQUENCE(5), LAMBDA(accumulateur, i, accumulateur + INDEX(C1:C5, i) * INDEX(D1:D5, i)))/SUM(D1:D5)

Calcule la moyenne pondérée des valeurs dans C1:C5, pondérées par les valeurs dans D1:D5. SEQUENCE(5) génère une séquence de nombres de 1 à 5, et LAMBDA multiplie chaque valeur par son poids correspondant et les ajoute à l'accumulateur. Le résultat est ensuite divisé par la somme des poids.

Résultat : 36.666666666666664

Conseils et astuces

Utilisez la fonction LET pour simplifier les formules complexes REDUCE en attribuant des noms aux résultats intermédiaires.

Testez votre fonction LAMBDA séparément avant de l'intégrer à REDUCE pour vous assurer qu'elle fonctionne correctement.

Utilisez des noms de variables descriptifs dans votre fonction LAMBDA pour améliorer la lisibilité.

Décomposez les calculs complexes en étapes plus petites pour faciliter le débogage.

Erreurs courantes

#VALEUR!

Une erreur se produit dans la fonction LAMBDA, par exemple, une division par zéro ou une référence à une cellule non valide.

Vérifiez la logique de votre fonction LAMBDA et assurez-vous que toutes les références de cellules sont correctes.

#REF!

Le tableau spécifié dans REDUCE contient une référence invalide.

Vérifiez que la plage du tableau est correcte et que les cellules référencées existent.

Formules associées