XL pour MAC extraire des données et les trier en fonction du contenu de certaines cellules

clineM

XLDnaute Junior
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 ?

Merci
 

Pièces jointes

  • exemple.xlsx
    26.6 KB · Affichages: 31

Nairolf

XLDnaute Accro
Salut,

Le DECALER() dans la fonction suivante :
Code:
DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1)
est utilisé car nous commençons à partir de $B$3, on pourrait le retirer si nous partions de $A$3.

Par rapport à ton nouveau fichier:
Pour l'onglet 'Blks', tu as bien formuler la condition, ce qui est un peu plus tendu est de le rendre dynamique, donc en utilisant la même structure que mes formules précédentes, cela donne la formule suivante :
Code:
=INDEX(DECALER(data!$A$1;;;NBVAL(data!$B:$B);NBVAL(data!$1:$1));1;PETITE.VALEUR(SI(ESTNUM(CHERCHE("BC";DECALER(data!$B$1;;;;NBVAL(data!$1:$1)-1)));COLONNE(DECALER(data!$B$1;;;;NBVAL(data!$1:$1)-1));"");COLONNE()-1))

Pour l'onglet 'Resultats', tu y étais presque, la formule (pas besoin de validation matricielle) est la suivante (il y a un +1 à enlever car tu as une colonne avec une valeur vide en moins sur la ligne 1 par rapport au fichier précédent, et, tu as mis <>1 au lieu de >1) :
Code:
=INDEX(DECALER(data!$A$1;;;NBVAL(data!$B:$B);NBVAL(data!$1:$1));1;PETITE.VALEUR(SI((DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1)>1);COLONNE(DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1));"");COLONNE()-1))
 

clineM

XLDnaute Junior
Merci, entre temps j'avais réussi pour les résultats ! par contre merci pour les blks ... je vais potasser ton code ! Car je viens enfin de terminer l'automatisation de mon premier fichier ! maintenant j'attaque le second qui va être un contrôle qualité des données du premier ... je pense que je vais m'arracher les cheveux ! merci en tous cas d'avoir pris du temps pour me dépanner et m'expliquer tout ça ! faut que je pense à faire une formation pour être un peu plus autonome !
 

clineM

XLDnaute Junior
Salut,

Le DECALER() dans la fonction suivante :
Code:
DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1)
est utilisé car nous commençons à partir de $B$3, on pourrait le retirer si nous partions de $A$3.

Par rapport à ton nouveau fichier:
Pour l'onglet 'Blks', tu as bien formuler la condition, ce qui est un peu plus tendu est de le rendre dynamique, donc en utilisant la même structure que mes formules précédentes, cela donne la formule suivante :
Code:
=INDEX(DECALER(data!$A$1;;;NBVAL(data!$B:$B);NBVAL(data!$1:$1));1;PETITE.VALEUR(SI(ESTNUM(CHERCHE("BC";DECALER(data!$B$1;;;;NBVAL(data!$1:$1)-1)));COLONNE(DECALER(data!$B$1;;;;NBVAL(data!$1:$1)-1));"");COLONNE()-1))

Pour l'onglet 'Resultats', tu y étais presque, la formule (pas besoin de validation matricielle) est la suivante (il y a un +1 à enlever car tu as une colonne avec une valeur vide en moins sur la ligne 1 par rapport au fichier précédent, et, tu as mis <>1 au lieu de >1) :
Code:
=INDEX(DECALER(data!$A$1;;;NBVAL(data!$B:$B);NBVAL(data!$1:$1));1;PETITE.VALEUR(SI((DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1)>1);COLONNE(DECALER(data!$B$3;;;;NBVAL(data!$1:$1)-1));"");COLONNE()-1))
Bonjour Nairolf, j'ai vraiment du mal à rendre mon fichier dynamique. Je rencontre toujours le même problème, je dois exclure des données mais mes colonnes reste vide au lieu de décaler les résultats.
Je n'arrive pas à appliquer la fonction décaler !
ci-joint un nouvel exemple. Ici je dois éliminer les BC. Comment modifier mon code pour le rendre dynamique?
 

Pièces jointes

  • test.xlsx
    43.8 KB · Affichages: 5

Nairolf

XLDnaute Accro
Salut,

Voici la solution en B4 :
Code:
=SIERREUR(INDEX(DECALER(Results!$A$4;;;NBVAL(Results!$A:$A);NBVAL(Results!$4:$4));1;PETITE.VALEUR(SI(ESTNUM(CHERCHE("BC";DECALER(Results!$B$4;;;;NBVAL(Results!$4:$4)-1)));"";COLONNE(DECALER(Results!$B$4;;;;NBVAL(Results!$4:$4)-1)));COLONNE()-1));"")

En fait il faut indiquer quelles sont les cellules, lignes et colonnes de départ, ici ton tableau commençant en 'A4' :
- la colonne sur laquelle on compte le nombre de valeurs (avec NBVAL()) est la colonne 'A'
- la ligne sur laquelle on compte le nombre de valeurs (avec NBVAL()) est la '4'
- la cellule de départ de ton critère est 'B4'
 

clineM

XLDnaute Junior
Bonjour Nairolf, j'ai vraiment du mal à rendre mon fichier dynamique. Je rencontre toujours le même problème, je dois exclure des données mais mes colonnes reste vide au lieu de décaler les résultats.
Je n'arrive pas à appliquer la fonction décaler !
ci-joint un nouvel exemple. Ici je dois éliminer les BC. Comment modifier mon code pour le rendre dynamique?
Merci, je n'étais malheureusement pas très loin ... Je vais tenter à nouveau de redécortiquer tout ça afin d'éviter de poser toujours le même type de questions ! Merci en tout cas pour ton aide Nairolf
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87