FAQ Excel
FAQ ExcelConsultez toutes les FAQ
Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2022
- Ou peut on trouver des exemples pour utiliser les fonctions du tableur Excel ?
- Comment remplacer une formule par son résultat ?
- Quelle est la différence entre les références relatives, absolues et mixtes ?
- Comment verrouiller la ligne et la colonne (références) d'une cellule contenue dans une formule ?
- Comment afficher la boîte de dialogue "Arguments de la fonction" pendant la saisie d'une formule ?
- Comment afficher les arguments d'une fonction dans la barre de formules ?
- Comment gérer les valeurs d'erreur dans le résultat des fonctions ?
- Pourquoi autant de propriétés 'Formula' différentes ?
- Peut on effacer les formules pour ne garder que les valeurs ?
- Ou trouver la traduction des fonctions Excel ?
- Comment vérifier rapidement l'orthographe des fonctions ?
- Comment identifier les cellules qui contiennent des formules ?
- A quoi sert la propriété WorksheetFunction ?
- Comment utiliser une variable tableau dans une fonction prédéfinie Excel ?
- Comment lire une formule par formule ?
- Comment Additionner des cellules en fonction de la couleur de fond, sans macro ?
- Comment extraire les mots d'une phrase ?
- Comment créer rapidement une table de multiplication ?
- Comment utiliser les fonctions de l'utilitaire d'analyse dans Excel 2007 ?
- Comment fonctionne la formule SIERREUR dans Excel 2007 ?
- Comment utiliser la fonction SOMME.SI.ENS dans Excel 2007 ?
- Comment utiliser la fonction MOYENNE.SI.ENS dans Excel 2007 ?
- Pourquoi j'ai une erreur 1004 sur la définition de ma propriété formulaR1C1 ?
- Est t'il possible de créer des constantes ne faisant pas référence à des cellules dans les formules ?
- Comment créer une barre de progression dans une cellule ?
- Comment gérer les formules lorsqu'une nouvelle ligne est ajoutée avant une ligne de total ?
- Comment convertir rapidement une plage de cellules utilisée dans une formule, en une constante matricielle ?
- Comment créer une constante matricielle à deux dimensions ?
- Comment identifier facilement les arguments obligatoires et facultatifs lorsque je rédige ma fonction ?
- Comment ajouter un commentaire dans une formule ?
Consultez le tutoriel pour visualiser quelques exemples d'utilisation des fonctions standards d'Excel.
Pour remplacer la formule contenue dans une cellule par le résultat qu'elle renvoie :
Sélectionnez la cellule.
Cliquez sur la touche clavier F2
Puis sur la touche clavier F9.
Les références relatives :
Une référence relative (qui s'affiche sous la forme =A1
+A2
) est basée
sur la position relative de la cellule qui contient la formule et les références de cellules
spécifiées dans la formule.
Si la position de la cellule qui contient la formule change, la référence est modifiée. Si vous copiez
la formule dans d'autres lignes ou colonnes, la référence est automatiquement adaptée en conséquence.
Par exemple, si vous copiez une référence relative =A1
+A2
contenue dans
la cellule B2 vers la cellule B3, la formule collée est automatiquement transformée en =A2
+A3
.
Utilisez des références relatives si vous souhaitez adapter les références à chaque cellule de la plage sélectionnée.
Les références absolues (Utilisation du symbole $):
Une référence de cellule absolue (qui s'affiche sous la forme =$A$1
+$A$2
)
spécifie des cellules se trouvant à un endroit fixe.
Si la position de la cellule qui contient la formule change, la référence absolue reste inchangée.
Par exemple, si vous copiez une référence absolue =$A$1
+$A$2
de la
cellule B2 vers la cellule B3, la formule reste la même dans les deux cellules.
Les formules utilisent des références relatives par défaut. Il faut donc les transformer en références
absolues manuellement en ajoutant les symboles $.
Les références mixtes :
Une référence mixte comprend soit une colonne absolue et une ligne relative ($A1,$B1,...), soit une ligne absolue et une colonne relative (A$1,B$1,...).
Par exemple, si vous copiez une référence mixte =A$1
*2
de la cellule A2
vers la cellule B3, la formule est transformée en =B$1
*2
.
Lien : Petit schéma explicatif de l'utilisation des références absolues et relatives dans Excel
L'utilité est la suivante: éviter la modification d'une formule de calcul lors d'une recopie (peut importe le sens : haut, bas,
droite ou gauche).
Par exemple vous voulez sur une dizaine de ligne faire référence à la cellule D5.
Dans votre 1ère cellule (B6) vous tapez =D5
. Si vous faites une recopie vers le bas sur 10 lignes, la cellule B15 aura
pour formule =D14
.
La solution pour avoir =D5
dans B15 :
Placer le curseur de la souris sur le nom de la cellule dans la barre de formule.
Une pression sur la touche F4 verrouille la colonne et la ligne.
Résultat : =$D$5
Une seconde pression verrouille la ligne.
Résultat : =D$5
Une troisième, verrouille la colonne.
Résultat : =$D5
Une quatrième déverouille la colonne.
Résultat : =D5
Saisissez dans une cellule le début de la fonction, par exemple :
=NBVAL
Ensuite, appuyez sur la combinaison de touches Ctrl+A afin d'afficher la boîte de dialogue
"Arguments de la fonction" associée à cette formule.
Saisissez dans une cellule le début de votre formule, par exemple :
=SOMME.SI
Ensuite, appuyez sur la combinaison de touches Ctrl+Shift+A : Les arguments de la fonction s'affichent dans la barre de formule.
Consultez le tutoriel sur la gestion des erreurs dans Excel.
Regardons ensemble. Un objet Range possède des propriétés Formula, FormulaArray, FormulaLocal, FormulaR1C1, FormulaLocalR1C1
La propriété FormulaArray sert à entrer des formules matricielles.
Par exemple
Range
(
"E1:F11"
).FormulaArray
=
"=LINEST(R1C3:R20C3,R1C2:R20C2,TRUE,TRUE)"
Ce code renvoie la matrice de réponses de la formule DROITEREG d'Excel.
Notez que ce n'est pas DROITEREG mais LINEST qui est utilisé. Pourquoi ? Intrinsèquement, Excel utilise les formules
internationales (donc anglaise). Mais il n'est pas toujours évident de connaître la syntaxe internationale.
On peut donc toujours utiliser la syntaxe locale en appelant la propriété locale équivalente. Ainsi les deux formules suivantes
sont équivalentes.
Range
(
"E18"
).Formula
=
"=OFFSET(C1,MATCH(16,A1:A20,0)-1,0)"
Range
(
"E18"
).FormulaLocal
=
"=DECALER(C1;EQUIV(16;A1:A20;0)-1;0)"
Je peux aussi entrer la formule avec une référence LC (RC international) et j'utilise alors la version R1C1 des propriétés
Range
(
"E18"
).FormulaR1C1
=
"=OFFSET(R1C3,MATCH(16,R1C1:R20C1,0)-1,0)"
Range
(
"E18"
).FormulaR1C1Local
=
"=DECALER(L1C3;EQUIV(16;L1C1:L20C1;0)-1;0)"
Généralement lorsqu'on utilise Excel on utilise un collage spécial pour cela. Mais par le code il vaut mieux passer par une astuce toute simple.
Range
(
"F1:H20"
).Value
=
Range
(
"F1:H20"
).Value
Pourquoi cela fonctionne ? Car l'affectation explicite d'une valeur à la propriété value revient à supprimer la valeur de la propriété Formula. En effet on ne peut pas affecter une valeur à une cellule contenant une formule sans écraser celle-ci afin d'éviter un conflit entre la valeur calculée et la valeur affectée.
Recherchez le fichier Excel nommé VBALIST.xls sur votre PC.
Il est généralement stocké à l'emplacement :
C:\Program Files\Microsoft Office\Office10\1036
Ce classeur contient une liste des Fonctions de feuille de calcul et leur traduction Français/Anglais.
La macro suivante permet aussi de traduire en anglais la formule que vous avez saisi dans la cellule A1 :
MsgBox
Range
(
"A1"
).Formula
Saisissez les noms de fonctions en minuscules.
Les noms de fonctions valides seront automatiquement transformées en majuscule lorsque vous appuierez sur la touche Entrée.
La macro boucle sur les cellules est applique la couleur jaune si elles contiennent une formule.
Sub
IdentifierFormules
(
)
Dim
Cell As
Range
'Boucle sur les cellules utilisées dans la Feuil1 et applique
'une couleur de fond jaune si elle contient une formule.
For
Each
Cell In
Worksheets
(
"Feuil1"
).UsedRange.Cells
If
Cell.HasFormula
Then
Cell.Interior.ColorIndex
=
6
Next
Cell
End
Sub
Une autre possibilité sans boucler sur les cellules :
'Renvoie une erreur si la feuille ne contient pas de formules
Worksheets
(
"Feuil1"
).Cells.SpecialCells
(
xlCellTypeFormulas).Interior.ColorIndex
=
6
Elle renvoie la collection des fonctions intégrées d'Excel. Ceci est très pratique dans de nombreux cas.
Par exemple, dans Excel 97, la fonction VBA Replace n'existe pas. Mais Excel fournit sa fonction de feuille SUBSTITUTE qui est
équivalente. On peut l'utiliser par le biais de WorksheetFunction.
Dim
MaChaine As
String
MaChaine =
"où est l'apostrophe"
MaChaine =
Application.WorksheetFunction.Substitute
(
MaChaine, "'"
, "''"
)
Il suffit de remplir le tableau puis de l'indiquer en argument de la fonction :
Sub
VariableTableau_WorksheetFunction
(
)
Dim
Tableau
(
1
To
5
) As
Double
Tableau
(
1
) =
10
Tableau
(
2
) =
20
Tableau
(
3
) =
30
Tableau
(
4
) =
40
Tableau
(
5
) =
50
'Renvoie 30 (150/5)
MsgBox
"Moyenne : "
&
WorksheetFunction.Average
(
Tableau)
End
Sub
Une solution en utilisant les anciennes macros Excel 4.
Si par exemple la formule à tester est dans la cellule C3 :
Utilisez le Menu Insertion/Nom/Définir.
Dans le champ "Noms dans le classeur", saisissez NomFormule.
Dans le champ "Fait référence à :", saisissez =LIRE.CELLULE
(41
;$C$3
)
Cliquez sur le bouton Ajouter, puis sur le bouton OK pour valider.
Saisissez la formule =NomFormule dans une cellule de la feuille.
Par exemple, pour additionner les cellules dont la couleur de fond et jaune, dans la plage A1:A10 :
Sélectionnez la plage B1:B10
Menu Insertion / Nom / Définir
Dans le champ "Nom dans le classeur", indiquez le mot "Test"
Dans le champ "Fait référence à" saisissez la formule :
=LIRE.CELLULE
(63
;Feuil1
!A1
)
Cliquez sur le bouton Ajouter , puis sur le bouton OK pour valider.
Il s'agit d'une utilisation détournée des anciennes fonctions XL4.
63 Renvoie la couleur de fond de la cellule.
Sélectionnez la cellule B1.
Saisissez la formule
=Test
Validez la formule.
Utilisez les poignées de recopie pour étirer la formule vers le bas.
Ensuite dans la cellule C1, vous pouvez utiliser une formule qui compte le nombre de fois qu'apparaît un code couleur (6= couleur jaune)
Par exemple :
=NB.SI
(B1
:B10
;6
)
Le seul inconvénient, il faut revalider la formule =Test lorsque vous modifiez la couleur d'une cellule car le recalcul
automatique et le lancement du recalcul (F9) ne fonctionneront pas.
Pour effectuer la mise à jour du résultat, le plus rapide consiste à ressaisir la formule
=Test en B1, et utiliser les poignées de recopie vers le bas.
1. Trouver le Nième mot dans une phrase.
La phrase est par exemple saisie en A1. En B1, saisissez la position du mot que vous souhaitez extraire.
Placez ensuite cette formule en A2 :
=SI
(B1
>NBCAR
(A1
)-NBCAR
(SUBSTITUE
(A1
;" "
;""
));DROITE
(A1
;NBCAR
(A1
)-TROUVE
("^^"
;
SUBSTITUE
(A1
;" "
;"^^"
;NBCAR
(A1
)-NBCAR
(SUBSTITUE
(A1
;" "
;""
)))));SI
(B1
=1
;STXT
(A1
;1
;TROUVE
("^^"
;
SUBSTITUE
(A1
;" "
;"^^"
;1
))-1
);STXT
(A1
;TROUVE
("^^"
;SUBSTITUE
(A1
;" "
;"^^"
;B1
-1
))+1
;TROUVE
("^^"
;
SUBSTITUE
(A1
;" "
;"^^"
;B1
))-TROUVE
("^^"
;SUBSTITUE
(A1
;" "
;"^^"
;B1
-1
))-1
)))
2. Sur le même principe, pour extraire tous les mots d'une phrase écrite en A1, il serait donc possible de saisir en B1 :
=SI
(NBCAR
($A$1
)-NBCAR
(SUBSTITUE
($A$1
;" "
;""
)) + 2
<COLONNE
();""
;
SI
(COLONNE
()-1
>NBCAR
($A$1
)-NBCAR
(SUBSTITUE
($A$1
;" "
;""
));DROITE
($A$1
;NBCAR
($A$1
)-
TROUVE
("^^"
;SUBSTITUE
($A$1
;" "
;"^^"
;NBCAR
($A$1
)-NBCAR
(SUBSTITUE
($A$1
;" "
;""
)))));
SI
(COLONNE
()-1
=1
;STXT
($A$1
;1
;TROUVE
("^^"
;SUBSTITUE
($A$1
;" "
;"^^"
;1
))-1
);STXT
($A$1
;
TROUVE
("^^"
;SUBSTITUE
($A$1
;" "
;"^^"
;COLONNE
()-2
))+1
;TROUVE
("^^"
;SUBSTITUE
($A$1
;" "
;"^^"
;
COLONNE
()-1
))-TROUVE
("^^"
;SUBSTITUE
($A$1
;" "
;"^^"
;COLONNE
()-2
))-1
))))
Et de recopier la même formule sur les autres colonnes de droite, afin d'extraire chaque mot.
3. Une autre solution, sans formule, consiste à utiliser l'asssistant de conversion:
Sélectionnez la cellule A1 qui contient la phrase complète.
Menu Données
Convertir
Sélectionnez l'option "Largeur Fixe".
Cliquez sur le bouton "Suivant".
La fenêtre suivante permet de pré-visualiser le résultat.
Bouton "Suivant".
L'assistant de conversion propose d'autres options pour personnaliser le résultat (le format des données en colonne,
la cellule de destination ?etc?).
Cliquez sur le bouton "Terminer".
La première ligne et la première colonne de la feuille contiennent les éléments de multiplication.
Saisissez la formule suivante en B2 :
=$A2
*B$1
Puis étirez la formule.
Les fonctions de l'utilitaire d'Analyse (ATP) sont désormais intégrées dans l'application Excel et sont
contenues dans la bibliothèque de fonctions natives.
Il n'est donc plus nécessaire d'activer le complément comme cela était le cas pour les anciennes versions d'Excel.
Attention :
Ces fonctions ayant été déplacées vers la bibliothèque native, certains résultats peuvent être différents
entre Excel 2007 et les versions antérieures.
L'aide Microsoft Décrit en détail ces modifications :
Description des modifications apportées à l'Utilitaire d'Analyse (ATP) pour Microsoft Office Excel 2007.
Il est aussi possible que les fonctions ATP créées dans un classeur Excel 2007 renvoient une erreur #Nom! lorsque le
fichier est ouvert avec une version antérieure du tableur.
De la même manière, un classeur créé dans Excel 2003 (ou antérieur), puis ouvert dans Excel 2007, peut renvoyer une
erreur #Nom! lorsque les cellules contiennent des formules issues de l'utilitaire d'analyse. Pour ce dernier cas,
il suffit de rééditer et revalider la formule pour corriger l'erreur: Sélectionnez la cellule/F2/F9.
Vous noterez que l'activation du complément "Analysis ToolPack " est toujours nécessaire si vous souhaitez utiliser l'utilitaire d'analyse de données scientifiques et financières. Le complément ajoute un bouton d'accès dans le groupe "Analyse" de l'onglet "Données".
SIERREUR est une nouveauté Excel 2007. Cette fonction permet de vérifier et de gérer les erreurs.
=SIERREUR
(formule;valeur_si_erreur)
Elle renvoie la valeur que vous avez spécifié (valeur_si_erreur) si la formule provoque une erreur. Dans le cas contraire, elle renvoie le résultat de la formule.
Par exemple, pour masquer les messages erreurs lorsque la division A1/A2 renvoie une erreur :
Jusqu'à Excel 2003, la fonction ESTERREUR devait être associée à une condition SI.
Une telle formule devait s'écrire :
=SI
(ESTERREUR
(A1
/A2
);""
;A1
/A2
)
Dans Excel 2007, vous pouvez utiliser :
=SIERREUR
(A1
/A2
;""
)
Cette fonction conditionnelle permet d'additionner les valeurs d'une plage, répondant à plusieurs critères.
Syntaxe
SOMME.SI.ENS
(sum_range; criteria_range1;criteria1 ; criteria_range2;criteria2...)
Sum_range
représente la plage de cellules à additionner. Les cellules vides et textuelles sont ignorées.
L'ordre des arguments est différent entre SOMME.SI.ENS et SOMME.SI. L'argument sum_range est le premier
argument dans SOMME.SI.ENS, mais le troisième dans SOMME.SI.
Criteria_range1, criteria_range2,...
représentent 1 à 127 plages de cellules dans lesquelles les critères associés doivent être évalués.
Criteria1, criteria2,...
représentent 1 à 127 critères, sous forme de nombre, d'expression, de référence de cellule ou de texte
qui déterminent les cellules à additionner. Ces arguments peuvent, par exemple, être exprimés sous l'une des formes suivantes:
32, "32", ">32", "pommes", B4 ou ">="&B4.
Remarques :
Chaque cellule d'un argument somme_plage est additionnée seulement si tous les critères correspondants spécifiés sont vrais pour
la cellule.
Les cellules de l'argument somme_plage qui contiennent VRAI prennent la valeur 1 ; les cellules de l'argument somme_plage qui
contiennent FAUX prennent la valeur 0 (zéro).
Contrairement aux arguments de critère et de plage de la fonction SOMME.SI, dans SOMME.SI.ENS, chaque plage_critères doit avoir
la même taille et la même forme que plage_somme.
Vous pouvez utiliser les caractères génériques [le point d'interrogation (?) et l'astérisque (*)] dans l'argument critère. Le
point d'interrogation correspond à un caractère quelconque et l'astérisque à une séquence de caractères. Si vous recherchez un
point d'interrogation ou un astérisque, tapez un tilde (~) devant ce caractère.
Par exemple, additionner les valeurs de la plage D3:D36 si :
* La date en A3:A36 est inférieure ou égale à aujourd'hui et supérieure à aujourdhui() - 6 jours.
* Les données de la plage C3:C36 commencent par la chaîne de caractères "CB".
En utilisant la fonction SOMME.SI.ENS :
=SOMME.SI.ENS
(D3
:D36
;A3
:A36
;"<="
&AUJOURDHUI
();A3
:A36
;">"
&AUJOURDHUI
()-6
;C3
:C36
;"=CB*"
)
Nota :
La fonction équivalente en utilisant la fonction SOMMEPROD, pour être compatible avec toutes les versions d'Excel :
=SOMMEPROD
((A3
:A36
>AUJOURDHUI
()-6
)*(A3
:A36
<=AUJOURDHUI
())*(GAUCHE
(C3
:C36
;2
)="CB"
)*(D3
:D36
))
Cette fonction conditionnelle permet de calculer la moyenne d'une plage, répondant à plusieurs critères.
Vous pouvez spécifier jusqu'à 127 critères dans la formule.
Syntaxe
MOYENNE.SI.ENS
(plage_moyenne,plage1_critères,critère1,plage2_critères,critère2...)
Un exemple qui affiche la moyenne de la plage C1:C10 pour les données de la plage B1:B10 compris entre 20 et 40
=MOYENNE.SI.ENS
(C1
:C10
;B1
:B10
;">20"
;B1
:B10
;"<40"
)
Nota :
Pour obtenir le même résultat dans les versions antérieures d'Excel :
(Formule matricielle à valider par Ctrl+Maj+Entrée)
=MOYENNE
(SI
((B1
:B10
>20
)*(B1
:B10
<40
);(C1
:C10
);""
))
L'erreur survient lorsque la virgule est désignée comme séparateur décimal dans vos options régionales.
Une première solution consiste à remplacer les virgules (Chr(44)) par des points (Chr(46)).
.FormulaR1C1
=
Replace
(
CStr
(<
MaFormuleEnAnglais>
), Chr
(
44
), Chr
(
46
))
Autre possibilité, utilisez la propriété "FormulaR1C1Local" et rédigez votre formule dans la même langue que la version d'Excel installée (Contrairement à "FormulaR1C1" qui nécessite d'écrire la formule en anglais).
.FormulaR1C1Local
=
"=<MaFormuleEnLangueUtilisateur>"
Créez un nom (Menu Insertion/Nom/Définir).
Dans le champ "Fait référence à:", remplacez la référence à une cellule par la valeur de votre constante.
Validez.
Vous pouvez ensuite utiliser ce nom en tant que constante dans vos formules.
La cellule A1 contient une valeur au format pourcentage et vous souhaitez afficher des symboles
proportionnels dans une autre cellule.
Utilisez la formule suivante.
=REPT
("?"
;ARRONDI
((A1
*10
);0
))
La fonction affiche un symbole ? pour chaque tranche de 10% indiquée dans la cellule A1.
Quand une ligne est ajoutée juste au dessus de la ligne de total, elle n'est pas toujours intégrée automatiquement dans le calcul.
Pour prendre en compte rapidement cette nouvelle ligne, à partir d'Excel 2002 :
Vous remarquerez qu'un petit triangle vert s'affiche dans l'angle supérieur gauche des cellules de totaux.
Sélectionnez chaque cellule pour faire apparaitre la balise active.
Cliquez sur cette balise.
Sélectionnez l'option "Mettre à jour la formule pour inclure les cellules".
Rédigez votre formule.
(Par exemple =MAX
(A1
:A3
), Les cellules A1 à A3 contenant les valeurs 2, 5 et 3).
Validez.
Resélectionnez la référence à la plage de cellules dans la formule.
Appuyez sur la touche clavier F9.
Vous obtenez la formule suivante :
=MAX
({2
;5
;3
})
Vous pouvez définir un tableau de constantes matricielles en utilisant le point comme séparateur de colonnes et le point-virgule comme séparateur de lignes.
Un exemple qui utilise un tableau 2 par 6 (2 lignes par 6 colonnes), et qui renvoie 'C' en résultat (Recherche la valeur au croisement de la première ligne et de la troisième colonne) :
=INDEX
({"A"
."B"
."C"
."D"
."E"
."F"
;10
.20
.30
.40
.50
.60
};1
;3
)
Un exemple qui utilise un tableau 6 par 2 (6 lignes par 2 colonnes), et qui renvoie 'C' en résultat (Recherche la valeur au croisement de la troisième ligne et de la première colonne).
=INDEX
({"A"
.10
;"B"
.20
;"C"
.30
;"D"
.40
;"E"
.50
;"F"
.60
};3
;1
)
Vous noterez qu'il est possible d'utiliser le format d'un tableau 2 par 6 et de le transformer en tableau 6 par 2 (et inversement), grâce à la fonction TRANSPOSE.
Un exemple qui utilise un tableau 2 par 6 (2 lignes par 6 colonnes), qui le transpose en tableau 6 par 2 (6 lignes par 2 colonnes), et qui renvoie 'C' en résultat (Recherche la valeur au croisement de la troisième ligne et de la première colonne) :
=INDEX
(TRANSPOSE
({"A"
."B"
."C"
."D"
."E"
."F"
;10
.20
.30
.40
.50
.60
});3
;1
)
Vous avez certainement remarqué qu'une info-bulle d'aide affiche la syntaxe de la formule lorsque
vous rédigez votre formule dans une cellule :
Les arguments facultatifs, toujours placés en fin de fonction, sont encadrés par des crochets dans cette info-bulle.
Si vous utilisez la boîte de dialogue 'Arguments de la fonction', vous constaterez que les arguments obligatoires apparaissent en gras et sont donc facilement identifiables.
Les annotations sont pratiques pour aider à la maintenance de vos formules.
Vous pouvez utiliser la fonction N, présente dans Excel pour assurer la compatibilité avec d'autres tableurs. Cette
fonction peut être ajoutée dans vos formules sans en affecter le résultat.
=SOMMEPROD
(ESTVIDE
(A1
:A10
)*(B1
:B10
))+N
("Additionne les cellules de la plage B1:B10, si les cellules en A1:A10 sont vides"
)