Toutes mes réponses sur les forums

13 sujets de 271 à 283 (sur un total de 283)
  • Auteur
    Messages
  • en réponse à : Récupérer le nombre de lignes par occurrence #58574
    Stéphane Lorin
    Participant

    Bonjour

    Il faut dans un premier temps ajouter un index à votre table (à partir de 1 ou de 0 – j’ai choisi ici 1)

    CODE PROD | CONDITMT | PRIX | Index
    000001 | 1| 20.00 | 1
    000001 | 10| 18.00 | 2
    000001 | 100| 15.00 | 3
    000002 | 1| 25.00 | 4

    Puis faire référence à cette table en regroupant par CODE PROD et en retenant le “min” de Index
    CODE PROD | MinIndex
    000001 |1
    000002 |4

    Puis fusionner les deux tables sur le CODE PROD

    CODE PROD | CONDITMT | PRIX | Index |MinIndex
    000001 | 1| 20.00 | 1 | 1
    000001 | 10| 18.00 | 2 | 1
    000001 | 100| 15.00 | 3 | 1
    000002 | 1| 25.00 | 4| 4

    et enfin faire la différence entre Index et MinIndex + 1

    CODE PROD | CONDITMT | PRIX | Index |MinIndex | Différence
    000001 | 1| 20.00 | 1 | 1 | 1
    000001 | 10| 18.00 | 2 | 1 | 2
    000001 | 100| 15.00 | 3 | 1 | 3
    000002 | 1| 25.00 | 4| 4 | 1

    Cordialement

    Stéphane

    en réponse à : SI ET ou SI OU imbriqué…. #58361
    Stéphane Lorin
    Participant

    Bonjour

    Et si vous avez 10, 20 ou plus de seuils, vous n’allez pas écrire une formule avec autant de SI
    La fonction EQUIV(..;..;1) est utile dans cette situation :

    Vous avez une table avec les seuils dans l’ordre croissant (le 1 du EQUIV permet de renvoyer le premier seuil inférieur à la valeur cherchée)

    Table_Seuil :

    Seuil Libellé
    0:00:00 <=4
    4:00:00 <=8
    8:00:00 <=12
    12:00:00 <=24
    24:00:00 <=48
    48:00:00 >48

    A noter que j’ajoute 10^-9 aux heures pour gérer le <= et non le < strict
    =”04:00:00″+10^-9

    Un INDEX combiné à un EQUIV(..;..;1) me donne le résultat souhaité
    =INDEX(Table_Seuil[Libellé];EQUIV([@Valeur];Table_Seuil[Seuil];1))

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : [power BI] colonne calculée à partir de plusieurs colonnes et lignes #58051
    Stéphane Lorin
    Participant

    Bonjour

    D’après ce que vous dites, les “Order” ont d’abord le statut “Authorization” puis ensuite “capture” ou “reversal”.
    Il y a donc une incohérence avec les lignes 9, 10 et 11 qui sont datées du 2/9 en “Authorization” et qu’on retrouve en lignes 55,56 et 57 datée du 1er mais en “reversal”.

    Sinon, un simple RECHERCHEV sur les 2 premières colonnes répond à votre problématique =RECHERCHEV(A2;A:B;2;0) à adapter pour gérer les cas où il y a des “null” avec un SI

    Pour Power BI (votre titre), Power query la solution que je proposais le 18 devrais fonctionner.

    Cordialement

    Stéphane

    en réponse à : Convertir une colonne en table #58037
    Stéphane Lorin
    Participant

    Bonjour

    dans un premier temps je fractionnerai la colonne sur les , en choisissant l’option avancée “lignes” ; puis un second fractionnement sur les : avec l’option “colonne” cette fois ; enfin nettoyer les [, {, ”

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : [power BI] colonne calculée à partir de plusieurs colonnes et lignes #58035
    Stéphane Lorin
    Participant

    Bonjour

    Si j’ai bien compris votre problématique, il faut dans un premier temps filtrer la table sur le champ “Auth Status” = “Authorization” avec Power Query et supprimer les doublons de n° order (ligne 22, 23 par exemple) puis fusionner votre table initiale avec cette table filtrée et développer la date.
    Voir le fichier joint

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    Stéphane Lorin
    Participant

    Bonjour

    Il ne faut pas être déçu par Power Query, c’est vraiment super puissant.
    Vous trouverez en exemple une liste de 100 produits avec 10 mois d’historique de CA soit 1000 lignes et en une fraction de seconde vous obtenez le CA cumulé en utilisant des fonctionnalités de bases de Power Query: une fusion, un filtre, un regroupement.

    Je fusionne la table avec elle-même sur le champ [Produit] et je développe les champs [Mois] et [CA] j’ai donc : [Produit], [Mois], [CA], [Mois.1] et [CA.1] avec chaque mois dupliqué soit 10 000 lignes car il y a 100 produits x 10 mois x 10 mois.
    je filtre pour conserver uniquement les [Mois.1] <= [Mois] (votre condition)
    enfin je regroupe sur les champs [Produit], [Mois] et [CA] pour retrouver mes 1000 lignes initiales en sommant le champ [CA.1] pour avoir le CA cumulé

    Je contrôle que j’obtiens bien le même résultat qu’avec une fonction SOMME.SI.ENS.

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Critère date dans GetPivotData (Data model) #57967
    Stéphane Lorin
    Participant

    Bonjour
    sur le fond en version française et en remplaçant YYYY par aaaa et DD par jj j’ai obtenu le résultat souhaité. Peut-être faut-il retirer le T00:00:00 de la fonction TEXT et le mettre dans le “T00:00:00]”
    sur la forme : un ficher de 1,5 Mo pour un cas comme le vôtre indique des données cachées qu’il faudrait je pense retirer d’un forum (onglet masqué).
    Cordialement
    Stéphane

    en réponse à : Cherche une formule pour occurence d'une donnée #57936
    Stéphane Lorin
    Participant

    Bonjour

    Voici un exemple qui est peut-être similaire à votre problématique :

    soit une liste de projets dans une table “Liste_projets” et les champs : “N°” et “Nom_équipes” (avec les noms séparés par des virgules)

    N° Nom_Equipes
    1 A
    2 A,B
    3 B,C
    4 D
    5 D,A
    6 B

    pour lister les projets concernant le nom de l’équipe en cellule A1 :

    =JOINDRE.TEXTE(“,”;VRAI;
    SI(ESTNUM(CHERCHE(A1;Liste_projets[Nom_Equipes]));Liste_projets[N°];””)
    )

    à valider en matricielle CTRL+MAJ+ENTREE

    si A en A1, la liste donnera 1,2,5
    si B vous aurez 2,3,6
    si E vous aurez une liste vide car cette équipe ne contribue à aucun projet

    Stéphane

    en réponse à : Transformer semaine.année en date #55015
    Stéphane Lorin
    Participant

    Bonjour
    Dans un tableau excel avec la colonne “N° Semaine” au format 15.2019
    Le 1er janvier est donné par “1erJA” =DATE(DROITE([@[N° semaine]];4);1;1)
    En Europe tout du moins, la semaine 1 est celle qui contient le 1er jeudi de l’année. il faut donc tester le jour de la semaine du 1er janvier puis ajouter 7 fois le n° de la semaine pour avoir le lundi de la semaine voulue.
    Le lundi de la semaine du 1er janvier est obtenu par la formule =[@1erJA]-JOURSEM([@1erJA];3)
    en ajoutant 7*(GAUCHE([@[N° semaine]];2)-(JOURSEM([@1erJA];3)<4)) on obtient le lundi de la semaine (on retire 1 au n° de la semaine si le 1er janvier est un lundi, un mardi, un mercredi ou un jeudi).

    A adapter sous PowerQuery avec le 1er janvier = Date.FromText(“01/01/”&Text.End([#”N° semaine”], 4)), la fonction Date.DayOfWeek et une formule conditionnelle suivant le jour du 1er janvier.

    Cordialement
    Stéphane

    Stéphane Lorin
    Participant

    Merci Sophie pour votre retour
    Dans mon cas je dois faire correspondre une table de milliers de codes alphanumériques de 6 à 8 caractères avec une autre table d’environ 500 règles (du style AB12* ou AB*12 ou encore AB?1*). Ma fonction matricielle avec 2 EQUIV imbriqués est très efficace, je vais la conserver sans chercher à le faire sous Power Query.

    Merci pour votre lien vers le blog de Chris Webb. Peut-être y aura-t-il en effet une fonction LIKE dans PowerQuery ?

    En tout cas un grand bravo pour votre site et votre travail.

    Stéphane

    en réponse à : Imbrication de texte de plusieurs lignes selon un critère #43025
    Stéphane Lorin
    Participant

    Bonjour
    Je ne sais pas si pas peux être utile dans votre cas mais la formule sous excel (hors Power Query) pourrait être en colonne3 :
    =CONCAT(SI([Colonne1]=[@Colonne1];[Colonne2];””)) en matricielle (validation CTRL + MAJ + ENTREE)
    Stéphane

    en réponse à : Tableau Excel avec données avec saut de ligne dans 1 cellule #41817
    Stéphane Lorin
    Participant

    Bonjour

    Dans le tableau, une piste de réflexion pour extraire la première heure :
    =SIERREUR(GAUCHE([@[Heure de la demande]];TROUVE(CAR(10);[@[Heure de la demande]])-1);[@[Heure de la demande]])

    et pour la seconde heure :
    =SIERREUR(STXT([@[Heure de la demande]];TROUVE(CAR(10);[@[Heure de la demande]])+1;99);””)

    procéder de même pour les autres colonnes

    Sous PowerQuery une idée serait de fractionner les colonnes par délimiteur : #(lf) en cochant la case “Diviser en utilisant des caractères spéciaux” puis fusionner les colonnes ainsi séparées avec un séparateur choisi et dépivoter les lignes de TCD en choisissant ces colonnes puis fractionner les colonnes fusionnées dans l’autre sens.

    Cordialement

    Stéphane

    en réponse à : Caractères spéciaux et colonne conditionnelle #41816
    Stéphane Lorin
    Participant

    Bonjour

    Une idée pour compter le nombre de * dans une chaîne

    =NBCAR(A1)-NBCAR(SUBSTITUE(A1;”*”;””))

    Text.Length([Colonne1])-Text.Length(Text.Replace([Colonne1],”*”,””))

    Stéphane

13 sujets de 271 à 283 (sur un total de 283)