Toutes mes réponses sur les forums

15 sujets de 256 à 270 (sur un total de 283)
  • Auteur
    Messages
  • en réponse à : Code redondants #60689
    Stéphane Lorin
    Participant

    Bonjour
    Voici une possibilité sous Excel avec PowerQuery
    Vous chargez votre tableau dans une liste, vous ajoutez une colonne conditionnelle pour récupérer la valeur U0015, U0054… que vous remplissez “vers le bas”.
    Vous supprimez la première colonne inutile et vous utilisez la fonctionnalité “colonnes dynamiques” avec l’option avancée “ne pas agréger”
    Et vous obtenez le résultat attendu
    Les opérations seront les mêmes sous PowerBI,

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : rechercherv en liant plusieurs # différents #60587
    Stéphane Lorin
    Participant

    Bonjour
    Voici un exemple de solution “dynamique” sans la dernière version d’Excel avec une combinaison de fonctions ESTNUM + TROUVE pour savoir si le client est présent dans le regroupement, la fonction N pour convertir les VRAI/FAUX obtenus en 1/0 et un SOMMEPROD pour multiplier les montants par ces 1/0.
    Un RECHERCHEV impose que chaque client n’ait qu’un seul montant ce qui n’est pas le cas dans une table d vente (avec une date)

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplir vers le haut après l'ajout d'une colonne personnalisée #60334
    Stéphane Lorin
    Participant

    Bonjour

    Avez-vous essayer de remplacer votre « » par null dans votre formule ?
    Table.AddColumn(# »Sorted Rows », « TRANSFORMER LES NULLS A VIDE », each if [No FACT] = « NULL » and [Code source facture] = « TAB » then null else [No FACT])

    Puis de remplir vers le haut

    Stéphane

    en réponse à : Calcul de ligne à ligne sur Power Query #60216
    Stéphane Lorin
    Participant

    Bonjour
    En complément à l’article de Sophie, voici une solution simple avec une table de transfert paramétrable : vous indiquez le département de départ, les départements d’arrivée et les coefficients de chacun et vous n’avez plus qu’à actualiser la table de synthèse.

    Voici les étapes :
    – fusion entre la table de départ et la table de transfert sur le champ “département”
    – développement des “départements d’arrivée” et des “coefficients”
    – ajout de 2 colonnes conditionnelles :
    – si “Département d’arrivée” est null alors “Département initial” sinon “Département d’arrivée”
    – si “coefficient” est null alors 1 sinon “coefficient”
    – multiplication des ventes par ce coefficient retraité
    – regroupement par “produit” et “département final” : somme des ventes multipliées par le coef.

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Déplacer des lignes dans des colonnes #59912
    Stéphane Lorin
    Participant

    Bonjour
    Il faut par exemple ajouter une colonne conditionnelle du type : si [votre 1ere colonne] commence par “Compte” alors [votre 1ere colonne] sinon null
    Puis extraire le contenu après le symbole “: ” pour récupérer le n° du compte
    Et enfin copier vers le bas (“Fil”)
    Procéder de même avec la [column2]

    Ensuite :
    – Supprimer la 1ere ligne
    – Utiliser la 1ere ligne comme en-tête (donc la seconde actuellement)
    – supprimer les lignes “Total”, les autres lignes “Numéro d’article”, celles qui commencent par “Compte”
    – définir la colonne [Quantité] comme un entier, celle des [Achats] dans un “Currency”
    et votre base devrait être propre
    C’est un nettoyage assez classique de fichier source

    Cordialement

    Stéphane

    en réponse à : Éléments calculés dans un TCD et référence au données du TCD #59481
    Stéphane Lorin
    Participant

    Bonjour
    Je vous propose une solution dans le fichier ci-joint
    Il faudra nécessairement adapter les calculs à votre cas

    – des produits (P01 à P28)
    – des stocks fin de mois (de 1 à 10)
    – des ventes (de 1 à 12)

    pas de formules Power Query trop complexes : des fusions, des colonnes conditionnels, des – !
    – une plage développée {[Période en cours]+1..30} pour obtenir la liste de toutes les plages qui suivent celle en cours – à gérer un peu autrement avec des mois et non des périodes de 1 à 12
    – une fusion avec les ventes puis un remplissage vers le bas, une fusion de la table avec elle-même et un regroupement pour obtenir le cumul des ventes (voir post de Sophie en septembre)
    – le calcul de l’écart entre le stock et ce cumul
    – puis le calcul du recouvrement : 1 par période tant que l’écart est négatif, au prorata dès qu’il devient positif, O ensuite (lignes filtrées avant)
    – une dernière fusion de toutes les tables pour créer une table de synthèse qui sera la source du TCD final.
    C’est améliorable mais je n’ai pas trop de temps.

    Sinon, votre fichier semble contenir des données réelles, à éviter sur un forum. Pour ma part, je ne travaille pas dans votre secteur d’activité, mais attention, toutes les données ont de la valeurs !
    Enfin, c’était une problématique très intéressante à traiter, merci 🙂

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Date Poste de production #59390
    Stéphane Lorin
    Participant

    Bonjour
    En complément à la solution de Sophie, je vous suggère de retirer 5h à votre date et d’en récupérer la partie entière pour le jour et de diviser par huit l’heure puis d’ajouter 1 pour le poste.
    Cela donne sous Excel :
    – date du poste =ENT([@DateHeureEnr]-5/24)
    – n° du poste =ENT(HEURE([@DateHeureEnr]-5/24)/8)+1

    Voici les étapes avec Power Query
    – ajouter une colonne : [DateEnr]-#duration(0,5,0,0) pour retirer 5 heures
    – scinder cette colonne pour récupérer d’un coté la date et de l’autre l’heure de 00:00 à 23:59
    – récupérer l’heure entière (soit entre 0 et 23) – menu transformer/heure
    – la diviser par 8 (soit 0, 1 ou 2) – menu transformer/standard/diviser par entier
    – ajouter 1 menu transformer/standard/ajouter

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout indicateur 1ère apparition #59344
    Stéphane Lorin
    Participant

    Bonjour

    Voici une solution par formule matricielle Excel =EQUIV([@Client]&[@Produit];[Client]&[Produit];0)=(LIGNE([@Client])-LIGNE(Tableau1[[#En-têtes];[Client]]))

    et une autre par Power Query :
    – ajout d’un index de ligne,
    – regroupement par [Client] et [Produit] pour récupérer le min de l’index
    – fusion des tables pour comparer l’index de la ligne en cours avec l’index min : si égal alors première apparition.

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Afficher la dernière donnée d'une rechercheV #59342
    Stéphane Lorin
    Participant

    Bonjour
    Une deuxième possibilité en regroupant les #Job avec le Max ID par #Job puisque vous dites que le dernier intervenant est le max des ID. Puis en fusionnant avec la source initiale pour récupérer le nom associé à cet ID.
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : convertir formule en code vba #59255
    Stéphane Lorin
    Participant

    Bonjour
    Difficile de vous aider sans votre fichier
    La liste sans doublon peux-être obtenue facilement avec un tableau croisé en ajoutant un segment pour choisir la date.
    Powerquery pourrait être également très utile.
    SOMME.SI.ENS remplace souvent avantageusement SOMMEPROD depuis plusieurs versions d’Excel
    les fonctions tableaux sont utiles pour éviter les plages du type $C$7:$C$9948

    Sinon dans votre première formule pour identifier les valeur sans doublon, il est étonnant que votre INDEX commence en ligne 1 mais que les autres fonctions commencent en ligne 7

    Cordialement
    Stéphane

    Stéphane Lorin
    Participant

    Bonjour
    En complément, si votre objectif est de filtrer rapidement une liste suivant la première lettre, il est intéressant d’ajouter une colonne avec GAUCHE([votrecolonne]) et de la masquer. Puis de créer un segment sur cette nouvelle colonne.
    Il est alors facile d’obtenir tous les libellés qui commencent par une lettre et, avantage supplémentaire, votre liste n’a plus besoin d’être triée de A à Z
    Stéphane

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

    Bonjour

    Je ne maîtrise pas suffisamment le DAX pour vous répondre précisément avec ce langage mais voici une possibilité assez simple avec Power Query :
    – création d’une table de table (min et max paramétrable)
    – fusion de cette table avec la table budget et calcul du budget mensuel cumulé à date (jour/nb jour du mois)
    – seconde fusion avec la table réel et calcul du réel mensuel cumulé à date (avec ma méthode expliquée par Sophie le 16/09)
    Si cela peut vous aider …

    Cordialement
    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Objectif mois en Objectif Jour #59022
    Stéphane Lorin
    Participant

    Bonjour
    voici une possibilité de réponse avec une fonction SOMME.SI.ENS :

    * critères pour cumul objectif du mois : > fin du mois précédent et <= fin du mois en cours

    * critères pour cumul objectif du 1er à la date : > fin de mois précédente et <= date

    Cordialement

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Récupérer le nombre de lignes par occurrence #58577
    Stéphane Lorin
    Participant

    Re-bonjour
    En complément, voici une solution si votre colonne de code n’est pas triée :

    Table intermédiaire avec la liste de n° de lignes de chaque code
    – ajouter un Index à la table initiale
    – regrouper les lignes par code en choisissant toutes les lignes et en modifiant la formule : “each _, type table” par “each _[Index], type list” pour récupérer la liste des lignes de chaque code et non une table avec toutes les lignes de chacun

    Reprendre votre table initiale
    – ajouter le même Index
    – fusionner avec la table intermédiaire par code et récupérer la liste des lignes de chacun
    – ajouter une colonne avec la fonction “List.PositionOf” qui permet de récupérer la position de la ligne actuelle dans l’ensemble des lignes du code et ajouter 1 pour ne pas commencer de 0 la 1ère occurrence.

    Je contrôle que j’obtiens le même résultat qu’avec une formule NB.SI partant du l’en-tête jusqu’à la ligne actuelle : =NB.SI(Liste_Code[[#En-têtes];[Code]]:[@Code];[@Code])

    il aurait été plus simple de sauvegarder l’ordre initial des lignes avec un Index, de trier les codes, d’exécuter ma première méthode, et de remettre l’ordre initial, mais bon… c’était pour le plaisir de trouver une autre solution un peu plus complexe !

    Voir un exemple ci-joint

    Stéphane

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Récupérer le nombre de lignes par occurrence #58575
    Stéphane Lorin
    Participant

    Précision : il faut que les “CODE PROD” soient triés pour que les mêmes n° soient les uns avec les autres et non mélangés
    Stéphane

15 sujets de 256 à 270 (sur un total de 283)