Tri d’un tableau à l’aide de plusieurs variables

Accueil – Le CFO masqué Forums Power Query Tri d’un tableau à l’aide de plusieurs variables

Mots-clés : 

  • Ce sujet contient 8 réponses, 3 participants et a été mis à jour pour la dernière fois par Stéphane Lorin, le il y a 3 années et 2 mois.
9 sujets de 1 à 9 (sur un total de 9)
  • Auteur
    Articles
  • #86523
    philippe.moncler
    Participant

    Bonjour à tous,
    tout d’abord j’espère poster dans la bonne rubrique et que le titre est bien représentatif de mon problème.
    Si après explications vous souhaitez le modifier, avec plaisir. 😉

    Objectif : Connaitre l’état de protection Antivirus d’un parc d’ordinateur.
    Support : Un extract CSV d’un agent d’inventaire de logiciel.
    Destination : Rapport Power BI

    Ma difficulté est que pour un même ordinateur, je peux avoir deux logiciels antivirus installé
    => donc deux lignes.
    L’un est actif et l’autre pas — ou –Aucun des deux n’est actif

    La deuxième difficulté ( selon moi ) est que parfois je n’ai qu’une seule ligne par ordinateur,
    le résultat attendu est :
    10 PC – Protection Active – Antivirus 1
    8 PC – Protection Active – Antivirus 2
    5 PC – Protection inactive –

    pour Clarifier un peu plus un fichier Excel contenant l’exemple.
    Je ne sais pas par quel angle prendre le souci, et j’ai tendance à raisonner en NB.SI alors que l’approche doit surement être possible autrement.

    Merci pour votre aide (et votre lecture) en espérant que mon cas aura suscité votre attention.

    @ bientôt, Phhilippe.

    Attachments:
    You must be logged in to view attached files.
    #86527
    Kim Leblanc
    Participant

    Bonjour Philippe,

    Vous pouvez faire le calcul directement dans une matrice.

    Voir image ci-jointe.

    Kim

    Attachments:
    You must be logged in to view attached files.
    #86604
    philippe.moncler
    Participant

    Bonjour Kim,

    Merci pour votre retour et votre proposition.
    Ce que je vois dans la matrice ne correspond pas à ma recherche, car cela fait état d’un total de 13 x PC, alors que je vous ai fourni une liste contenant seulement 8 x PC.

    La”bonne réponse” à obtenir serait :
    3 x PC sont protégés par l’Antivirus 1
    3 x PC sont protégés par l’Antivirus 2
    2 x PC ne sont Pas protégés

    Total 8 x PC.

    dernier point que je n’avais pas mentionné je souhaiterai présenter ce résultat sous forme de camenbert. Mais si cela doit se faire sous forme de matrice, je m’en accommoderai. 😉

    Je vais tenter de retravailler le tableau avec des filtres pour créer un nouveau tableau avec des colonnes conditionnel.

    Encore merci à la communauté pour vos suggestions.
    Bien cordialement, Philippe.

    #86606
    Stéphane Lorin
    Participant

    Bonjour
    Pas testé mais voici comment je procèderai dans PowerQuery

    – Requete1 : j’importe le csv

    – Requete2 : je fais référence à la Requete1, je filtre uniquement les lignes “Enabled”
    Comme vous avez précisé qu’un seul Antivirus ne pouvait être actif à la fois, pas de problème de doublon.

    – Requete3 : je fais de nouveau référence à la Requete1, je ne prends que la 1ere colonne (nom du PC) et je supprime les doublons. Puis je fusionne avec la Requête2 et je récupère le nom de l’antivirus. Les PC qui renvoient “null” n’ont pas d’antivirus actif

    Ensuite il ne devrait pas y avoir de soucis pour votre camenbert

    Stéphane

    #86607
    philippe.moncler
    Participant

    Bonsoir Stéphane,

    Merci d’avoir formalisé cela dans Power Query ,
    je teste de ce pas cette approche.
    @ suivre…

    #86608
    Stéphane Lorin
    Participant

    Autre approche avec une seule requête :

    – Vous importez votre csv
    – Vous pivotez suivant le nom de l’antivirus en choisissant la colonne de valeur “Etat de protection” et dans les options avancées “ne pas agréger” (possibilité souvent méconnue et pourtant très pratique)
    – Vous ajoutez une colonne conditionnelle du style
    if [Antivirus1]=”Enabled” then “Antivirus1″
    else if [Antivirus2]=”Enabled” then “Antivirus2”
    else “Pas d’antivirus”

    Stéphane

    #86609
    philippe.moncler
    Participant

    Bonjour à tous,

    Bingo ! Camenbert réussi.

    Je suis allé jusqu’à la fusion ( Fusionner les requêtes comme nouvelles: CF Image1) mais je me suis aperçu que ce n’était pas forcement nécessaire.
    une fois la requête 2 et la requête 3 obtenue,
    je prends le Nbre de Nom d’ordi de la requête 3 ( nom unique )
    je prends le nom de l’antivirus Enabled de la requête 2
    Si il n’y a pas d’Antivirus Enabled j’obtiens un “Vide ”
    CF Image2

    Entre temps j’ai vu la deuxième Méthode que je tester et vous fait un retour.

    Un grand merci pour l’intérêt porté à ma demande,et pour la qualité de vos réponses.
    Je vais pouvoir réutiliser cette approche pour traiter bon nombre de recherche de texte.

    @ bientôt, Philippe.

    Attachments:
    You must be logged in to view attached files.
    #86612
    philippe.moncler
    Participant

    Bonsoir Stéphane,

    Cette approche ressemble plus à ce que j’entre-voyais. C’est à dire d’écrire des conditions en fonction de la recherche du texte.
    Mais bravo pour la fonction de pivot qui est en effet très utile, à laquelle je n’avais absolument pensé.
    Encore en cours d’apprentissage, j’avoue être encore trop imprégné de réflexion de traitement “Excel” et qu’il me reste plein de chose à tester sur Power Query.

    Encore Merci pour votre aide , Problème résolu !

    Bonne fin de journée, à tous.

    #86613
    Stéphane Lorin
    Participant

    De rien !
    et merci de votre retour positif
    Bonne fin de journée également
    Stéphane

9 sujets de 1 à 9 (sur un total de 9)
  • Vous devez être connecté pour répondre à ce sujet.