Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Power Query → Utilisation de NB.SI.ENS


Sujet :

Excel

  1. #1
    Membre expert
    Power Query → Utilisation de NB.SI.ENS
    Forum !
    Dans ma DB, j’ai, dans l’onglet DB_Départ, la situation suivante :
    • Colonne DATUM : que des dates (jj/mm/aaaa).
    • Colonne Caller Number : une liste de tous les numéros de tél qui ont appelé. Les numéros peuvent avoir un nombre de caractères différents.
    • Colonne Call Result : le résultat de l’appel qui peut être ANSWERED ou NO ANSWER.


    Dans l’onglet Résultat Voulu, j’ai la même liste mais avec une colonne supplémentaire NOTANSWER_D qui indique 1 si le numéro qui a appelé un certain jour n’a pas eu de réponse (NO ANSWER), en un ou plusieurs essais. Évidemment, un même numéro peut appeler plusieurs fois par jour et dès qu’il a eut une réponde (ANSWERED), l’indication doit être 0.

    J’arrive au résultat voulu via cette formule dans excel :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    =SI(ET([Call Result]="NO ANSWER";NB.SI.ENS([Caller Number];[@[Caller Number]];[Call Result];"ANSWERED";[DATUM];[@DATUM])=0);1;0)


    Comment transformer cette formule contenant un NB.SI.ENS en formule M pour avoir ce résultat directement dans Power Query ?
    Un grand merci pour vos pistes.

  2. #2
    Responsable
    Office & Excel

    Salut Quest, tu vas bien?

    Je te joins un fichier qui, je pense, te permet d'obtenir ce que tu souhaites.

    J'ai procédé comme suit:
    • Ajout d'une colonne conditionnelle qui renvoie 1 lorsque ANSWERED sinon 0;
    • Regroupement sur le jour et le numéro de téléphone en sommant cette nouvelle colonne;
    • Ajout d'une colonne conditionnelle qui teste si la somme par ligne est >0 (on a répondu) ou = 0 (on n'a pas répondu)



    Bien entendu, ma solution ramène moins de lignes qu'il y en a dans le tableau de départ puisqu'il n'y a plus qu'une ligne par jour et par numéro de téléphone.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Une fois pour toutes, je donne mon avis. Je ne vais pas le répéter à chaque message...
    Si je propose une solution générique sur votre solution spécifique, c'est parce que, fainéant de nature, je privilégie le réutilisable...
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Expert éminent sénior
    Bonjour à vous

    Une variante si on veut garder toutes les lignes d'appels mais le nombre d'appels/jour ajouté à la solution de Pierre serait sans doute plus intéressant
    Chris

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Membre expert
    Hello Pierre, Hello 78chris,
    Deux très belles propositions !
    Je vais m'y plonger encore plus pour bien capter toutes les étapes que vous avez utilisées. Et je regarde avec mon fichier XL celle qui pourra s'y intégrer au mieux en fonction de tout le traitement que j'effectue par la suite.
    Encore un grand merci !

###raw>template_hook.ano_emploi###