Bonjour,
j'ai une feuille data, où j'ai toutes mes données. Je souhaiterai extraire les données et les classer dans de nouvelles feuilles.
Pour chaque élément analysé Li, Be, B ... je vais avoir les données suivantes : Conc, Conc RSD, CPS, CPS RSD
Je souhaite extraire sur des feuilles séparées chaque données.
En partant du modèle =INDEX(data!$C$5:$T$33;EQUIV($A2;data!$A$2:$A$182;0);EQUIV(B$1;data!$B$3:$CC$3;0))
ou et comment j'insère l'info données Conc etc .... ?
Il est possible que certains éléments ne soient pas analysé dans ce cas je souhaite qu'il affiche dans la cellule NA quand pas de données.
Sur la ligne 1 j'ai copié le nom des échantillons, est-il possible de ne prendre que le nom des échantillons pour lequel la cellule C4 (dilution) dans 'data' est > à 1
enfin, dernière question c'est vraiment histoire d'éliminer toute manipulation : dans la colonne A j'ai les noms des éléments analysés. Le nom n'apparait qu'en face de l'info Conc, pour extraire les données il faudrait qu'il apparaisse aussi en face des autres données Conc RSD, CPS, CPS RSD. Est-il possible d'automatiser cela ?
Je te propose une solution qui est valable quelque soit l'onglet "donnée" sans modification à faire sur l'onglet data, avec les formules suivantes :
- En A1 : le nom de ta donnée (exemple : CPS)
- En B1 à étirer vers la droite :
Bonjour, merci de votre retour, vous utilisez des fonctions que je ne connais pas et j'ai du mal a comprendre ce qui est fait. Seul le Deuxième code fonctionne, le reste demeure vide !
Je te joins le fichier tel que je l'ai construit.
Si tu veux des explications sur certaines formules, n'hésite pas à me dire quels points tu ne comprends pas.
C'est hors de ma portée, par exemple en B1, je voudrais modifier ton code pour obtenir le nom d'échantillon qui est en fait sur la ligne 3 et pas la 1, je ne vois même pas où ça se trouve
désolée c'est vendredi soir et je suis sur mon automatisation de fichier depuis le début de semaine ....
SIERREUR(formule; valeur si erreur) va mettre une valeur choisie (ici c'est "") dans le cas où la formule est renvoie une erreur, ce qui est le cas quand il n'y a pas de correspondance.
INDEX(plage; ligne; colonne) va chercher la valeur pointée dans la 'plage' de la cellule selon sa position relative dans cette plage (ex: si ligne=1 et colonne=1 alors la valeur retournée est celle de la première cellule de la plage).
Dans la formule INDEX(), ici 'ligne'=1 et 'colonne'=PETITE.VALEUR(...), donc si tu mets 3 au lieu de 1, tu pointeras sur la 3ème ligne de 'plage'.
Celle-ci commençant à "A1", la 3ème ligne de 'plage' est la 3ème ligne de l'onglet.
Merci pour ce retour. Je m'y remet aujourd'hui après 1 semaine de congés !!!
Petite question : comment fais tu pour que ta formule soit valable pour toute la feuille sans à avoir à étendre ta formule sur des lignes et colonnes supplémentaires ou a supprimer des lignes et colonnes quand le format change ?
SIERREUR(formule; valeur si erreur) va mettre une valeur choisie (ici c'est "") dans le cas où la formule est renvoie une erreur, ce qui est le cas quand il n'y a pas de correspondance.
INDEX(plage; ligne; colonne) va chercher la valeur pointée dans la 'plage' de la cellule selon sa position relative dans cette plage (ex: si ligne=1 et colonne=1 alors la valeur retournée est celle de la première cellule de la plage).
Dans la formule INDEX(), ici 'ligne'=1 et 'colonne'=PETITE.VALEUR(...), donc si tu mets 3 au lieu de 1, tu pointeras sur la 3ème ligne de 'plage'.
Celle-ci commençant à "A1", la 3ème ligne de 'plage' est la 3ème ligne de l'onglet.
Bonjour, J'essaye de rajouter dans ton code la condition supplémentaire que la cellule sur la ligne4 doit être différent de 1 ou bien que la cellule dans ligne 3 doit contenir blet et donc afficher la cellule dans ligne 3
Bonjour, j'ai essayé avec ce code :
=INDEX(data!$C$5:$CG$342;EQUIV($A2&$A$1;data!$A5:$A342&data!$B5:$B342;0);EQUIV(B$1;data!C$3:CG$3;0))
mais j'ai une erreur et je n'arrive pas à trouvé d'où elle provient (afin d'afficher la valeur de la cellule qui correspond à 7 LI (2) & BC1 & CPS)
Merci pour ce retour. Je m'y remet aujourd'hui après 1 semaine de congés !!!
Petite question : comment fais tu pour que ta formule soit valable pour toute la feuille sans à avoir à étendre ta formule sur des lignes et colonnes supplémentaires ou a supprimer des lignes et colonnes quand le format change ?
Si j'ai bien compris, il faut utiliser la fonction DECALER() sur les plages concernées en combinaison avec la fonction NBVAL() appliquées à la colonne B et à la ligne 1.
Je regarderai les autres points demain, n'hésite pas à remettre des exemples (avec le résultat réalisé manuellement de ce que tu veux obtenir) pour que tes demandes soient plus claires.
Bonjour Nairolf, merci pour ton retour. ça marche impeccable ... par contre où la c'est hard ! pas certaine d'être capable de la réutiliser dans d'autres situations!
Pour comprendre ce qui a été fait, le mieux est de décomposer fonction par fonction en commençant par la fonction la plus imbriquée.
Un moment je travaille sur des matrices, le symbole * est un "et logique" et le symbole + est "ou logique".
Exemples :
(matA=1)*(matB="test") , ici je cherche la combinaison de conditions qui doivent-être vrai toutes les deux.
(matA=1)+(matB="test") , là je cherche la combinaison de conditions pour lesquelles au moins une doit être vrai.
Pour comprendre ce qui a été fait, le mieux est de décomposer fonction par fonction en commençant par la fonction la plus imbriquée.
Un moment je travaille sur des matrices, le symbole * est un "et logique" et le symbole + est "ou logique".
Exemples :
(matA=1)*(matB="test") , ici je cherche la combinaison de conditions qui doivent-être vrai toutes les deux.
(matA=1)+(matB="test") , là je cherche la combinaison de conditions pour lesquelles au moins une doit être vrai.
Bonjour Nairolf,
j'ai donc essayé de décortiqué ton code afin de pouvoir l'utiliser dans d'autres situations très proches.
je n'arrive pas à comprendre dans tes formules décaller que vient faire le -1 après la (largeur)