Toutes mes réponses sur les forums

15 sujets de 241 à 255 (sur un total de 283)
  • Auteur
    Messages
  • en réponse à : Type de cellule, null "" , 0 rien #63347
    Stéphane Lorin
    Participant

    Bonjour

    Vous pourriez éventuellement utiliser la fonction Text.Combine au lieu du “&” pour concaténer des champ sans tenir compte des “null” : Text.Combine({[Colonne1],[Colonne2]},””)

    La fonction List.Sum ne tient pas compte des “null”. Avec cette fonction, 3 + null = 3 et null – 4 = -4
    Pour l’addition : List.Sum({[Colonne3],[Colonne4]})
    Pour la soustraction : List.Sum({[Colonne3],-[Colonne4]})

    Attention, pour les produits et les divisions, List.Product assimile les “null” à des 1 donc 3 * null = 3 et null / 4 = 0,25
    Pour un produit : List.Product({[Colonne3],[Colonne4]})
    Pour une division : List.Product({[Colonne3],1/[Colonne4]})

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Consolidation de lignes dans une table #63210
    Stéphane Lorin
    Participant

    Bonjour

    Pas besoin d’index, de fusion, … la solution passe par un regroupement des lignes similaires (Date, Titre, Société, Organisateur) et par l’agrégation “toutes les lignes” (le dernier choix dans la liste déroulante). La nouvelle colonne que j’ai nommée “Enregistrements” contient toutes les lignes de chaque groupement.

    Ensuite, un tout petit peu de code M, avec la sélection de la colonne “Participant” de l’ensemble des lignes extraites à l’étape précédente. Soit l’ajout d’une colonne personnalisée et le code : [Enregistrements][#”Participant “]. Attention, vous avez un caractère espace d’où le #”…”

    Vous obtenez maintenant une liste avec tous les participants.
    Dernière étape avec l’extraction des valeurs de cette liste (double flèche en haut de la colonne), j’ai choisi le séparateur “, ”

    Si vous ne voulez que les 3 premiers participants et non tous les participants, vous modifiez l’étape 2 avec : List.FirstN([Enregistrements][#”Participant “],3)

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Trouver la prochaine cellule non vide #63169
    Stéphane Lorin
    Participant

    Bonjour
    Voici une formule qui renvoie le résultat attendu en plage F7:F21

    en F7 =SIERREUR(SI(OU(C7=”vide”;C7=””);F6;(MIN.SI.ENS(C:C;C:C;”>”&C7)-C7)/(EQUIV(MIN.SI.ENS(C:C;C:C;”>”&C7);C:C;0)-LIGNE(C7)));””)

    partant du principe que votre compteur est croissant,
    MIN.SI.ENS(C:C;C:C;”>”&C7) renverra le prochain compteur renseigné
    EQUIV(MIN.SI.ENS(C:C;C:C;”>”&C7);C:C;0)-LIGNE(C7) renverra le nombre de lignes entre ce prochain compteur et l’actuel donc le nombre de jours
    le ratio donne la moyenne quotidienne
    Si le compteur est =”vide” ou pas renseigné, on écrit la valeur de la cellule précédente (donc la moyenne)
    enfin, en cas d’erreur, on met un chaîne vide “”

    Cordialement
    Stéphane

    en réponse à : Groupement de fichiers CSV, mauvaise cellule #63115
    Stéphane Lorin
    Participant

    Bonjour
    Sans voir les fichiers, il est impossible de savoir pourquoi vous avez 8 lignes en erreur.
    Evidemment, il ne faut pas déposer un fichier confidentiel sur un forum public.

    Sûrement que 8 lignes n’ont pas le même format. Cela m’arrive par exemple avec des fichiers de facturation fournisseurs qui ont des en-têtes et des lignes différentes.

    Il faut donc analyser le fichier avant sous excel. Pour ma part, j’utilise aussi NotePad++ pour voir la structure des fichiers de ce type.
    Il faudra peut-être faire 2 imports, un pour les lignes “normales” et un pour les 8 lignes différentes.
    Cordialement

    Stéphane

    en réponse à : Table de correspondance dans Power Query #63016
    Stéphane Lorin
    Participant

    Bonjour
    Une proposition que j’utilise pour mes propres données qui ne sont pas structurées de la même façon

    J’ai reproduit ma méthode dans un fichier ci-joint.

    Comme le suggère Sophie :
    – une table de correspondance par “type” d’import (l’ordre des colonnes et leur nom)
    – la liste des sources avec pour chacune le “type” d’import

    Ensuite je ne transpose pas les lignes/colonnes mais je descends les titres de ma table de correspondance, je filtre sur le type, j’intervertis l’ordre des lignes et je remonte les titres avant d’ajouter la table avec les données.
    J’applique la fonction ainsi créée pour fusionner l’ensemble des données en une synthèse.

    Evidemment à adapter suivant vos données et la provenance de vos sources qui ne sont a priori pas des tableaux contenus dans un fichier

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Export liste utilisateurs : "Sécurité" et "Autorisation" #62836
    Stéphane Lorin
    Participant

    Sophie
    J’ai mis en oeuvre la solution proposée par AlexanderK79 dans le lien que vous proposez et j’ai obtenu la liste des autorisations. parfait !

    Par contre, c’est évidemment une autre syntaxe pour les règles RLS.
    J’ai finalement utilisé la fonction “inspecter” de Chrome, j’ai copié/collé l’élément “<div class=”rowLevelSecurityMembers” ” sous Excel
    Avec Power query il est facile d’obtenir les noms et prénoms de chacun en constatant que le texte est structuré de la sorte :
    <span ng-bind=”::user.displayName”>Nom, Prénom</span>
    il faut juste exporter un par un les “rôles” (j’ai en que 6, ça va !)

    Peut-être qu’une prochaine version de PowerBI permettra l’export de ces infos plus facilement

    Un grand merci à vous

    Stéphane

    en réponse à : Colonne conditionnelle #62322
    Stéphane Lorin
    Participant

    Merci de votre retour.
    Dans mon second cas, voici une formule un peu plus simple pour savoir si la référence possède une ligne contenant le mot “VENTE” :
    List.Count(List.FindText([Données][Libellé],”VENTE”))>0
    List.FindText créera une liste avec les libellés contenant ce mot et List.Count >0 identifiera les références pour lesquelles cette liste n’est pas vide.

    Stéphane

    en réponse à : Colonne conditionnelle #62297
    Stéphane Lorin
    Participant

    Bonjour
    Je vous propose 2 solutions

    – la première assez simple à mettre en oeuvre consiste à créer une table intermédiaire des références dont un des libellés contient le mot “VENTE” : par filtre “Text.Contains” puis suppression des doublons
    Puis de fusionner cette table avec la Source et de développer la référence.
    Si “null” c’est que la référence ne contient pas le mot “VENTE”

    – la seconde pas plus longue, sans table intermédiaire mais un peu plus complexe, consiste à regrouper les lignes par référence, puis à identifier celles dont une des lignes contient le mot recherché par la formule
    List.Contains([Données][Libellé],”VENTE”, (x as text, y as text)=>Text.Contains(x, y)))
    qui renvoie “TRUE” ou “FALSE”
    puis de “développer” les colonnes groupées à la première étape.

    référence sur les “equationCriteria” dans les fonctions de listes qui multiplient les possibilités de comparaison sur

    The List.* M Functions And The equationCriteria Argument

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : champ calculé #61782
    Stéphane Lorin
    Participant

    Bonjour

    Vous pouvez définir l’affichage des cellules en erreur d’un TCD à vide dans les options du tableau croisé en cochant la case “Pour les valeurs d’erreur afficher : ” du sous-menu “Disposition et mise en forme”.

    Avec un champ calculé vous pouvez utiliser un =SIERREUR(..;) ou =SIERREUR(..;0) pour afficher un 0 et non votre #DIV/0!. Ensuite une mise en forme personnalisée “# ##0;-# ##0;;” permettra de ne pas afficher les valeurs 0. (un SIERREUR(…;””) génère un #VALEUR!)

    Enfin, dernière possibilité, une mise en forme conditionnelle appliquée à “toutes les cellules contenant les valeurs ‘somme de coût moyen’ ” avec la formule =ESTERREUR(O8) en police blanc sur fond blanc permettra de masquer visuellement les erreurs.
    Cordialement
    Stéphane

    en réponse à : Extraction de données power query #61294
    Stéphane Lorin
    Participant

    Bonjour
    Je propose de sauvegarder vos commentaires dans une table intermédiaire.
    Quand vous actualiserez vos données, les commentaires précédents seront repris par fusion avec cette table de sauvegarde et vous pouvez en ajouter ou les modifier
    Voir un exemple ci-joint

    Egalement un exemple un peu plus complexe avec sauvegarde des commentaires historique après actualisation d’une nouvelle table. Le tout avec uniquement des fusions et des ajouts de tables.

    Cordialement

    Attachments:
    You must be logged in to view attached files.
    en réponse à : AXE ordonnées D&F via une formule? #61253
    Stéphane Lorin
    Participant

    Bonjour
    Une suggestion : n’est-il pas plus simple d’exclure dès le départ ces données “en dehors des clous” via PowerQuery (colonne conditionnelle ou filtre) ou avec une mesure DAX ?
    Cordialement
    Stéphane

    en réponse à : Importer des fichiers avec des colonnes differentes #61187
    Stéphane Lorin
    Participant

    Bonjour
    Il faut en effet dépivoter les colonnes mais en choisissant “supprimer le tableau croisé dynamique des autres colonnes” en ayant d’abord sélectionné les colonnes “date” et “nom”. Comme ça peu importe le titre de vos colonnes “Gains”.
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : SOMMESI #61127
    Stéphane Lorin
    Participant

    Bonjour
    Vous pouvez directement fusionner votre table avec elle-même sur le champ N° et développer la colonne montant en agrégé.
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Requête : Transposer dans nouvelle colonne (Nombre de ligne variable) #60878
    Stéphane Lorin
    Participant

    Bonjour

    Voici un fichier avec une réponse en trois temps

    – un temps pour ajouter un index afin :
    – d’identifier chaque nouveau “dossier ” suivant l’index de la ligne “Année” qui est ensuite recopié vers le bas
    – d’identifier la ligne où apparaissent les en-têtes de vos colonnes : Réf inter., BUPC, Projet… (index 8 pour ligne 9 du csv car l’index commence à 0 )
    – d’identifier la ligne où apparaissent les en-têtes de vos colonnes : Type, RG Prêt, DPT Prêt… (index 12 pour ligne 13)

    – un temps pour traiter les en-têtes en utilisant les colonnes dynamiques avec l’option avancée “ne pas agréger”

    – un temps pour traiter les lignes que j’ai décomposé en 2 sous-étapes pour les lignes “réf. intern” et pour les lignes “type”. Dans cette étape je convertis en numérique les lignes en constatant que les 1, 2 ou 3 correspondent aux “Réf inter.” et que les 0 correspondent aux “Type” (à la ligne 45 du .csv)

    Puis une fusion de l’ensemble

    Cela demande sûrement quelques adaptations mais c’est vraiment rapide à mettre en place

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : COUNTROWS + OR + AND #60750
    Stéphane Lorin
    Participant

    Bonjour
    Je ne peux vous répondre sur votre première question mais pour avoir plus de 2 critères OR il faut utiliser || voir ici : https://docs.microsoft.com/fr-fr/dax/or-function-dax
    Et pour le AND c’est &&
    Stéphane

15 sujets de 241 à 255 (sur un total de 283)