Obtention des champs non vide d'une colonne

Fermé
Julian0 - 27 août 2020 à 13:11
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 - 15 sept. 2020 à 02:11
Bonjour,

Je souhaiterai lister (sans liste déroulante) les champs d'une colonne excel non vides. Dans ma colonne les cellules vides ne le sont pas réellement car elles contiennent des formules. Je ne peux donc pas utiliser la formule NONVIDE pour les exclure.

Mon tableau se présente comme ceci:

Produit 1 Produit 2 Produit 3
2
2
1
4
4 1 5

5
6 3
...


Mon objectif est d'avoir sur un autre onglet de mon fichier des colonnes par produit avec les mêmes informations mais sans les cellules vides, comme cela:

Produit 1 Produit 2 Produit 3
2 1 2
4 1 4
5 3 5
6
...

J'ai essayé les formules suivantes (trouvées sur le net) mais cela ne fonctionne pas:
(Supposons que les données sont renseignées de la cellule A1 à C10)

=INDEX(A1:C10; PETITE.VALEUR(SI(A1:C10="";LIGNE(A3:C9);"");LIGNE(A1)))
=INDEX(A2:C10;PETITE.VALEUR(SI((A2:C10)="";1000000;LIGNE(A2:C10));LIGNE()))

Je précise que lorsque je suis dans la cellule cible je renvoie bien les cellules avec l'adresse de l'onglet concerné (je n'ai pas indiqué cela dans les formules ci-dessus pour ne pas alourdir les formules).

Je vous remercie par avance pour votre aide.

Julian




Configuration: Windows / Chrome 84.0.4147.135

3 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
27 août 2020 à 15:30
Bonjour
voyez si ce modèle peut vous aider et si problème avec les explications, revenez:
https://mon-partage.fr/f/bRrmzHeC/
crdlmnt
0
Je vous remercie pour votre retour.
En appliquant votre formule sur mon tableur qui est confidentiel (je ne peux pas le partager) la formule ne s'active pas (malgré que je fasse contrôle, shift + entrer).
Voici la formule adaptée à mon tableau:
{=SIERREUR(INDEX('Répartition par salarié'!$AM$9:$AM$523;PETITE.VALEUR(SI('Répartition par produit'!$AM$9:$AM$523<>"";LIGNE('Répartition par produit'!$AM$9:$AM$523));LIGNE('Répartition par produit'!$AM$9)));"")}

Je ne trie qu'une seule colonne pour le moment.

Aussi, il y a t-il un moyen de ne pas avoir à recopier la formule sur le nombre de ligne du tableau source. Je m'explique: comme vous pouvez le voir dans la formule, le tableau fait plus de 500 lignes alors que le nombre de cellule non vide est d'environ 3 à 4 dans chacune des colonnes. Je voudrais donc n'avoir qu'à refaire un tableau de 4 à 5 lignes pour chaque produit représenté par une colonne.

J'espère être assez clair dans mon explication. Excusez moi de nouveau de ne pas pouvoir partager mon fichier.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié le 27 août 2020 à 17:34
la formule devrait s'écrire:

{=SIERREUR(INDEX('Répartition par salarié'!$AM$9:$AM$523;PETITE.VALEUR(SI('Répartition par produit'!$AM$9:$AM$523<>"";LIGNE($AM$9:$AM$523));LIGNE(A1)));"")}
la fin:
LIGNE(A9:A523 ne nécessite pas de nom de feuille, puisqu'elle ne concerne que les N ° de lignes ayant une cellule pleine
la fin avec LIGNE(A1) qui ne doit pas être bloquée, doit s'adresser à A1, car il s'agit de renvoyer 1 soit le rang de la 1° PETITE.VALEUR
LIGNE(A1) équivaut à 1 sur la 1° ligne de la formule qu'elle soit n'importe où et devient 2 sur la seconde, 3 sur la 3° etc...
(avec A9 vous allez chercher le 9° rang!)
par contre si vous commencez avec ligne 9, il faudra compléter pour que la 1° ligne ressorte bien la valeur cherchée, probablement en écrivant:
{=SIERREUR(INDEX('Répartition par salarié'!$AM$9:$AM$523;PETITE.VALEUR(SI('Répartition par produit'!$AM$9:$AM$523<>"";LIGNE($AM$9:$AM$523));LIGNE(A1))<gras>-8);"")}</gras> (mais c'est à vérifier)
et enfin si vous connaissez le nombre maximum de valeurs à ressortir, il n'est pas utile de "tirer" la formule au delà
Si toutefois vous ne vous en sortez pas, et puisque votre dossier est confidentiel, essayez de remonter un modèle anonyme représentatif de ces données, et de le déposer par exemple ici:
http://mon-partage.fr
en revenant coller le lien créer sur le site
à suivre
crdlmnt

l


0
Bonjour merci une nouvelle fois pour votre aide. Excusez moi pour mon retour tardif.
Voici le fichier sur lequel j'essaye d'appliquer la formule:
https://mon-partage.fr/f/qH0ehTJ2/
L'idée est de créer une liste pour Monsieur X sur l'onglet dédié récapitulant les documents (colonne A de l'onglet répartition par salarié) sur lesquels il est intervenu.
Merci encore pour votre aide.
Pouvez-vous me transmettre une rep par message directement (je n'ai pas possibilité de télécharger un document en raison des dispositifs de sécurité).
Merci une nouvelle fois.
0
Raymond PENTIER Messages postés 58395 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 25 avril 2024 17 096
15 sept. 2020 à 02:11
Bonjour.

Tu ne pourrais pas faire un tri ou un filtre AVANT de manipuler tes données ?
0