Problème fonction imbriquée
Résolu
DIM72
-
qwerty- Messages postés 14574 Date d'inscription Statut Contributeur Dernière intervention -
qwerty- Messages postés 14574 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une base de données de patient avec leur code postal de domicile, qui se met à jour automatiquement une fois par semaine;
Je fais un tableau croisé de ces données pour avoir une représentation graphique avec un regroupement dans le tableau croisé par quelques départements qui m'intéressent; malheureusement lors des mises à jour les regroupements ne se font pas automatiquement;
Je souhaite donc les faire dans ma base de données en utilsant soit la recherchev ou la fonction cherche qui marchent séparément:
=SI(CHERCHE("61***";K:K);"ORNE")
=SI(CHERCHE("72***";K:K);"SARTHE")
ou
=SI(RECHERCHEV(K:K;CP!D:D;1;FAUX);"ORNE";"FAUX")
=SI(RECHERCHEV(K:K;CP!F:F;1;FAUX);"SARTHE";"FAUX")
mais si je les cumulent je n'en ai qu'une qui fonctionne
=SI(CHERCHE("72***";K:K);"SARTHE";SI(CHERCHE("61***";K:K);"ORNE")) ici j'ai SARTHE mais les valeurs ORNE sont #VALEUR!
ou
=SI(RECHERCHEV(K:K;CP!D:D;1;0);"ORNE";SI(RECHERCHEV(K:K;CP!F:F;1;0);"SARTHE") ici j'ai l'ORNE mais pas la SARTHE
Merci de m'aider et de me montrer mes erreurs
J'ai une base de données de patient avec leur code postal de domicile, qui se met à jour automatiquement une fois par semaine;
Je fais un tableau croisé de ces données pour avoir une représentation graphique avec un regroupement dans le tableau croisé par quelques départements qui m'intéressent; malheureusement lors des mises à jour les regroupements ne se font pas automatiquement;
Je souhaite donc les faire dans ma base de données en utilsant soit la recherchev ou la fonction cherche qui marchent séparément:
=SI(CHERCHE("61***";K:K);"ORNE")
=SI(CHERCHE("72***";K:K);"SARTHE")
ou
=SI(RECHERCHEV(K:K;CP!D:D;1;FAUX);"ORNE";"FAUX")
=SI(RECHERCHEV(K:K;CP!F:F;1;FAUX);"SARTHE";"FAUX")
mais si je les cumulent je n'en ai qu'une qui fonctionne
=SI(CHERCHE("72***";K:K);"SARTHE";SI(CHERCHE("61***";K:K);"ORNE")) ici j'ai SARTHE mais les valeurs ORNE sont #VALEUR!
ou
=SI(RECHERCHEV(K:K;CP!D:D;1;0);"ORNE";SI(RECHERCHEV(K:K;CP!F:F;1;0);"SARTHE") ici j'ai l'ORNE mais pas la SARTHE
Merci de m'aider et de me montrer mes erreurs
A voir également:
- Problème fonction imbriquée
- Fonction si et - Guide
- Liste imbriquée excel - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
4 réponses
Bonjour DIM,
tu sembles t'être embarquée dans un sacré mic-mac. Avec tes fonctions CHERCHE imbriquées, ça pose problème car il suffit qu'une des fonction CHERCHE renvoie une erreur pour que formule complète renvoie aussi #VALEUR!
Suggestion :
- tu crées une petite liste à 2 colonnes avec le n° du département en colonne 1 et le nom du département en colonne 2 (elle peut être dans une autre feuille) ;
- tu donnes un nom à cette liste (Insertion / Nom / Définir), par exemple DEPARTEMENT
- dans ta base de données, tu écris la formule suivante :
=RECHERCHEV(CNUM(GAUCHE(K1;2));DEPARTEMENT;2;FAUX)
Si ton code postal est en K1,
la fonction GAUCHE(K1;2) prend les 2 premiers caractères de gauche
la fonction CNUM le transforme en nombre
la fonction RECHERCHEV va chercher le n° du département dans ta liste
I.
tu sembles t'être embarquée dans un sacré mic-mac. Avec tes fonctions CHERCHE imbriquées, ça pose problème car il suffit qu'une des fonction CHERCHE renvoie une erreur pour que formule complète renvoie aussi #VALEUR!
Suggestion :
- tu crées une petite liste à 2 colonnes avec le n° du département en colonne 1 et le nom du département en colonne 2 (elle peut être dans une autre feuille) ;
- tu donnes un nom à cette liste (Insertion / Nom / Définir), par exemple DEPARTEMENT
- dans ta base de données, tu écris la formule suivante :
=RECHERCHEV(CNUM(GAUCHE(K1;2));DEPARTEMENT;2;FAUX)
Si ton code postal est en K1,
la fonction GAUCHE(K1;2) prend les 2 premiers caractères de gauche
la fonction CNUM le transforme en nombre
la fonction RECHERCHEV va chercher le n° du département dans ta liste
I.
tu n'as jamais essayé ACCESS, c'est une base de données et c'est pratique pour les.......bases de données !
ou alors décompose en deux étapes :
-d'abord une RECHERCHEV du code postal dans une table qui contient tes cas spécifiques ; tous les autres renverront #N/A
-ensuite une RECHERCHEV des 2 premiers chiffres du code postal dans une table qui contient tous les départements, précédée d'un test =SI(ESTNA(...); ....; ....)
I.
-d'abord une RECHERCHEV du code postal dans une table qui contient tes cas spécifiques ; tous les autres renverront #N/A
-ensuite une RECHERCHEV des 2 premiers chiffres du code postal dans une table qui contient tous les départements, précédée d'un test =SI(ESTNA(...); ....; ....)
I.
Pour que tu comprennes je te donnes les différentes lignes de mon tableau croisé et donc de mon garphique souhaité:
1- SARTHE tous les 72 sauf ceux des lignes suivantes
2- La FERTE BERNARD ( 72400)
3- CANTONS proche LA FERTE BERNARD ( 72160,72110,72320,72450)
4- ORNE
5- EURE et LOIR
6- DIVERS ( tous les autres codes postaux possibles)
Mon problème c'st que cela marche sans problème en faisant grouper dans le tableau croisé; mais je suis obligé de dissocier le tout régulièremet et de regrouper le tout ensuite; suite aux mises à jour de ma base de données
Tu vois pourquoi je voulais passer par des SI et recherch.....
Si tu as une idée, je te remercierais du fond du coeur
A+