J'ai plusieurs feuilles qui ont la même structure dans un classeur. Comment récapituler sur la première les données de toutes les autres ?
Sur ta feuille récapitulative, tape
=somme('*'!A1) pour faire la somme de toutes les cellules A1 du classeur.
Si tu veux exclure certaines feuiilles, cette formule ne fonctionne pas. Tu seras obligé de taper les références à chaque feuille une par une (= feui1l!A1+feuil3!A1+....).
Vois aussi du côté de données/consolidation (utilise ce mot clef dans le moteur de recherche de ce site).
=somme('*'!A1) pour faire la somme de toutes les cellules A1 du classeur.
Si tu veux exclure certaines feuiilles, cette formule ne fonctionne pas. Tu seras obligé de taper les références à chaque feuille une par une (= feui1l!A1+feuil3!A1+....).
Vois aussi du côté de données/consolidation (utilise ce mot clef dans le moteur de recherche de ce site).
Flo Cabon, Daniel C,
Ajouté ou modifié le 18/05/2008 (N°2009)
Ajouté ou modifié le 18/05/2008 (N°2009)
Comment trouver la position du premier #N/A de la colonne B ?
Deux formules matricielles possibles (pas de référencde à une colonne entière et validation par ctrl+maj+entrée)
=EQUIV(VRAI;ESTNA(B1:B10);0)
ou
=EQUIV(7;TYPE.ERREUR(B1:B11);0)
=EQUIV(VRAI;ESTNA(B1:B10);0)
ou
=EQUIV(7;TYPE.ERREUR(B1:B11);0)
Alain Vallon, Jacques Boisgontier,
Ajouté ou modifié le 05/04/2008 (N°2005)
Ajouté ou modifié le 05/04/2008 (N°2005)
Existe-t-il une formule pour indiquer si une cellule contient ... une formule ?
Pour indiquer en B1 si la cellule A1 contient une formule
Menu insertion/nom/définir
Dans la zone nom : ContientFormule
Dans la zone de formule en bas
=GET.CELL(48,INDIRECT("RC[-1]",0))
en B1 tu écris : =ContientFormule et cela renvoie vrai ou faux.
***ATTENTION pour xl 2000 ou antérieur****
avec excel 2000 ou antérieur, excel se plante et entraîne la perte de tout le boulot non sauvegardé si vous essayez de coper la cellule contenant la formule = contientFormule dans un autre classeur. Pas de problème si vous copiez dans le même classeur ou avec les versions postérieures, y compris 2007.
Avant EXCEL 2000, le langage MACRO(xL4)pour EXCEL FR était le français.
il suffit donc d'utiliser :
LIRE.CELLULE(48;LC(-1)) ( attention, il n'y a plus de crochets!)
l'interprétation reste automatique pour les versions plus récentes.
Menu insertion/nom/définir
Dans la zone nom : ContientFormule
Dans la zone de formule en bas
=GET.CELL(48,INDIRECT("RC[-1]",0))
en B1 tu écris : =ContientFormule et cela renvoie vrai ou faux.
***ATTENTION pour xl 2000 ou antérieur****
avec excel 2000 ou antérieur, excel se plante et entraîne la perte de tout le boulot non sauvegardé si vous essayez de coper la cellule contenant la formule = contientFormule dans un autre classeur. Pas de problème si vous copiez dans le même classeur ou avec les versions postérieures, y compris 2007.
Avant EXCEL 2000, le langage MACRO(xL4)pour EXCEL FR était le français.
il suffit donc d'utiliser :
LIRE.CELLULE(48;LC(-1)) ( attention, il n'y a plus de crochets!)
l'interprétation reste automatique pour les versions plus récentes.
Ron Coderre, GeeDee,
Ajouté ou modifié le 16/03/2008 (N°1986)
Ajouté ou modifié le 16/03/2008 (N°1986)
A3=A1+A2. Comment figer ce résultat même si A1 change ?
Sélectionne A3, clic gauche dans la barre de formules et appuie sur F9 puis Entrée.
Ou bien copie A3 /Collage spécial/valeurs.
Ou bien copie A3 /Collage spécial/valeurs.
Gaenonius,
Ajouté ou modifié le 16/02/2005 (N°1571)
Ajouté ou modifié le 16/02/2005 (N°1571)
Dans la cellule A1 je tape le chiffre: 1000
Dans la cellule A2 je tape le chiffre: 150,1
Dans la cellule A3 j'entre la formule: =(A1+A2-A1-A2)
et excel me dit que ça fait -8,5265128291212E-14 au lieu de 0 !!
Est-ce un bug, un virus ?
Les nombres sous Excel sont stockés sous la forme de nombres à virgule
flottante simple précision. Ce format repose sur la base 2, et certains
nombres fractionnaires (pas seulement les nombres réels) en base 10 ne
peuvent pas être représentés de manière parfaitement exacte sous cette
forme. Il peut donc se produire dans certains calculs des écarts minimes
par rapport au résultat attendu.
Ce problème n'est pas spécifique à Excel, mais concerne tous les
logiciels.
Une solution consiste à activer l'option "Calcul avec la précision au
format affiché" (menu Outils -> Options, onglet "Calcul").
Ce problème (d'affichage) est résolu sous excel 2003.
flottante simple précision. Ce format repose sur la base 2, et certains
nombres fractionnaires (pas seulement les nombres réels) en base 10 ne
peuvent pas être représentés de manière parfaitement exacte sous cette
forme. Il peut donc se produire dans certains calculs des écarts minimes
par rapport au résultat attendu.
Ce problème n'est pas spécifique à Excel, mais concerne tous les
logiciels.
Une solution consiste à activer l'option "Calcul avec la précision au
format affiché" (menu Outils -> Options, onglet "Calcul").
Ce problème (d'affichage) est résolu sous excel 2003.
Laurent Longre,
Ajouté ou modifié le 16/02/2005 (N°1570)
Ajouté ou modifié le 16/02/2005 (N°1570)

Je vois certaines formules sommeprod avec des -- , pourquoi ces tirets ?
C'est un truc "très mode" pour convertir une matrice de valeurs booléennes
(VRAI/FAUX) en matrice de nombres (1/0)
Un exemple (basique)
Compter le nbre de cellules contenant des valeurs > 10
=SOMMEPROD(--(A1:A10>10))
Le test logique (A1:A10>10) renvoie une matrice de VRAI/FAUX
Le "--" la transforme en matrice de 1/0
PS : Le truc ne présente pas vraiment d'avantages et peut être remplacé par
n'importe quelle opération arithmétique "neutre" comme *1 ou /1 ou +0 ou .etc..
(VRAI/FAUX) en matrice de nombres (1/0)
Un exemple (basique)
Compter le nbre de cellules contenant des valeurs > 10
=SOMMEPROD(--(A1:A10>10))
Le test logique (A1:A10>10) renvoie une matrice de VRAI/FAUX
Le "--" la transforme en matrice de 1/0
PS : Le truc ne présente pas vraiment d'avantages et peut être remplacé par
n'importe quelle opération arithmétique "neutre" comme *1 ou /1 ou +0 ou .etc..
Alain vallon,
Ajouté ou modifié le 24/10/2004 (N°1503)
Ajouté ou modifié le 24/10/2004 (N°1503)
Comment arrondir une somme aux 5 centimes les plus proches ?
=0,05*ARRONDI(A1/0,05;0)
la meme pour arrondir aux 0,25
=0,25*ARRONDI(A1/0,25;0)
la même pour arrondir aux 0,5
=0,5*ARRONDI(A1/0,5;0)
formule générale :
=(1/n)*ARRONDI(A1/(1/n);0)
la meme pour arrondir aux 0,25
=0,25*ARRONDI(A1/0,25;0)
la même pour arrondir aux 0,5
=0,5*ARRONDI(A1/0,5;0)
formule générale :
=(1/n)*ARRONDI(A1/(1/n);0)
ChrisV,
Ajouté ou modifié le 06/08/2004 (N°1469)
Ajouté ou modifié le 06/08/2004 (N°1469)
Comment remplacer *1.5 par *50 dans une formule ?
Tout d'abord, pour rechercher le caractère * (multiplier) tu dois le faire précéder d'un tilde ~ .
Mais dans la zone remplacer il ne faut le mettre ! donc dans la zone rechercher : ~*1.5,
dans la zone remplacer : *50.
Mais dans la zone remplacer il ne faut le mettre ! donc dans la zone rechercher : ~*1.5,
dans la zone remplacer : *50.
Oumpahpah,
Ajouté ou modifié le 02/05/2004 (N°1379)
Ajouté ou modifié le 02/05/2004 (N°1379)
Comment afficher la formule à droite de la cellule contenant le résultat? Par exemple en A1
j'ai la formule" =2+2" qui affiche "4" en B1 je voudrais voir
automatiquement "=2+2".
La fonction personnalisée suivante, à insérer dans un module du classeur
actif, dans perso.xls ou en xla donne la formule de la cellule
supérieure gauche d'une sélection.
Public Function TEXTEFORMULE(Cellule As Range)
TEXTEFORMULE = Cellule.Formula
End Function
Pierre Fauconnier
*********************************
Avec une fonction perso (à mettre dans un module ordinaire)
Function laFORMULE(cell As Range)
If cell.HasFormula = False Then
laFORMULE = False
Else: laFORMULE = cell.Formula
End If
End Function
Ex. dans ta feuille de calcul (pour A2 contenant une formule)
=laFORMULE(A2)
Autre possibilité :
si tu veux écrire en A1 10+10 et que tu veuilles en A2 le résultat :
Fonction perso :
Function EVALUE(cell As Range)
EVALUE = Evaluate("=" & cell.Value)
End Function
En A2 :
=EVALUE(A1)
actif, dans perso.xls ou en xla donne la formule de la cellule
supérieure gauche d'une sélection.
Public Function TEXTEFORMULE(Cellule As Range)
TEXTEFORMULE = Cellule.Formula
End Function
Pierre Fauconnier
*********************************
Avec une fonction perso (à mettre dans un module ordinaire)
Function laFORMULE(cell As Range)
If cell.HasFormula = False Then
laFORMULE = False
Else: laFORMULE = cell.Formula
End If
End Function
Ex. dans ta feuille de calcul (pour A2 contenant une formule)
=laFORMULE(A2)
Autre possibilité :
si tu veux écrire en A1 10+10 et que tu veuilles en A2 le résultat :
Fonction perso :
Function EVALUE(cell As Range)
EVALUE = Evaluate("=" & cell.Value)
End Function
En A2 :
=EVALUE(A1)
Pierre Fauconnier, Alain Vallon, (N°853)
Une formule permet-elle d'appliquer un tri automatique dans un tableau? (Exemple: Classement de
1 à 22 résultant d'une somme de points acquis).
avec des zones nommées:
Les "Données" (à trier dynamiquement) en colonne A
Les "Points" en colonne B
et la formule en colonne C
{=INDEX(Données;EQUIV(LIGNE();RANG(Points;Points);0))}
à recopier vers le bas, ou encore:
{=INDEX(Données;EQUIV(LIGNE()-LIGNE(C1)+1;RANG(Points;Points);0))}
Attention formules matricielles à valider par majuscule shift entrée.
Les "Données" (à trier dynamiquement) en colonne A
Les "Points" en colonne B
et la formule en colonne C
{=INDEX(Données;EQUIV(LIGNE();RANG(Points;Points);0))}
à recopier vers le bas, ou encore:
{=INDEX(Données;EQUIV(LIGNE()-LIGNE(C1)+1;RANG(Points;Points);0))}
Attention formules matricielles à valider par majuscule shift entrée.
ChrisV, (N°852)
Je voudrais additionner les cellules A5 des feuilles de "janvier" à décembre"
"=SOMME(janvier:décembre!BA5)
Flo Cabon, (N°851)
Comment faire la somme de la plage A1:A10 nommée données si elle comporte des messages
d'erreur type #N/A ?
"=SOMME.SI(Données;"<>#N/A")
ChrisV, (N°850)
J'ai besoin d'additionner les valeurs contenues dans les cellules D4 des feuilles 1 d'une
trentaine de classeurs. Quand je rentre la formule, elle est tronquée car trop longue. Comment
faire ?
Utilise Données/consolider
Une autre possibilité c'est de créer un nouveau classeur et dans
la feuille 1 de lier chaque cellule de la colonne A aux données en D4 de tes 30
classeurs. Ensuite tu n'as plus qu'à additionner tes données. L'avantage c'est
qu'en cas de pb avec un de tes classeurs, #ref s'affiche et te permet
d'identifier la source du problème.
Une autre possibilité c'est de créer un nouveau classeur et dans
la feuille 1 de lier chaque cellule de la colonne A aux données en D4 de tes 30
classeurs. Ensuite tu n'as plus qu'à additionner tes données. L'avantage c'est
qu'en cas de pb avec un de tes classeurs, #ref s'affiche et te permet
d'identifier la source du problème.
David Hager, Dave, (N°849)
Comment rechercher une valeur dans un tableau avec rechercheV ?
La fonction RECHERCHEV se construit avec quatre arguments.
Le premier est la valeur cherchée dans la colonne n°1 de ton tableau (code
produit par exemple), le deuxième la référence de la plage ou le nom du
tableau y compris la première colonne et la ligné d'étiquettes, le troisième
l'index de colonne pour le retour. Par exemple, si la code produit est en
colonne C, le prix unitaire en D et la quantité en E, tu indiquera 3 en
troisième argument si tu veux la quantité ou 2 si tu veux le prix (C = n°1,
D= n°2 et E = n°3). Le quatrième argument est VRAI/FAUX (ou 1/0). Si ton
choix est FAUX (ou 0), Excel cherchera dans la colonne n°1 la valeur exacte
que tu as indiqué comme premier argument : si excel ne trouve pas (code
produit inexistant par exemple), il renvoie une valeur d'erreur. Dans ce
cas, le tableau n'a pas besoin d'être trié : la colonne 1 peut être dans
n'importe quel ordre. Deuxième possibilité, tu choisis VRAI (ou 1). Dans ce
cas, et à condition que le tableau soit trié sur la colonne n° 1 en ordre
croissant, excel s'arrêtera à la ligne dont la valeur (en colonne 1) est la
plus grande qui soit inférieur ou égale à ton premier argument. Si par
exemple, pour des tranches de ventes (0/100/500/1000/3000) figurant en
colonne 1 tu indiques un argument n°1 égal à 600, il choisira la ligne 500.
Très pratique pour retourner une valeur en fonction d'un calcul de
fourchette (jusqu'à 100, 3% de remise, de 300+ à 500, 2% etc...).
Voir aussi les explications de la page lexique, plus
détaillées.
Le premier est la valeur cherchée dans la colonne n°1 de ton tableau (code
produit par exemple), le deuxième la référence de la plage ou le nom du
tableau y compris la première colonne et la ligné d'étiquettes, le troisième
l'index de colonne pour le retour. Par exemple, si la code produit est en
colonne C, le prix unitaire en D et la quantité en E, tu indiquera 3 en
troisième argument si tu veux la quantité ou 2 si tu veux le prix (C = n°1,
D= n°2 et E = n°3). Le quatrième argument est VRAI/FAUX (ou 1/0). Si ton
choix est FAUX (ou 0), Excel cherchera dans la colonne n°1 la valeur exacte
que tu as indiqué comme premier argument : si excel ne trouve pas (code
produit inexistant par exemple), il renvoie une valeur d'erreur. Dans ce
cas, le tableau n'a pas besoin d'être trié : la colonne 1 peut être dans
n'importe quel ordre. Deuxième possibilité, tu choisis VRAI (ou 1). Dans ce
cas, et à condition que le tableau soit trié sur la colonne n° 1 en ordre
croissant, excel s'arrêtera à la ligne dont la valeur (en colonne 1) est la
plus grande qui soit inférieur ou égale à ton premier argument. Si par
exemple, pour des tranches de ventes (0/100/500/1000/3000) figurant en
colonne 1 tu indiques un argument n°1 égal à 600, il choisira la ligne 500.
Très pratique pour retourner une valeur en fonction d'un calcul de
fourchette (jusqu'à 100, 3% de remise, de 300+ à 500, 2% etc...).
Voir aussi les explications de la page lexique, plus
détaillées.
Richard Hermann, (N°848)
Je sais qu'on peut faire des recherches dans un tableau avec les fonctions rechercheV ou index
combiné à equiv. Quels sont les avantages des deux méthodes ?
La méthode RECHERCHEV a l'avantage d'être assez simple à comprendre.
Prenons le tableau ci dessous (pierre est en A1)
pierre paris
paul lyon
jacques marseille
jean lille
Comment trouver ou habite Paul ?
Avec rechercheV, on définit :
- une valeur à chercher : Paul. On peut aussi utiliser l'adresse : A2
- un tableau de recherche : A1:B4
- l'index de la colonne contenant la valeur à renvoyer : 2
(attention, la première colonne est comptée comme N°1 même si elle est en T)
Dans une cellule de la page tape
= recherchev(A2;A1:A4;2)
Le résultat apparait : Lyon . Parfait !
Mais hélas non... essaie de faire la même chose pour trouver la ville ou vit Jacques.
Tu récupères un #NA très désagréable. Pourquoi ?
Parce que tu as omis le 4° argument de la fonction :
RECHERCHEV(valeur_cherchée;matrice;no_index_col;valeur_proche).
Si valeur_proche est FAUX, la fonction RECHERCHEV renvoie exactement la
valeur recherchée. Si aucune valeur ne correspond, la valeur d'erreur
#N/A est renvoyée.
Si l'argument valeur_proche est VRAI ou omis,les valeurs de la première colonne de
l'argument table_matrice doivent être placées en ordre croissant. Si aucune valeur exacte
n'est trouvée, la valeur immédiatement inférieure à valeur_cherchée est
renvoyée. Si la table n'est pas triée, on récupère... n'importe quoi !
Par conséquent pour utiliser simplement recherchev pour retrouver une valeur exacte il
faut toujours spécifier faux (ou 0) comme 4° argument.
Maintenant autre problème de cette fonction : essaie donc de trouver qui habite à Lille
en utilisant le même tableau... Tu ne peux pas : la valeur cherchée doit toujours être dans la
première colonne.
Voilà pourquoi la combinaison index-equiv est bien plus sure même si elle parait à priori
moins simple. Reprenons notre exemple.
Nous allons d'abord rechercher le N° de la ligne qui contient Paul avec la fonction equiv.
EQUIV(valeur_cherchée;matrice_recherche;type). Ici la matrice est uniquement celle de
la colonne des prénoms. Type est optionnel on verra plus tard son utilisation. On le met à 0.
=equiv(A2;A1:A4;0) renvoie 2. Nous allons ensuite utiliser cette valeur comme no_ligne
dans la fonction index.
INDEX(tableau;no_ligne;no_col).
tableau se réfère ici aux noms de ville et N° de colonne peut être omis puisqu'il n'y a qu'une
seule colonne dans ce tableau. ce qui donne
= index(B1:B4; equiv(A2;A1:A4;0))
On peut aussi récupérer le nom de celui qui habite à Lyon :
=index(A1:A4;equiv(B2;B1:B4)).
On peut aussi en précisant le type dans la fonction equiv récupérer des valeurs proches un peu
comme on le fait dans recherchev.
si le type est 0,
index renvoie le N° de ligne exact s'il n'y a qu'une seule valeur possible
index renvoie le N° de ligne de la dernière valeur trouvée s'il y en a plus d'une
index renvoie #NA s'il n'y a aucune valeur répondant au critère de recherche.
si le type est 1, index renvoie la valeur la plus élevée qui est inférieure ou égale à celle de
la valeur_cherchée
si le type est -1, index renvoie la plus petite valeur qui est supérieure ou égale à celle de
la valeur_cherchée
Si l'argument type est omis, la valeur par défaut est 1.
Mémo :
=INDEX(ChampDeLaValeur-à-Renvoyer;EQUIV(ValeurCherchée;ChampDeRecherche;0))
Prenons le tableau ci dessous (pierre est en A1)
pierre paris
paul lyon
jacques marseille
jean lille
Comment trouver ou habite Paul ?
Avec rechercheV, on définit :
- une valeur à chercher : Paul. On peut aussi utiliser l'adresse : A2
- un tableau de recherche : A1:B4
- l'index de la colonne contenant la valeur à renvoyer : 2
(attention, la première colonne est comptée comme N°1 même si elle est en T)
Dans une cellule de la page tape
= recherchev(A2;A1:A4;2)
Le résultat apparait : Lyon . Parfait !
Mais hélas non... essaie de faire la même chose pour trouver la ville ou vit Jacques.
Tu récupères un #NA très désagréable. Pourquoi ?
Parce que tu as omis le 4° argument de la fonction :
RECHERCHEV(valeur_cherchée;matrice;no_index_col;valeur_proche).
Si valeur_proche est FAUX, la fonction RECHERCHEV renvoie exactement la
valeur recherchée. Si aucune valeur ne correspond, la valeur d'erreur
#N/A est renvoyée.
Si l'argument valeur_proche est VRAI ou omis,les valeurs de la première colonne de
l'argument table_matrice doivent être placées en ordre croissant. Si aucune valeur exacte
n'est trouvée, la valeur immédiatement inférieure à valeur_cherchée est
renvoyée. Si la table n'est pas triée, on récupère... n'importe quoi !
Par conséquent pour utiliser simplement recherchev pour retrouver une valeur exacte il
faut toujours spécifier faux (ou 0) comme 4° argument.
Maintenant autre problème de cette fonction : essaie donc de trouver qui habite à Lille
en utilisant le même tableau... Tu ne peux pas : la valeur cherchée doit toujours être dans la
première colonne.
Voilà pourquoi la combinaison index-equiv est bien plus sure même si elle parait à priori
moins simple. Reprenons notre exemple.
Nous allons d'abord rechercher le N° de la ligne qui contient Paul avec la fonction equiv.
EQUIV(valeur_cherchée;matrice_recherche;type). Ici la matrice est uniquement celle de
la colonne des prénoms. Type est optionnel on verra plus tard son utilisation. On le met à 0.
=equiv(A2;A1:A4;0) renvoie 2. Nous allons ensuite utiliser cette valeur comme no_ligne
dans la fonction index.
INDEX(tableau;no_ligne;no_col).
tableau se réfère ici aux noms de ville et N° de colonne peut être omis puisqu'il n'y a qu'une
seule colonne dans ce tableau. ce qui donne
= index(B1:B4; equiv(A2;A1:A4;0))
On peut aussi récupérer le nom de celui qui habite à Lyon :
=index(A1:A4;equiv(B2;B1:B4)).
On peut aussi en précisant le type dans la fonction equiv récupérer des valeurs proches un peu
comme on le fait dans recherchev.
si le type est 0,
index renvoie le N° de ligne exact s'il n'y a qu'une seule valeur possible
index renvoie le N° de ligne de la dernière valeur trouvée s'il y en a plus d'une
index renvoie #NA s'il n'y a aucune valeur répondant au critère de recherche.
si le type est 1, index renvoie la valeur la plus élevée qui est inférieure ou égale à celle de
la valeur_cherchée
si le type est -1, index renvoie la plus petite valeur qui est supérieure ou égale à celle de
la valeur_cherchée
Si l'argument type est omis, la valeur par défaut est 1.
Mémo :
=INDEX(ChampDeLaValeur-à-Renvoyer;EQUIV(ValeurCherchée;ChampDeRecherche;0))
Flo Cabon, (N°847)
Petit problème pour excel 97 et 2000 (mais pas XP) : 235.47 - 6.86 - 228.61 = 0 J'entre les
trois valeurs en A1, A2, A3. En A4 je place la formule =SI(A1-A2-A3=0;0;"A1-A2-A3")
théoriquement la cellule A4 doit m'afficher 0, mais on récupère -2,84217E-14
"=SI(1*TEXTE(A1-A2-A3;"0,00")<>0;"différent de zéro";0)
Cette différence est le résultat du problème classique des erreurs inévitables de la
conversion du décimal vers l'hexadécimal ou le binaire.
Cette différence est le résultat du problème classique des erreurs inévitables de la
conversion du décimal vers l'hexadécimal ou le binaire.
Clément Marcotte, ChrisV, (N°846)
Quels sont les différents types d'opérateurs disponibles dans les formules d'excel ?
Les opérateurs indiquent le type de calcul que vous voulez effectuer sur les
éléments d'une formule. Microsoft Excel propose quatre types d'opérateurs de
calcul différents : arithmétiques, de comparaison, de texte et de référence.
Types d'opérateurs
Opérateurs arithmétiques Pour effectuer les opérations mathématiques de
base telles que l'addition, la soustraction ou la multiplication, combiner
des nombres et produire des résultats numériques, utilisez les opérateurs
arithmétiques ci-dessous.
Opérateur arithmétique Signification (exemple)
+ (signe plus) Addition (3+3)
- (signe moins) Soustraction (3-1)
Négation (-1)
* (astérisque) Multiplication (3*3)
/ (barre oblique) Division (3/3)
% (signe pourcentage) Pourcentage (20%)
^ (signe insertion) Exposant (3^2)
Opérateurs de comparaison Vous pouvez comparer deux valeurs avec les
opérateurs ci-dessous. Le résultat obtenu est une valeur logique VRAI ou
FAUX.
Opérateur de comparaison Signification (exemple)
= (signe égal) Égal à (A1=B1)
> (signe supérieur à) Supérieur à (A1>B1)
< (signe inférieur à) Inférieur à (A1<b1)></b1)>
= (signe supérieur ou égal à) Supérieur ou égal à (A1>=B1)
<= (signe inférieur ou égal à) Inférieur ou égal à (A1<=B1)
<> (signe différent) Différent de (A1<>B1)
Opérateur de concaténation de texte Utilisez le signe « & » (et
commercial) pour combiner (concaténer) une ou plusieurs chaînes de texte en
vue d'obtenir un seul élément de texte.
Opérateur de texte Signification (exemple)
& (et commercial) Lie, ou concatène, deux valeurs pour donner une
valeur de texte continu ("Mer"&"veille")
Opérateurs de référence Combinez les plages de cellules pour effectuer des
calculs à l'aide des opérateurs suivants :
Opérateurs de référence Signification (exemple)
: (deux-points) Opérateur de plage qui produit une référence à toutes
les cellules qui sont comprises entre deux références, ces deux références
étant incluses (B5:B15)
; (point-virgule) Opérateur d'union qui combine plusieurs références
en une seule (SOMME(B5:B15;D5:D15))
(espace) Opérateur d'intersection qui produit une référence aux
cellules qui sont communes à deux références (B7:D7 C6:C8)
éléments d'une formule. Microsoft Excel propose quatre types d'opérateurs de
calcul différents : arithmétiques, de comparaison, de texte et de référence.
Types d'opérateurs
Opérateurs arithmétiques Pour effectuer les opérations mathématiques de
base telles que l'addition, la soustraction ou la multiplication, combiner
des nombres et produire des résultats numériques, utilisez les opérateurs
arithmétiques ci-dessous.
Opérateur arithmétique Signification (exemple)
+ (signe plus) Addition (3+3)
- (signe moins) Soustraction (3-1)
Négation (-1)
* (astérisque) Multiplication (3*3)
/ (barre oblique) Division (3/3)
% (signe pourcentage) Pourcentage (20%)
^ (signe insertion) Exposant (3^2)
Opérateurs de comparaison Vous pouvez comparer deux valeurs avec les
opérateurs ci-dessous. Le résultat obtenu est une valeur logique VRAI ou
FAUX.
Opérateur de comparaison Signification (exemple)
= (signe égal) Égal à (A1=B1)
> (signe supérieur à) Supérieur à (A1>B1)
< (signe inférieur à) Inférieur à (A1<b1)></b1)>
= (signe supérieur ou égal à) Supérieur ou égal à (A1>=B1)
<= (signe inférieur ou égal à) Inférieur ou égal à (A1<=B1)
<> (signe différent) Différent de (A1<>B1)
Opérateur de concaténation de texte Utilisez le signe « & » (et
commercial) pour combiner (concaténer) une ou plusieurs chaînes de texte en
vue d'obtenir un seul élément de texte.
Opérateur de texte Signification (exemple)
& (et commercial) Lie, ou concatène, deux valeurs pour donner une
valeur de texte continu ("Mer"&"veille")
Opérateurs de référence Combinez les plages de cellules pour effectuer des
calculs à l'aide des opérateurs suivants :
Opérateurs de référence Signification (exemple)
: (deux-points) Opérateur de plage qui produit une référence à toutes
les cellules qui sont comprises entre deux références, ces deux références
étant incluses (B5:B15)
; (point-virgule) Opérateur d'union qui combine plusieurs références
en une seule (SOMME(B5:B15;D5:D15))
(espace) Opérateur d'intersection qui produit une référence aux
cellules qui sont communes à deux références (B7:D7 C6:C8)
Microsoft, (N°845)
Il parait qu'on peut nommer des formules ou des constantes ?
les noms dans le classeur SONT des formules !
Deux exemples simples (car je ne suis pas un expert).
1 EURO :
Dans la feuille,
Insertion > Nom > Définir
Dans le champ 'Noms dans le classeur', rentrer : E
Dans le champ 'Fait référence à', rentrer : = 6.55957
(ou le taux approprié, pour les non-français)
Valider.
Dès lors, vous pouvez utiliser ces formules dans les
feuilles :
= A1 * E
ou
= A1 / E
Dans le même ordre d'idée, tu peux nommer une
formule. Tu peux même utiliser de cette façon les anciennes fonctions macro
d'Excel 4 dans les classeurs "modernes".
Par exemple, si tu connais les 38 arguments de la fonction macro
LIRE.CLASSEUR, tu fais ceci (Excel 97) :
1) dans un classeur vierge, tu nommes "infos" :
=LIRE.CLASSEUR(LIGNE())
2) dans A1:A38 tu places la formule
=infos
et bserves le résultat !
Même chose avec tous les LIRE.XXXX(), bien sûr.
Deux exemples simples (car je ne suis pas un expert).
1 EURO :
Dans la feuille,
Insertion > Nom > Définir
Dans le champ 'Noms dans le classeur', rentrer : E
Dans le champ 'Fait référence à', rentrer : = 6.55957
(ou le taux approprié, pour les non-français)
Valider.
Dès lors, vous pouvez utiliser ces formules dans les
feuilles :
= A1 * E
ou
= A1 / E
Dans le même ordre d'idée, tu peux nommer une
formule. Tu peux même utiliser de cette façon les anciennes fonctions macro
d'Excel 4 dans les classeurs "modernes".
Par exemple, si tu connais les 38 arguments de la fonction macro
LIRE.CLASSEUR, tu fais ceci (Excel 97) :
1) dans un classeur vierge, tu nommes "infos" :
=LIRE.CLASSEUR(LIGNE())
2) dans A1:A38 tu places la formule
=infos
et bserves le résultat !
Même chose avec tous les LIRE.XXXX(), bien sûr.
Bernard Mazas, Patrick Penet, (N°844)
Comment remplir une colonne avec 200 nombres qui ne se répètent jamais ?
sans macro : en A1 =ALEA() en B1=RANG(A1;A:A)
recopier vers le bas x fois selon l'étendue souhaitée
en colonne B on obtient x nombres sans jamais 2 fois le même!
faire F9 pour une nouvelle génération
avec VBA :
Garanti sans doublon et sans boucle :
Sub tirage()
leMax = InputBox("Valeur max", "Valeurs de 1 à valeur max")
Application.ScreenUpdating = False
[A1] = 1
[A1].DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Stop:=leMax
Range("B1:B" & leMax).Formula = "=RAND()"
[A:B].Sort Key1:=Range("B1"), Order1:=xlAscending
[B:B].Delete
[A1].Select
End Sub
recopier vers le bas x fois selon l'étendue souhaitée
en colonne B on obtient x nombres sans jamais 2 fois le même!
faire F9 pour une nouvelle génération
avec VBA :
Garanti sans doublon et sans boucle :
Sub tirage()
leMax = InputBox("Valeur max", "Valeurs de 1 à valeur max")
Application.ScreenUpdating = False
[A1] = 1
[A1].DataSeries Rowcol:=xlColumns, Type:=xlLinear, Step:=1, Stop:=leMax
Range("B1:B" & leMax).Formula = "=RAND()"
[A:B].Sort Key1:=Range("B1"), Order1:=xlAscending
[B:B].Delete
[A1].Select
End Sub
Alain Vallon, GeeDee, (N°843)
Je voudrais multiplier une plage de données par 10 mais je voudrais que les nouvelles valeurs
prennent la place des anciennes...
Tu écris 10 dans une cellule quelconque de ta feuille. Tu la copies. Tu
sélectionnes ensuite les données à modifier, tu fais collage spécial,
opération, multiplication, OK. Ensuite tu peux effacer le 10 dans ta
cellule.
sélectionnes ensuite les données à modifier, tu fais collage spécial,
opération, multiplication, OK. Ensuite tu peux effacer le 10 dans ta
cellule.
Flo Cabon, (N°842)

Je voudrais faire une recopie de ma formule de cette façon : en D1=moyenne(c2:c4) en
D2=moyenne(c5:c7) en D3=moyenne(c8:c10 etc. Comment faire cela facilement ?
En D1, à recopier vers le bas :
=MOYENNE(INDIRECT("C"&(3*LIGNE()-1)&":C"&(3*LIGNE()+1)))
=MOYENNE(INDIRECT("C"&(3*LIGNE()-1)&":C"&(3*LIGNE()+1)))
Bernard Mazas, (N°841)
J'importe sous excel des cours de bourse avec la date dans la colonne A et le cours dans la
colonne B, donc tous les jours il y a une ligne de plus. J'aimerais toujours avoir le Max des 5
derniers jours...
"=MAX(DECALER(B1;NBVAL(B:B)-1;;-5))
Attention, ça suppose que ta série de nombre commence toujours en B1
et qu'il n'y a rien d'autre que cette série dans la colonne B (pas de
formule qui traîne 20 lignes en-dessous).
Attention, ça suppose que ta série de nombre commence toujours en B1
et qu'il n'y a rien d'autre que cette série dans la colonne B (pas de
formule qui traîne 20 lignes en-dessous).
Laurent Longre, (N°840)
Soit une colonne A désignant le sexe : M ou F. Soit une colonne B contenant des notes. Comment
connaître le nombre de garcons ayant obtenu moins de 10 ?
Plusieurs possibilités. Je t'en propose une:
=SOMME((A1:A10="m")*(B1:B10<10)*B1:B10)
Attention! c'est une formule matricielle, donc tu dois la saisir avec
CTRL+MAJ+ENTRÉE (et non simplement ENTRÉE)
Reprenons la formule (que j'ai écourtée pour simplifier les explications),
et supposons que A1:A5 contienne les valeurs m,m,f,f,m et que B1:B5
contienne les valeurs 5,18,16,3,6
{=SOMME((A1:A5="m")*(B1:B5<10))}
Lorsqu'Excel voit (A1:A5="m"), il le développe "dans sa tête" en une
matrice de 5 valeurs booléennes ({Vrai, Vrai, Faux, Faux, Vrai}). Il
procède de même pour (B1:B5<10), ce qui donne une autre matrice
({Vrai, Faux, Faux, Vrai, Vrai}). La multiplication de 2 matrices
booléennes équivaut à un ET logique, donc on obtient
{Vrai,Faux,Faux,Faux,Vrai}. Enfin, la somme de valeurs booléennes revient
à remplacer les valeurs faux par 0 et vrai par 1, donc {1,0,0,0,1}. Et la
somme de tout ça donne 2! Et il y a bien 2 mauvais élèves de sexe mâle.
=SOMME((A1:A10="m")*(B1:B10<10)*B1:B10)
Attention! c'est une formule matricielle, donc tu dois la saisir avec
CTRL+MAJ+ENTRÉE (et non simplement ENTRÉE)
Reprenons la formule (que j'ai écourtée pour simplifier les explications),
et supposons que A1:A5 contienne les valeurs m,m,f,f,m et que B1:B5
contienne les valeurs 5,18,16,3,6
{=SOMME((A1:A5="m")*(B1:B5<10))}
Lorsqu'Excel voit (A1:A5="m"), il le développe "dans sa tête" en une
matrice de 5 valeurs booléennes ({Vrai, Vrai, Faux, Faux, Vrai}). Il
procède de même pour (B1:B5<10), ce qui donne une autre matrice
({Vrai, Faux, Faux, Vrai, Vrai}). La multiplication de 2 matrices
booléennes équivaut à un ET logique, donc on obtient
{Vrai,Faux,Faux,Faux,Vrai}. Enfin, la somme de valeurs booléennes revient
à remplacer les valeurs faux par 0 et vrai par 1, donc {1,0,0,0,1}. Et la
somme de tout ça donne 2! Et il y a bien 2 mauvais élèves de sexe mâle.
Laurent Mortézai, (N°839)
J'aimerais bien avoir une liste des fonctions d'excel avec des explications pour les
utiliser et surtout des exemples !
Et bien voici l'indispensable classeur
de Vincent Isoz.
Il n'est pas formateur pour rien ! href="http://www.mundis.net">http://www.mundis.net
de Vincent Isoz.
Il n'est pas formateur pour rien ! href="http://www.mundis.net">http://www.mundis.net
Vincent Isoz,
Ajouté ou modifié le 04/05/2004 (N°838)
Ajouté ou modifié le 04/05/2004 (N°838)
Est-il normal que je ne puisse pas utiliser INDIRECT pour établir une liaison vers un classeur
fermé ? =INDIRECT(\"'C:\Mes Documents\[rien.xls]Feuil1'!$1\") qui marche très bien quand rien
est ouvert, renvoie #REF! dès que rien.xls est fermé alors que ='C:\Mes
Documents\[rien.xls]Feuil1'!$1 marche très bien même si rien est fermé
Oui c'est normal..
En gros : quand le classeur est en mode recalcul, Excel n'effectue
aucune opération susceptible d'interférer avec les calculs en cours. En
l'occurence, aller chercher le contenu d'un classeur fermé supposerait
qu'il établisse d'abord une liaison temporaire, lise la cellule, et
détruise ensuite cette liaison. Comme ce type d'action est verrouillé en
mode recalcul, INDIRECT échoue.
C'est pour la même raison qu'il est impossible, par exemple, d'ouvrir un
nouveau classeur ou de modifier le contenu d'une plage à l'intérieur
d'une Function appelée par une formule de cellule.
Une parade toutefois, à l'aide de VBA :
Function RECUP(Fichier As String, Feuille As String, _
Ligne As Long, Col As Integer)
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
RECUP = .Worksheets(Feuille).Cells(Ligne, Col)
.Close False
End With
End Function
Ensuite, par exemple =RECUP("C:\Test.xls";"Feuil1";5;10) pour récupérer
la cellule Feuil1!J5 de ce classeur fermé (note qu'il est quand-même
temporairement ouvert par la fonction...)
Ca marche pour la seule raison que la fonction lit le contenu du
classeur fermé par l'intermédiaire d'une nouvelle instance d'Excel.
Celle-ci étant indépendante de la session active, le "verrouillage" n'a
plus lieu.
Attention, chaque appel de RECUP lançant une nouvelle instance d'Excel,
cette fonction n'est pas très rapide à l'exécution... à utiliser donc
avec modération!
En gros : quand le classeur est en mode recalcul, Excel n'effectue
aucune opération susceptible d'interférer avec les calculs en cours. En
l'occurence, aller chercher le contenu d'un classeur fermé supposerait
qu'il établisse d'abord une liaison temporaire, lise la cellule, et
détruise ensuite cette liaison. Comme ce type d'action est verrouillé en
mode recalcul, INDIRECT échoue.
C'est pour la même raison qu'il est impossible, par exemple, d'ouvrir un
nouveau classeur ou de modifier le contenu d'une plage à l'intérieur
d'une Function appelée par une formule de cellule.
Une parade toutefois, à l'aide de VBA :
Function RECUP(Fichier As String, Feuille As String, _
Ligne As Long, Col As Integer)
With CreateObject("Excel.Application").Workbooks.Open(Fichier)
RECUP = .Worksheets(Feuille).Cells(Ligne, Col)
.Close False
End With
End Function
Ensuite, par exemple =RECUP("C:\Test.xls";"Feuil1";5;10) pour récupérer
la cellule Feuil1!J5 de ce classeur fermé (note qu'il est quand-même
temporairement ouvert par la fonction...)
Ca marche pour la seule raison que la fonction lit le contenu du
classeur fermé par l'intermédiaire d'une nouvelle instance d'Excel.
Celle-ci étant indépendante de la session active, le "verrouillage" n'a
plus lieu.
Attention, chaque appel de RECUP lançant une nouvelle instance d'Excel,
cette fonction n'est pas très rapide à l'exécution... à utiliser donc
avec modération!
Laurent Longre,
Ajouté ou modifié le 25/10/2003 (N°837)
Ajouté ou modifié le 25/10/2003 (N°837)
J'utilise ces fonctions sans probleme mais je ne connais pas la signification exacte de ces
acronymes...
VPM V =valeur des P =paiements M =mensuels
NPM N =nombre
VC Valeur capitalisée
INTPER = INTérêts dela PERiode
VA A =Actuelle
NPM N =nombre
VC Valeur capitalisée
INTPER = INTérêts dela PERiode
VA A =Actuelle
Jacques Chaussard, (N°836)

Comment créer une fonction de type f(x)=x+10 ?
Function decalage10(valeur As Integer) As Integer
decalage10 = valeur + 10
End Function
decalage10 = valeur + 10
End Function
Bernard Mazas, (N°835)
Comment obtenir automatiquement la somme des valeurs de ma colonne A sachant que le nombre de
valeurs de celle-ci varie.
Plusieurs solutions :
Par VBA : Somme d'une plage variant de A1 à Ax :
MsgBox Application.WorksheetFunction.Sum(Range("A1:" & _
Range("A65536").End(xlUp).Address))
En utilisant la fonction décaler :
Avec par ex. les données initiales en A1:A10
par Insertion / Nom / Définir... :
Noms dans le classeur : Zne Fait référence à :
=DECALER(Feuil1!$1;0;0;NBVAL(Feuil1!:))
et en B1 par ex. =SOMME(Zne)
Chaque fois que tu ajoutes une valeur dans la colonne A, la valeur en B1 change.
Par VBA : Somme d'une plage variant de A1 à Ax :
MsgBox Application.WorksheetFunction.Sum(Range("A1:" & _
Range("A65536").End(xlUp).Address))
En utilisant la fonction décaler :
Avec par ex. les données initiales en A1:A10
par Insertion / Nom / Définir... :
Noms dans le classeur : Zne Fait référence à :
=DECALER(Feuil1!$1;0;0;NBVAL(Feuil1!:))
et en B1 par ex. =SOMME(Zne)
Chaque fois que tu ajoutes une valeur dans la colonne A, la valeur en B1 change.
Alain Vallon, ChrisV, (N°834)
Soit un montant à payer, comment faire pour décomposer ce montant en "coupures
monétaires" ?
Avec La valeur faciale des coupures en B1:G1 (100 50 20 10 5 1...)
En A2:Ax les valeurs à transformer
En B2 : =ENT(A2/$1)
En C2 : =ENT((A2-(B2*$1))/$1)
En D2 : =ENT((A2-(B2*$1)-(C2*$1))/$1)
En E2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1))/$1)
En F2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1))/$1)
En G2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1)-(F2*$1))/$1)
Recopie B2:G2 en Bx:Gx
AV
*****************************************************
Autre solution :
En B2 : = ENT(A2/$1) ' même chose
En C2 : =ENT(ARRONDI(-SOMMEPROD($1:B$1;:B2);2)/C$1)
Que tu t'empresses de recopier jusqu'à G2.
L'intérêt de cette dernière formule est qu'elle réagit bien également au
cents.
Donc, tu pourrais avoir en A2 des montants avec des cents et en H1:L1, les
paniers associés aux cents d'une devise (Au Canada, 0,25 / 0,10 / 0,05 /
0,01 )
******************************************************
En VBA :
à copier dans un module standard :
'Denis Michon
----------
Sub InsérerMontant()
'544 représente le montant à décortiquer ....
MsgBox Calcul(544)
End Sub
----------
-------------------------------
Function Calcul(Cash As Double)
Dim Cent As Integer, cinquante As Integer, vingt As Integer
Dim Cinq As Integer, One As Integer
Cent = Int(Cash / 100)
cinquante = Int((Cash - (Cent * 100)) / 50)
vingt = Int((Cash - ((Cent * 100) + (cinquante * 50))) / 20)
dix = Int((Cash - ((Cent * 100) + (cinquante * 50) + vingt * 20)) / 10)
Cinq = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10))) / 5)
One = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10) + Cinq * 5)) / 1)
If Cent <> 0 Then
Message = Cent & " Cent(s) " & vbCrLf
End If
If cinquante > 0 Then
Message = Message & cinquante & " Cinquante(s)" & vbCrLf
End If
If vingt > 0 Then
Message = Message & vingt & " Vingt(s)" & vbCrLf
End If
If dix > 0 Then
Message = Message & dix & " Dix" & vbCrLf
End If
If Cinq > 0 Then
Message = Message & Cinq & " Cinq(s)" & vbCrLf
End If
If One > 0 Then
Message = Message & One & " 1 Dollar"
End If
Calcul = Message
End Function
Sub fdasf()
MsgBox Calcul(544)
End Sub
En A2:Ax les valeurs à transformer
En B2 : =ENT(A2/$1)
En C2 : =ENT((A2-(B2*$1))/$1)
En D2 : =ENT((A2-(B2*$1)-(C2*$1))/$1)
En E2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1))/$1)
En F2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1))/$1)
En G2 : =ENT((A2-(B2*$1)-(C2*$1)-(D2*$1)-(E2*$1)-(F2*$1))/$1)
Recopie B2:G2 en Bx:Gx
AV
*****************************************************
Autre solution :
En B2 : = ENT(A2/$1) ' même chose
En C2 : =ENT(ARRONDI(-SOMMEPROD($1:B$1;:B2);2)/C$1)
Que tu t'empresses de recopier jusqu'à G2.
L'intérêt de cette dernière formule est qu'elle réagit bien également au
cents.
Donc, tu pourrais avoir en A2 des montants avec des cents et en H1:L1, les
paniers associés aux cents d'une devise (Au Canada, 0,25 / 0,10 / 0,05 /
0,01 )
******************************************************
En VBA :
à copier dans un module standard :
'Denis Michon
----------
Sub InsérerMontant()
'544 représente le montant à décortiquer ....
MsgBox Calcul(544)
End Sub
----------
-------------------------------
Function Calcul(Cash As Double)
Dim Cent As Integer, cinquante As Integer, vingt As Integer
Dim Cinq As Integer, One As Integer
Cent = Int(Cash / 100)
cinquante = Int((Cash - (Cent * 100)) / 50)
vingt = Int((Cash - ((Cent * 100) + (cinquante * 50))) / 20)
dix = Int((Cash - ((Cent * 100) + (cinquante * 50) + vingt * 20)) / 10)
Cinq = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10))) / 5)
One = Int((Cash - ((Cent * 100) + (cinquante * 50) + (vingt * 20) + (dix * 10) + Cinq * 5)) / 1)
If Cent <> 0 Then
Message = Cent & " Cent(s) " & vbCrLf
End If
If cinquante > 0 Then
Message = Message & cinquante & " Cinquante(s)" & vbCrLf
End If
If vingt > 0 Then
Message = Message & vingt & " Vingt(s)" & vbCrLf
End If
If dix > 0 Then
Message = Message & dix & " Dix" & vbCrLf
End If
If Cinq > 0 Then
Message = Message & Cinq & " Cinq(s)" & vbCrLf
End If
If One > 0 Then
Message = Message & One & " 1 Dollar"
End If
Calcul = Message
End Function
Sub fdasf()
MsgBox Calcul(544)
End Sub
Denis Michon, Daniel Maher, Alain Vallon, (N°833)
Comment construit-on ces formules contenant des dizaines de "et ou Si index equiv"
avec autant de parenthèses ?
Devant un problème complexe, je commence par faire un tableau de ce que je
sais. Je fractionne le problèmes en petits sous-problèmes que je sais résoudre
avec une formule ou une fonction. Ce n'est qu'après que j'assemble ces sous-
problèmes résolus.Je te mets l'exemple des fonctions Equiv et Index pour
illustrer le méthode d'assemblage ça peut paraître trop simple pour une formule
utilisant seulement deux fonctions mais lorsqu'il y a plusieurs fonctions dans
une même formule ça peut aider.
pour un tableau se situant en A1:B10 avec entête Nom et Adresse et le nom Monique
en A3 et un tableau résultat en C1 et D1, En C1 on met le Nom Monique en D2
je mets la fonction Equiv =EQUIV(C1;A:A;0) et en D1 la fonction index
=INDEX(B:B;D2)référent à la ligne du résultat qu'il y a en D2 lorsque je dit
assembler ces deux formules, ce que je fais c'est que je copie l'intérieur de
la cellule D2 et je la colle sur le "D2" de la formule qui se trouve en cellule
D1, ce qui donne le résultat suivant
=INDEX(B:B;EQUIV(C1;A:A;0))
et ainsi de suite pour retrouver l'adresse de la cellule Monique on peut utiliser
le résultat de la cellule D2 en E2 =ADRESSE(D2;2) ou
=ADRESSE(EQUIV(C1;A:A;0);2) et on peut ensuite décaler pour trouver la valeur
d'un autre cellule
=DECALER(INDIRECT(E2);-1;0;1;1)
ou on remplace E2
=DECALER(INDIRECT(ADRESSE(D2;2));-1;0;1;1)
ou on remplace D2
=DECALER(INDIRECT(ADRESSE(EQUIV(C1;A:A;0);2));-1;0;1;1)
en espérant ne pas avoir mis le fouillis dans ta compréhension des formules
sais. Je fractionne le problèmes en petits sous-problèmes que je sais résoudre
avec une formule ou une fonction. Ce n'est qu'après que j'assemble ces sous-
problèmes résolus.Je te mets l'exemple des fonctions Equiv et Index pour
illustrer le méthode d'assemblage ça peut paraître trop simple pour une formule
utilisant seulement deux fonctions mais lorsqu'il y a plusieurs fonctions dans
une même formule ça peut aider.
pour un tableau se situant en A1:B10 avec entête Nom et Adresse et le nom Monique
en A3 et un tableau résultat en C1 et D1, En C1 on met le Nom Monique en D2
je mets la fonction Equiv =EQUIV(C1;A:A;0) et en D1 la fonction index
=INDEX(B:B;D2)référent à la ligne du résultat qu'il y a en D2 lorsque je dit
assembler ces deux formules, ce que je fais c'est que je copie l'intérieur de
la cellule D2 et je la colle sur le "D2" de la formule qui se trouve en cellule
D1, ce qui donne le résultat suivant
=INDEX(B:B;EQUIV(C1;A:A;0))
et ainsi de suite pour retrouver l'adresse de la cellule Monique on peut utiliser
le résultat de la cellule D2 en E2 =ADRESSE(D2;2) ou
=ADRESSE(EQUIV(C1;A:A;0);2) et on peut ensuite décaler pour trouver la valeur
d'un autre cellule
=DECALER(INDIRECT(E2);-1;0;1;1)
ou on remplace E2
=DECALER(INDIRECT(ADRESSE(D2;2));-1;0;1;1)
ou on remplace D2
=DECALER(INDIRECT(ADRESSE(EQUIV(C1;A:A;0);2));-1;0;1;1)
en espérant ne pas avoir mis le fouillis dans ta compréhension des formules
isabelle, (N°832)
Dans certains cas, quand on entre une fonction dans une cellule, celle-ci n'affiche pas le
résultat mais reste dans la cellule sous sa forme source. Existe-t-il une option qui permette
de développer ou non les fonctions ?
Dans Outils/Options Onglet Affichage, il faut décocher la case Formules
Philippe Pons, (N°831)