XL 2016 Afficher le contenu d'un tableau en fonction de plusieurs conditions

grhum29

XLDnaute Junior
Bonjour,

Je reviens vers vous car j'ai un problème de formule que je ne parviens pas à réaliser.

J'ai un tableau Excel avec 2 feuilles. La première est la base de données qui contient la liste des projets sur lesquels je travaille avec différentes colonnes qui indiquent l'avancement des projets et leur date de création.

Sur ma 2ème feuille, je suis en train de créer un reporting et je souhaite lister dans le tableau nommé "LISTE DES PROJETS", les projets qui répondent à plusieurs critères.

Par exemple, à partir de la cellule A13, je souhaite lister les projets dont :
- la date d'insertion (colonne "Enregistrement date d'insertion") du projet dans la tableau est entre la date début (cellule A4) et la date de fin (cellule B4)
- Le projet est en statut OK (colonne "OK"). Il faut exclure les projets sans valeur dans cette colonne.

J'ai fait des essais avec des formules avec des formules du type si(et) mais je n'arrive pas au résultat attendu.

Pouvez-vous me dire comment je peux faire cela?

Je pense qu'il doit y avoir une solution en imbriquant la formule "Index - Equiv" et une formule "si" mais je n'arrive pas à la mettre en oeuvre.

Vous trouverez, en pièce jointe, le fichier exemple.

J'espère que mes explications ont été claires.

Bonne journée à tous.
 

Pièces jointes

  • TEST2.xlsm
    32.6 KB · Affichages: 12

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

voici une proposition par powerquery (inclus dans votre version).
Quand les données ou les critères de dates changent, cliquez sur 'Données/Actualiser tout'.
Comme votre colonne 'Ok' ne contient pas un type de donnée uniformisé (Date par exemple ou Nombre) le retour des dates ne se fait pas au format. Faudrait-il convertir 1 en date (1/1/1900)

La plage A4:B4 a été nommée Dates_Limites (conserver ce nom ou le changer aussi dans powerquery)

Je ne serai pas là cet après-midi. En cas de question, quelqu'une ou quelqu'un d'autre répondra peut-être autrement il vous faudra attendre ce soir ou demain

Cordialement
 

Pièces jointes

  • TEST2.xlsm
    44.6 KB · Affichages: 7

grhum29

XLDnaute Junior
Bonjour,

voici une proposition par powerquery (inclus dans votre version).
Quand les données ou les critères de dates changent, cliquez sur 'Données/Actualiser tout'.
Comme votre colonne 'Ok' ne contient pas un type de donnée uniformisé (Date par exemple ou Nombre) le retour des dates ne se fait pas au format. Faudrait-il convertir 1 en date (1/1/1900)

La plage A4:B4 a été nommée Dates_Limites (conserver ce nom ou le changer aussi dans powerquery)

Je ne serai pas là cet après-midi. En cas de question, quelqu'une ou quelqu'un d'autre répondra peut-être autrement il vous faudra attendre ce soir ou demain

Cordialement
Bonjour Hasco,

Merci de ton retour.

Effectivement
Bonjour le Forum,
Bonjour grhum29,

un essai en fichier joint

cordialement
Bonjour Jocelyn,

Tout d'abord, merci de ton retour.

Tu t'approches vraiment de ce que je souhaite faire.

Il manque juste la prise en compte du bornage de date pour filtrer les projets qui sont entre ces 2 dates uniquement.

Est-il possible de le rajouter dans ta formule?

Merci de ton retour et bonne journée.

Cordialement,
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour @grhum29, @Jocelyn
Le projet est en statut OK (colonne "OK"). Il faut exclure les projets sans valeur dans cette colonne.
J'ai un doute :
En fonction de cette condition, PROJET D, PROJET E et PROJET F ne doivent pas apparaître dans la liste ? Non ?

Dans le fichier joint je n'ai pas tenu compte de cette condition à la différence de la première version.
Si vous voulez en tenir compte pour exclure les "OK" sans valeurs alors il faut changer l'étape "Lignes Période" de la requête "PROJETS_PERIODE" afin qu'elle ressemble à ça dans la barre de formule de l'éditeur Power Query :
= Table.SelectRows(#"Type modifié", each ([OK] <> null) and [#"Enregistrement date d'insertion"] >= DatesLimites{0} and [#"Enregistrement date d'insertion"] <= DatesLimites{1})

Rajouter la partie en gras.


Cordialement
 

Pièces jointes

  • TEST2.xlsm
    44.9 KB · Affichages: 11

grhum29

XLDnaute Junior
re,

nouvelle version cette fois je n'ai pas oublié les bornes date

Cordialement

EDIT : par contre j'avais oublié le fichier o_O
Bonjour Jocelyn,

Merci pour cette nouvelle version qui fonctionne très bien.

Cependant lorsque je rajoute l'ensemble de mes projets environ 300 et que j'étire les formules de calcul vers le bas sur 200 lignes, les calculs sont très longs à s'exécuter. Le fichier met plusieurs minutes à se mettre à jour.
J'ai testé sur 2 PC différents dont un qui a une bonne configuration (8Go de RAM - Intel(R) Core(TM) i5-7300U CPU @ 2.60GHz).

Est ce qu'il y a une solution pour améliorer les calculs?

Merci de votre retour.

Bonne journée.
 

grhum29

XLDnaute Junior
Bonjour @grhum29, @Jocelyn

J'ai un doute :
En fonction de cette condition, PROJET D, PROJET E et PROJET F ne doivent pas apparaître dans la liste ? Non ?

Dans le fichier joint je n'ai pas tenu compte de cette condition à la différence de la première version.
Si vous voulez en tenir compte pour exclure les "OK" sans valeurs alors il faut changer l'étape "Lignes Période" de la requête "PROJETS_PERIODE" afin qu'elle ressemble à ça dans la barre de formule de l'éditeur Power Query :
= Table.SelectRows(#"Type modifié", each ([OK] <> null) and [#"Enregistrement date d'insertion"] >= DatesLimites{0} and [#"Enregistrement date d'insertion"] <= DatesLimites{1})

Rajouter la partie en gras.


Cordialement
Bonjour Hasco,

ça fonctionne comme je veux maintenant.

Merci de votre aide.

Bonne journée.
 

grhum29

XLDnaute Junior
Rebonjour à tous,

J'ai une dernière question concernant ce sujet : Est ce qu'il est possible d'utiliser la combinaison INDEX EQUIV pour ce genre de calcul.

@Jocelyn ta formule fonctionne très bien et donne le résultat attendu mais les calculs sont longs à s'exécuter. Y a t'il un moyen d'améliorer le traitement?

Est ce qu'il est possible d'utiliser la combinaison INDEX EQUIV pour ce genre de calcul. Si oui est ce que cela va améliorer le traitement?

Merci de vos retours.

Cordialement,
 

Discussions similaires

Réponses
4
Affichages
280

Statistiques des forums

Discussions
312 037
Messages
2 084 817
Membres
102 678
dernier inscrit
zezette223