XL 2019 récupérer une partie d'une liste

Goo69

XLDnaute Nouveau
Bonjour,
Je cherche à récupérer une partie d'une liste d'items d'un tableau. Dans cette liste, il n'y a qu'un seul terme que je ne veux pas récupérer, "virement interne".
En utilisant une conditionnelle simple, il y a une cellule vide dans la liste récupérée.

La liste initiale, avec "virement interne" est aussi utilisée en tant que liste déroulante dans un autre tableau. Donc elle n'est pas modifiable.
Le plus simple serait de créer un autre tableau, sans cet item.
Mais j'aimerai savoir s'il est possible d récupérer cette liste, sans "virement interne" et sans cellule vide, pour éviter de la dupliquer.

Merci !

gOO
 

Pièces jointes

  • Classeur1.xlsx
    10.7 KB · Affichages: 9

vgendron

XLDnaute Barbatruc
Bonjour

avec cette formule matricielle (= valider avec Ctrl + Shift + Entrer)

VB:
=INDEX(natures_des_recettes[nature des recettes];PETITE.VALEUR(SI(natures_des_recettes[nature des recettes]<>"virement interne";LIGNE(natures_des_recettes[nature des recettes]));LIGNES($E$1:E1))-1)
 

vgendron

XLDnaute Barbatruc
sinon.. on est bien d'accord qu'un des interets majeurs d'une table excel c'est de regrouper des éléments NON vides...
donc ta table "nature des recettes" doit s'arreter à la ligne 8
ainsi.. la seconde table ne peut pas dépasser la ligne 8 non plus:
du coup. avec la formule précédente, il y a une erreur #nombre

tu peux donc modifier la formule en ajoutant un SiErreur
VB:
=SIERREUR(INDEX(natures_des_recettes[nature des recettes];PETITE.VALEUR(SI(natures_des_recettes[nature des recettes]<>"virement interne";LIGNE(natures_des_recettes[nature des recettes]));LIGNES($E$1:E1))-1);"")
 

Goo69

XLDnaute Nouveau
Effectivement vgendron, j'ai découvert récemment qu'un tableau qui fait appelle à une table doit faire le même nombre de lignes, mais aussi être sur la même ligne (même si l'une des tables se trouve dans un autre ongle).
Ta solution est nickel !
Un big up à toi !
Encore une chose cependant. Les lignes vides de la table s'affichent à zéro dans le tableau. S'il n'y avait rien, ce serait mieux.
Voici ce que j'ai essayé mais qui ne fonctionne pas :
Code:
=SIERREUR(SI(ESTVIDE(natures_des_recettes[nature des recettes]);"";INDEX(natures_des_recettes[nature des recettes];PETITE.VALEUR(SI(natures_des_recettes[nature des recettes]<>"virement interne";LIGNE(natures_des_recettes[nature des recettes]));LIGNES($E$1:E8))-1));"")
Une idée lumineuse ?
 

vgendron

XLDnaute Barbatruc
Comme je le disais, l'idée est de ne PAS mettre de lignes vides dans la table initiale

sinon:
en modifiant la formule pour ajouter une condition: et (<>"virement interne"; <>"") ==> Colonne E
et bien.. ca ne fonctionne pas.. et je ne comprends vraiement pas pourquoi... voir avec les specialistes des formules matricielles

reste plus qu'à passer par une colonne intermédiaire (Colonne G) pour avoir le résultat attendu colonne I
 

Pièces jointes

  • Classeur1.xlsx
    12.7 KB · Affichages: 4

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 810
dernier inscrit
mohammedaminelahbali