Excel 365LogiqueAvancé

Fonction FONCTION.APPELANTEIdentifier la cellule appelante dans LAMBDA

La fonction FONCTION.APPELANTE (CALLER en anglais) retourne une référence à la cellule qui a appelé la formule. Elle est principalement utilisée dans les fonctions LAMBDA pour créer des formules personnalisées qui peuvent connaître leur position et adapter leur comportement en conséquence.

C'est une fonction très spécialisée, utile pour les développeurs Excel avancés qui créent des fonctions réutilisables complexes. Elle ouvre des possibilités de création de formules "intelligentes" qui s'adaptent automatiquement à leur emplacement dans la feuille de calcul.

Syntaxe de la fonction FONCTION.APPELANTE

=FONCTION.APPELANTE()

FONCTION.APPELANTE ne prend aucun paramètre. Elle retourne automatiquement une référence à la cellule contenant la formule qui l'appelle. Cette référence peut ensuite être utilisée avec d'autres fonctions comme LIGNE(), COLONNE(), ADRESSE() ou INDIRECT() pour extraire des informations contextuelles.

Comprendre le concept

Qu'est-ce qu'une "cellule appelante" ?

Quand tu entres une formule dans une cellule (par exemple B5), cette cellule B5 est la "cellule appelante". FONCTION.APPELANTE permet à ta formule de connaître sa propre position. C'est particulièrement utile quand tu crées des fonctions LAMBDA réutilisables.

Par exemple, si tu définis une LAMBDA dans le Gestionnaire de noms et que tu l'utilises dans différentes cellules, FONCTION.APPELANTE retournera une référence différente selon la cellule où la fonction est appelée.

Pourquoi utiliser avec LAMBDA ?

LAMBDA permet de créer des fonctions personnalisées réutilisables. Sans FONCTION.APPELANTE, ces fonctions sont "aveugles" : elles ne savent pas où elles sont utilisées. Avec FONCTION.APPELANTE, tu peux créer des fonctions qui adaptent leur comportement selon leur position (ligne, colonne) dans la feuille.

Exemples pratiques

Exemple 1 – Fonction qui connaît son numéro de ligne

Tu veux créer une fonction LAMBDA qui retourne des valeurs différentes selon la ligne où elle est utilisée. Par exemple, doubler la valeur après la ligne 10.

La même formule retourne 100 en ligne 5 mais 200 en ligne 12 ou 20.

ABC
1CelluleFormuleRésultat
2B5=LAMBDA(v; SI(LIGNE(FONCTION.APPELANTE())>10; v*2; v))(100)100
3B12=LAMBDA(v; SI(LIGNE(FONCTION.APPELANTE())>10; v*2; v))(100)200
4B20=LAMBDA(v; SI(LIGNE(FONCTION.APPELANTE())>10; v*2; v))(100)200
Formule :=LAMBDA(valeur; SI(LIGNE(FONCTION.APPELANTE())>10; valeur*2; valeur))(100)
Résultat :Dépend de la ligne

Exemple 2 – Obtenir l'adresse de la cellule appelante

Combine FONCTION.APPELANTE avec ADRESSE pour obtenir l'adresse sous forme de texte. Utile pour le débogage ou l'affichage.

La fonction retourne sa propre adresse sous forme de texte.

ABC
1CelluleFormuleRésultat
2A1=LAMBDA(; ADRESSE(LIGNE(FONCTION.APPELANTE()); COLONNE(FONCTION.APPELANTE())))()$A$1
3C5Même formule$C$5
4Z100Même formule$Z$100
Formule :=LAMBDA(; ADRESSE(LIGNE(FONCTION.APPELANTE()); COLONNE(FONCTION.APPELANTE())))()
Résultat :$A$1 (si en A1)

Astuce : Tu peux créer une fonction nommée "MonAdresse" dans le Gestionnaire de noms avec cette formule. Ensuite, =MonAdresse() retournera toujours l'adresse de la cellule où tu l'appelles.

Exemple 3 – Fonction nommée avec contexte positionnel

Dans le Gestionnaire de noms, définis une fonction qui ajoute le numéro de ligne à sa valeur d'entrée.

Définis 'AjouteLigne' dans Formules > Gestionnaire de noms, puis utilise =AjouteLigne(10).

AB
1Nom définiDéfinition
2AjouteLigne=LAMBDA(x; x + LIGNE(FONCTION.APPELANTE()))
Formule :=AjouteLigne(10)
Résultat :En ligne 5 → 15, En ligne 20 → 30

Exemple 4 – Alternance de couleur de fond (concept)

Bien que les formules ne contrôlent pas directement le formatage, tu peux utiliser FONCTION.APPELANTE pour retourner une valeur qui indique si la ligne est paire ou impaire, utilisable avec la mise en forme conditionnelle.

Retourne VRAI pour les lignes paires, FAUX pour les impaires.

ABC
1CelluleFormuleRésultat
2A1=LAMBDA(; RESTE(LIGNE(FONCTION.APPELANTE());2)=0)()FAUX (ligne impaire)
3A2Même formuleVRAI (ligne paire)
4A3Même formuleFAUX (ligne impaire)
Formule :=LAMBDA(; RESTE(LIGNE(FONCTION.APPELANTE());2)=0)()
Résultat :VRAI ou FAUX

Exemple 5 – Calcul différencié par colonne

Crée une fonction qui applique un taux différent selon la colonne où elle est utilisée.

Le taux augmente de 5% par colonne : col A = +5%, col B = +10%, col C = +15%.

ABC
1ColonneTaux appliquéValeur 100
2A (col 1)10%110
3B (col 2)15%115
4C (col 3)20%120
Formule :=LAMBDA(v; v*(1+COLONNE(FONCTION.APPELANTE())*0,05))(100)
Résultat :Varie selon la colonne

Points d'attention

Contexte LAMBDA requis

FONCTION.APPELANTE est conçue pour être utilisée à l'intérieur de fonctions LAMBDA ou de noms définis. En dehors de ces contextes, son comportement n'est pas garanti et peut retourner des erreurs ou des résultats inattendus.

Recalcul nécessaire

Si tu déplaces une cellule contenant une formule utilisant FONCTION.APPELANTE, le résultat change car la position de la cellule a changé. Assure-toi que le recalcul automatique est activé (Formules > Options de calcul > Automatique).

Version Excel

Cette fonction nécessite Excel 365 ou Excel 2021+. Elle n'est pas disponible dans les versions antérieures. Vérifie la compatibilité avant de partager des classeurs contenant ces formules.

Performance

FONCTION.APPELANTE implique un recalcul à chaque modification. Sur de très grandes feuilles avec des milliers de formules l'utilisant, cela peut impacter les performances. Utilise-la judicieusement.

Questions fréquentes

À quoi sert FONCTION.APPELANTE ?

FONCTION.APPELANTE est principalement utilisée dans les fonctions LAMBDA pour connaître la cellule qui a appelé la fonction. Cela permet de créer des fonctions personnalisées qui peuvent agir différemment selon leur position dans la feuille de calcul.

Quelle version d'Excel supporte FONCTION.APPELANTE ?

FONCTION.APPELANTE (CALLER) est disponible dans Excel 365 et les versions récentes qui supportent LAMBDA. C'est une fonction relativement nouvelle, introduite avec les fonctionnalités de programmation avancées d'Excel.

Que retourne FONCTION.APPELANTE exactement ?

Elle retourne une référence à la cellule qui contient la formule appelante. Cette référence peut ensuite être utilisée avec d'autres fonctions comme LIGNE(), COLONNE() ou ADRESSE() pour obtenir des informations sur la position.

Puis-je utiliser FONCTION.APPELANTE en dehors de LAMBDA ?

FONCTION.APPELANTE est conçue pour fonctionner principalement avec LAMBDA. En dehors de ce contexte, son comportement peut être imprévisible ou retourner une erreur. Elle est rarement utilisée seule.

Comment créer une fonction qui change de comportement selon sa position ?

Utilise FONCTION.APPELANTE avec LIGNE() ou COLONNE() dans une LAMBDA. Par exemple, =LAMBDA(val; SI(RESTE(LIGNE(FONCTION.APPELANTE());2)=0; val*1,1; val))(A1) applique +10% uniquement sur les lignes paires. Tu peux aussi utiliser ADRESSE() pour obtenir la référence sous forme de texte et faire des comparaisons plus complexes.

Fonctions similaires

Maîtrise LAMBDA et les fonctions avancées

Tu connais maintenant FONCTION.APPELANTE ! Rejoins Le Dojo Club pour découvrir toutes les possibilités de LAMBDA et créer des fonctions sur mesure.

Essayer pendant 30 jours