Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lien fichier : recherche dynamique pour synthèse données

5 réponses
Avatar
axel
Bonjour,

je travaille sur une synthèse automatique de données issue d'un CSV.

Ce csv contient (ou non) des produits "transport" utilisés par mes clients
et le montant
qui leur est facturé en fonction de diverses options qu'il choisissent.

Ma synthèse doit définir si le produit est utilisé (INDEX) et ensuite
définir si
à l'intérieur du produit (8V, 8R...) en question , les options sont
utilisées (Trafic REG, Trafic NAT...)
et faire des totaux.

Mon problème :
dans la mesure où les produits ou les options ne sont pas utilisés, ils ne
figurent pas dans mon CSV. Ce qui confère au fichier un aspect dynamique.
J'arrive bien à déterminer si le produit existe (car toujours en colonne B),
mais lorque j'ai trouvé la ligne du produit, je ne trouve pas la bonne
formule pour lui dire de cherche telle ou telle option (par ex "Trafic REG")
à l'intérieur du produit.

A toutes fins utiles, http://abpostman1.free.fr/Classeur1.xls

Mon mail : abpostman1@free.fr

Bien à vous.
Axel

5 réponses

Avatar
Trirème
Bonjour Axel,
Je croix deviner la structure de l'onglet '1'...
Les blocs alternés contiennent des infos clients et des infos commandes. Il s'agit du même
client pour l'onglet considéré (?)

Évidemment, de la structure de l'onglet '1' dépendent toutes les formules proposées.

Tu as l'air de manier la fonction EQUIV() et la fonction DECALER().
Utilise la fonction EQUIV pour chercher dans la ligne d'entête du 'bloc commande' quelle
est la colonne où se trouve l'option, si elle est choisie.
Tu sais repérer la ligne produit (colonne 'C'). La ligne d'entête du 'bloc' commande est
apparemment toujours la 2ème en-dessous.
Tu peux alors isoler cette ligne avec :
DECALER('1'!$1:$1;C2+1;;;) bien sûr, '+1' et non pas '+2'.

Dans cette plage (d'une seule ligne) tu repères la colonne que tu veux avec :
=EQUIV(" CA net REG ";DECALER('1'!$1:$1;C2+1;;;);0)
Note qu'ici, le "que tu veux" (entre guillemets dans la formule) comporte un(e) espace
avant et après (!!!) Bonjour les problèmes, surtout que dans l'onglet '1' ces libellés
n'ont parfois pas le même nombre d'espace. Gloups !
Le mieux serait que dans l'onglet 'Feuil1' tu écrives les mêmes entêtes susceptibles
d'être trouvés dans le fichier CSV et que tu les utilises dans la formule. Par exemple, en
Feuil1!F1 tu écris "CA net REG" (sans les guillemets) et tu rectifies la formule comme ceci :
=EQUIV("*"&F$1"*";DECALER('1'!$1:$1;$C2+1;;;);0)
Note bien les '$' qui te permettront de copier la formule vers la droite et vers le bas en
tirant sur la poignée de la cellule, sans avoir à la ré-écrire.

Erreurs possibles, le mot " CA net REG " n'existe pas ou il existe plusieurs fois dans la
ligne d'entête du fichier CSV.
Si le " CA net REG " n'existe pas dans la ligne d'en-tête, tu auras un #N/A. C'est un
résultat comme un autre. Comme l'onglet 'Feuil1' semble être une feuille de travail, à ta
place je gérerais l'erreur plus tard. C'est une affaire de goût ;-)
Si le " CA net REG " existe plusieurs fois... tes données sont pourries, noie ton chagrin
dans un bon verre de Chivas, de Chimay ou de Chirouble ;-)

Pour repérer la ligne du total des commandes annuelles on peut utiliser cette formule
matricielle (validation : CTRL+MAJ+Entrée) à mettre à la place de celle en colonne A.
Exemple pour la ligne 2 =EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0)
Note le '1000' qui suppose un maximum de 1000 lignes dans le fichier CSV. A adapter.

Pour finir, voici ce que pourrait être la formule à mettre en Feuil1!F2
=INDEX('1'!$1:$1000;$A2;EQUIV(" CA net reg ";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))

et si tu optes pour l'utilisation (dans 'Feuil1') des entêtes reçus dans le CSV...
=INDEX('1'!$1:$1000;$A2;EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0)) à mettre
en Feuil1!F2 et à recopier vers le bas et vers la droite là où c'est nécessaire.

Et cette fois, sans utiliser les colonnes intermédiaires A et C de la 'Feuil1' :
=INDEX('1'!$1:$1000;EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0);EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
en validation matricielle (CTRL+MAJ+Entrée) à mettre en Feuil1!F2 et à recopier vers le
bas et vers la droite là où c'est nécessaire.

Voila, j'espère que tu vas t'y retrouver. N'hésite pas à demander des précisions.
Cordialement,

Trirème

Bonjour,

je travaille sur une synthèse automatique de données issue d'un CSV.

Ce csv contient (ou non) des produits "transport" utilisés par mes clients
et le montant
qui leur est facturé en fonction de diverses options qu'il choisissent.

Ma synthèse doit définir si le produit est utilisé (INDEX) et ensuite
définir si
à l'intérieur du produit (8V, 8R...) en question , les options sont
utilisées (Trafic REG, Trafic NAT...)
et faire des totaux.

Mon problème :
dans la mesure où les produits ou les options ne sont pas utilisés, ils ne
figurent pas dans mon CSV. Ce qui confère au fichier un aspect dynamique.
J'arrive bien à déterminer si le produit existe (car toujours en colonne B),
mais lorque j'ai trouvé la ligne du produit, je ne trouve pas la bonne
formule pour lui dire de cherche telle ou telle option (par ex "Trafic REG")
à l'intérieur du produit.

A toutes fins utiles, http://abpostman1.free.fr/Classeur1.xls

Mon mail :

Bien à vous.
Axel






Avatar
axel
Merci à toi Trirème,

Déjà tard ce soir pour analyser et appliquer toute ta science
je me pencherai dessus demain.

En outre, je te remercie mille fois pour ta serviabilité et te souhaite
une très bonne nuit.

Bien cordialement.

Axel.

+++++++++++++++++++++++++++++++++++++++++++++++



"Trirème" a écrit dans le message de news:
%23TfOD%
Bonjour Axel,
Je croix deviner la structure de l'onglet '1'...
Les blocs alternés contiennent des infos clients et des infos commandes.
Il s'agit du même client pour l'onglet considéré (?)

Évidemment, de la structure de l'onglet '1' dépendent toutes les formules
proposées.

Tu as l'air de manier la fonction EQUIV() et la fonction DECALER().
Utilise la fonction EQUIV pour chercher dans la ligne d'entête du 'bloc
commande' quelle est la colonne où se trouve l'option, si elle est
choisie.
Tu sais repérer la ligne produit (colonne 'C'). La ligne d'entête du
'bloc' commande est apparemment toujours la 2ème en-dessous.
Tu peux alors isoler cette ligne avec :
DECALER('1'!$1:$1;C2+1;;;) bien sûr, '+1' et non pas '+2'.

Dans cette plage (d'une seule ligne) tu repères la colonne que tu veux
avec :
=EQUIV(" CA net REG ";DECALER('1'!$1:$1;C2+1;;;);0)
Note qu'ici, le "que tu veux" (entre guillemets dans la formule) comporte
un(e) espace avant et après (!!!) Bonjour les problèmes, surtout que dans
l'onglet '1' ces libellés n'ont parfois pas le même nombre d'espace.
Gloups !
Le mieux serait que dans l'onglet 'Feuil1' tu écrives les mêmes entêtes
susceptibles d'être trouvés dans le fichier CSV et que tu les utilises
dans la formule. Par exemple, en Feuil1!F1 tu écris "CA net REG" (sans les
guillemets) et tu rectifies la formule comme ceci :
=EQUIV("*"&F$1"*";DECALER('1'!$1:$1;$C2+1;;;);0)
Note bien les '$' qui te permettront de copier la formule vers la droite
et vers le bas en tirant sur la poignée de la cellule, sans avoir à la
ré-écrire.

Erreurs possibles, le mot " CA net REG " n'existe pas ou il existe
plusieurs fois dans la ligne d'entête du fichier CSV.
Si le " CA net REG " n'existe pas dans la ligne d'en-tête, tu auras un
#N/A. C'est un résultat comme un autre. Comme l'onglet 'Feuil1' semble
être une feuille de travail, à ta place je gérerais l'erreur plus tard.
C'est une affaire de goût ;-)
Si le " CA net REG " existe plusieurs fois... tes données sont pourries,
noie ton chagrin dans un bon verre de Chivas, de Chimay ou de Chirouble
;-)

Pour repérer la ligne du total des commandes annuelles on peut utiliser
cette formule matricielle (validation : CTRL+MAJ+Entrée) à mettre à la
place de celle en colonne A.
Exemple pour la ligne 2
=EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0)
Note le '1000' qui suppose un maximum de 1000 lignes dans le fichier CSV.
A adapter.

Pour finir, voici ce que pourrait être la formule à mettre en Feuil1!F2
=INDEX('1'!$1:$1000;$A2;EQUIV(" CA net reg
";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))

et si tu optes pour l'utilisation (dans 'Feuil1') des entêtes reçus dans
le CSV...
=INDEX('1'!$1:$1000;$A2;EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))
à mettre en Feuil1!F2 et à recopier vers le bas et vers la droite là où
c'est nécessaire.

Et cette fois, sans utiliser les colonnes intermédiaires A et C de la
'Feuil1' :
=INDEX('1'!$1:$1000;EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0);EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
en validation matricielle (CTRL+MAJ+Entrée) à mettre en Feuil1!F2 et à
recopier vers le bas et vers la droite là où c'est nécessaire.

Voila, j'espère que tu vas t'y retrouver. N'hésite pas à demander des
précisions.
Cordialement,

Trirème

Bonjour,

je travaille sur une synthèse automatique de données issue d'un CSV.

Ce csv contient (ou non) des produits "transport" utilisés par mes
clients
et le montant
qui leur est facturé en fonction de diverses options qu'il choisissent.

Ma synthèse doit définir si le produit est utilisé (INDEX) et ensuite
définir si
à l'intérieur du produit (8V, 8R...) en question , les options sont
utilisées (Trafic REG, Trafic NAT...)
et faire des totaux.

Mon problème :
dans la mesure où les produits ou les options ne sont pas utilisés, ils
ne
figurent pas dans mon CSV. Ce qui confère au fichier un aspect dynamique.
J'arrive bien à déterminer si le produit existe (car toujours en colonne
B),
mais lorque j'ai trouvé la ligne du produit, je ne trouve pas la bonne
formule pour lui dire de cherche telle ou telle option (par ex "Trafic
REG")
à l'intérieur du produit.

A toutes fins utiles, http://abpostman1.free.fr/Classeur1.xls

Mon mail :

Bien à vous.
Axel







Avatar
axel
Bonjour Trirème,

les options que tu me proposent semble efficaces et les premiers
résultats sont ceux attendus.

Une question tout de même:
Je suis un excelliste débutant et je n'ai pas pour habitude d'utiliser ce
type de ref:
$1:$1. Quelle différence y a t'il entre cette dernière et A1 ?

Merci de ton aide.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


"axel" a écrit dans le message de news:
46b63228$0$18873$
Merci à toi Trirème,

Déjà tard ce soir pour analyser et appliquer toute ta science
je me pencherai dessus demain.

En outre, je te remercie mille fois pour ta serviabilité et te souhaite
une très bonne nuit.

Bien cordialement.

Axel.

+++++++++++++++++++++++++++++++++++++++++++++++



"Trirème" a écrit dans le message de news:
%23TfOD%
Bonjour Axel,
Je croix deviner la structure de l'onglet '1'...
Les blocs alternés contiennent des infos clients et des infos commandes.
Il s'agit du même client pour l'onglet considéré (?)

Évidemment, de la structure de l'onglet '1' dépendent toutes les formules
proposées.

Tu as l'air de manier la fonction EQUIV() et la fonction DECALER().
Utilise la fonction EQUIV pour chercher dans la ligne d'entête du 'bloc
commande' quelle est la colonne où se trouve l'option, si elle est
choisie.
Tu sais repérer la ligne produit (colonne 'C'). La ligne d'entête du
'bloc' commande est apparemment toujours la 2ème en-dessous.
Tu peux alors isoler cette ligne avec :
DECALER('1'!$1:$1;C2+1;;;) bien sûr, '+1' et non pas '+2'.

Dans cette plage (d'une seule ligne) tu repères la colonne que tu veux
avec :
=EQUIV(" CA net REG ";DECALER('1'!$1:$1;C2+1;;;);0)
Note qu'ici, le "que tu veux" (entre guillemets dans la formule) comporte
un(e) espace avant et après (!!!) Bonjour les problèmes, surtout que dans
l'onglet '1' ces libellés n'ont parfois pas le même nombre d'espace.
Gloups !
Le mieux serait que dans l'onglet 'Feuil1' tu écrives les mêmes entêtes
susceptibles d'être trouvés dans le fichier CSV et que tu les utilises
dans la formule. Par exemple, en Feuil1!F1 tu écris "CA net REG" (sans
les guillemets) et tu rectifies la formule comme ceci :
=EQUIV("*"&F$1"*";DECALER('1'!$1:$1;$C2+1;;;);0)
Note bien les '$' qui te permettront de copier la formule vers la droite
et vers le bas en tirant sur la poignée de la cellule, sans avoir à la
ré-écrire.

Erreurs possibles, le mot " CA net REG " n'existe pas ou il existe
plusieurs fois dans la ligne d'entête du fichier CSV.
Si le " CA net REG " n'existe pas dans la ligne d'en-tête, tu auras un
#N/A. C'est un résultat comme un autre. Comme l'onglet 'Feuil1' semble
être une feuille de travail, à ta place je gérerais l'erreur plus tard.
C'est une affaire de goût ;-)
Si le " CA net REG " existe plusieurs fois... tes données sont pourries,
noie ton chagrin dans un bon verre de Chivas, de Chimay ou de Chirouble
;-)

Pour repérer la ligne du total des commandes annuelles on peut utiliser
cette formule matricielle (validation : CTRL+MAJ+Entrée) à mettre à la
place de celle en colonne A.
Exemple pour la ligne 2
=EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0)
Note le '1000' qui suppose un maximum de 1000 lignes dans le fichier CSV.
A adapter.

Pour finir, voici ce que pourrait être la formule à mettre en Feuil1!F2
=INDEX('1'!$1:$1000;$A2;EQUIV(" CA net reg
";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))

et si tu optes pour l'utilisation (dans 'Feuil1') des entêtes reçus dans
le CSV...
=INDEX('1'!$1:$1000;$A2;EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))
à mettre en Feuil1!F2 et à recopier vers le bas et vers la droite là où
c'est nécessaire.

Et cette fois, sans utiliser les colonnes intermédiaires A et C de la
'Feuil1' :
=INDEX('1'!$1:$1000;EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0);EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
en validation matricielle (CTRL+MAJ+Entrée) à mettre en Feuil1!F2 et à
recopier vers le bas et vers la droite là où c'est nécessaire.

Voila, j'espère que tu vas t'y retrouver. N'hésite pas à demander des
précisions.
Cordialement,

Trirème

Bonjour,

je travaille sur une synthèse automatique de données issue d'un CSV.

Ce csv contient (ou non) des produits "transport" utilisés par mes
clients
et le montant
qui leur est facturé en fonction de diverses options qu'il choisissent.

Ma synthèse doit définir si le produit est utilisé (INDEX) et ensuite
définir si
à l'intérieur du produit (8V, 8R...) en question , les options sont
utilisées (Trafic REG, Trafic NAT...)
et faire des totaux.

Mon problème :
dans la mesure où les produits ou les options ne sont pas utilisés, ils
ne
figurent pas dans mon CSV. Ce qui confère au fichier un aspect
dynamique.
J'arrive bien à déterminer si le produit existe (car toujours en colonne
B),
mais lorque j'ai trouvé la ligne du produit, je ne trouve pas la bonne
formule pour lui dire de cherche telle ou telle option (par ex "Trafic
REG")
à l'intérieur du produit.

A toutes fins utiles, http://abpostman1.free.fr/Classeur1.xls

Mon mail :

Bien à vous.
Axel










Avatar
Trirème
Bonjour Axel,


... je n'ai pas pour habitude d'utiliser ce
type de ref:
$1:$1. Quelle différence y a t'il entre cette dernière et A1 ?


Dans le cas de la fonction DECALER(), le premier argument peut être à peu près n'importe
qu'elle référence, mais alors les autres paramètres doivent être adaptés en conséquence.
Si on ne précise pas les autres paramètres, leur valeur par défaut est celle du premier
argument.
Dans ce cas précis, à la place de DECALER('1'!$1:$1;C2+1;;;) où la référence de départ est
la première ligne (256 colonnes) j'aurais pu écrire DECALER('1'!A1;C2+1;;;256), le dernier
argument précisant la largeur de la nouvelle plage, fixée à 256 (si l'entête est très long
il vaut mieux prévoir large).
On aurait pu écrire aussi DECALER('1'!$1:$65536;C2+1;;1;), partant de toute la feuille, on
réduit à une plage de 1 seule ligne et gardant les 256 colonnes (par défaut).

Tu as certainement vu une erreur dans la formule :
=EQUIV("*"&F$1"*";DECALER('1'!$1:$1;$C2+1;;;);0) où j'ai oublié un '&'. Il fallait lire :
=EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;$C2+1;;;);0)

Encore une chose. Les formules matricielles, si elles sont nombreuses et/ou si elles font
référence à de grandes plages peuvent ralentir les calculs dans la feuille. De plus,
lorsqu'on les édite, il faut toujours penser à la validation à 3 doigts. J'en avais
proposé une pour trouver la position de la ligne 'Tot' d'un article donné, mais ta
solution avec NB.SI() est bonne dans la mesure où la ligne 'Tot' est toujours (?) la
dernière. Je te propose alors (définitivement ?) à la place de :

Et cette fois, sans utiliser les colonnes intermédiaires A et C de la
'Feuil1' :
=INDEX('1'!$1:$1000;EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0);EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
en validation matricielle (CTRL+MAJ+Entrée) à mettre en Feuil1!F2 et à
recopier vers le bas et vers la droite là où c'est nécessaire.




cette formule :
=INDEX('1'!$1:$1000;EQUIV($B2;'1'!$B:$B;0)+NB.SI('1'!$B:$B;$B2)+1;EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
En plus elle est plus courte. Et tu peux pas savoir le nombre de vicieux que ça amuse de
montrer qu'ils en ont une plus courte.
:-)

Cordialement,
Trirème



Avatar
axel
Bonjour,

mieux vaut tard que jamais.
Le conseil que tu 'm'as donnés , Trirème on bien fait l'affaire.
Mon projet prend bien forme, malgré le peu de temps que je
peux y consacrer.

Merci encore pour le coup de pouce.

Bien cordialement.




"Trirème" a écrit dans le message de news:
%23TfOD%
Bonjour Axel,
Je croix deviner la structure de l'onglet '1'...
Les blocs alternés contiennent des infos clients et des infos commandes.
Il s'agit du même client pour l'onglet considéré (?)

Évidemment, de la structure de l'onglet '1' dépendent toutes les formules
proposées.

Tu as l'air de manier la fonction EQUIV() et la fonction DECALER().
Utilise la fonction EQUIV pour chercher dans la ligne d'entête du 'bloc
commande' quelle est la colonne où se trouve l'option, si elle est
choisie.
Tu sais repérer la ligne produit (colonne 'C'). La ligne d'entête du
'bloc' commande est apparemment toujours la 2ème en-dessous.
Tu peux alors isoler cette ligne avec :
DECALER('1'!$1:$1;C2+1;;;) bien sûr, '+1' et non pas '+2'.

Dans cette plage (d'une seule ligne) tu repères la colonne que tu veux
avec :
=EQUIV(" CA net REG ";DECALER('1'!$1:$1;C2+1;;;);0)
Note qu'ici, le "que tu veux" (entre guillemets dans la formule) comporte
un(e) espace avant et après (!!!) Bonjour les problèmes, surtout que dans
l'onglet '1' ces libellés n'ont parfois pas le même nombre d'espace.
Gloups !
Le mieux serait que dans l'onglet 'Feuil1' tu écrives les mêmes entêtes
susceptibles d'être trouvés dans le fichier CSV et que tu les utilises
dans la formule. Par exemple, en Feuil1!F1 tu écris "CA net REG" (sans les
guillemets) et tu rectifies la formule comme ceci :
=EQUIV("*"&F$1"*";DECALER('1'!$1:$1;$C2+1;;;);0)
Note bien les '$' qui te permettront de copier la formule vers la droite
et vers le bas en tirant sur la poignée de la cellule, sans avoir à la
ré-écrire.

Erreurs possibles, le mot " CA net REG " n'existe pas ou il existe
plusieurs fois dans la ligne d'entête du fichier CSV.
Si le " CA net REG " n'existe pas dans la ligne d'en-tête, tu auras un
#N/A. C'est un résultat comme un autre. Comme l'onglet 'Feuil1' semble
être une feuille de travail, à ta place je gérerais l'erreur plus tard.
C'est une affaire de goût ;-)
Si le " CA net REG " existe plusieurs fois... tes données sont pourries,
noie ton chagrin dans un bon verre de Chivas, de Chimay ou de Chirouble
;-)

Pour repérer la ligne du total des commandes annuelles on peut utiliser
cette formule matricielle (validation : CTRL+MAJ+Entrée) à mettre à la
place de celle en colonne A.
Exemple pour la ligne 2
=EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0)
Note le '1000' qui suppose un maximum de 1000 lignes dans le fichier CSV.
A adapter.

Pour finir, voici ce que pourrait être la formule à mettre en Feuil1!F2
=INDEX('1'!$1:$1000;$A2;EQUIV(" CA net reg
";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))

et si tu optes pour l'utilisation (dans 'Feuil1') des entêtes reçus dans
le CSV...
=INDEX('1'!$1:$1000;$A2;EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;Feuil1!$C2+1;;;);0))
à mettre en Feuil1!F2 et à recopier vers le bas et vers la droite là où
c'est nécessaire.

Et cette fois, sans utiliser les colonnes intermédiaires A et C de la
'Feuil1' :
=INDEX('1'!$1:$1000;EQUIV($B2&"Tot";'1'!$B$1:$B$1000&'1'!$C$1:$C$1000;0);EQUIV("*"&F$1&"*";DECALER('1'!$1:$1;EQUIV($B2;'1'!$B:$B;0)+1;;;);0))
en validation matricielle (CTRL+MAJ+Entrée) à mettre en Feuil1!F2 et à
recopier vers le bas et vers la droite là où c'est nécessaire.

Voila, j'espère que tu vas t'y retrouver. N'hésite pas à demander des
précisions.
Cordialement,

Trirème

Bonjour,

je travaille sur une synthèse automatique de données issue d'un CSV.

Ce csv contient (ou non) des produits "transport" utilisés par mes
clients
et le montant
qui leur est facturé en fonction de diverses options qu'il choisissent.

Ma synthèse doit définir si le produit est utilisé (INDEX) et ensuite
définir si
à l'intérieur du produit (8V, 8R...) en question , les options sont
utilisées (Trafic REG, Trafic NAT...)
et faire des totaux.

Mon problème :
dans la mesure où les produits ou les options ne sont pas utilisés, ils
ne
figurent pas dans mon CSV. Ce qui confère au fichier un aspect dynamique.
J'arrive bien à déterminer si le produit existe (car toujours en colonne
B),
mais lorque j'ai trouvé la ligne du produit, je ne trouve pas la bonne
formule pour lui dire de cherche telle ou telle option (par ex "Trafic
REG")
à l'intérieur du produit.

A toutes fins utiles, http://abpostman1.free.fr/Classeur1.xls

Mon mail :

Bien à vous.
Axel