Toutes mes réponses sur les forums
-
AuteurMessages
-
Xavier Allart
ParticipantBonjour
Voici une proposition :
let
Source = Excel.CurrentWorkbook(){[Name=”Tableau1″]}[Content],
#”Type modifié” = Table.TransformColumnTypes(Source, {
{“iD”, type text},
{“WEC Final-assembly Disp. Start”, type date},
{“WEC Final-assembly Disp. End”, type date},
{“WEC Final-assembly Act Start”, type date},
{“WEC Final-assembly Act End”, type date}
}),
P1 = Table.AddColumn(#”Type modifié”, “P1″, each List.Min(List.RemoveNulls({
[#”WEC Final-assembly Disp. Start”],
[#”WEC Final-assembly Disp. End”],
[#”WEC Final-assembly Act Start”],
[#”WEC Final-assembly Act End”]
})))
in
P1Cordialement
Xavier Allart
Participantje vous propose de fusion des deux tables en utilisant Power Query :
Étape 1 : Importer vos tables
Chargez vos tables “Employe” et “Inter” dans le modèle de données.Étape 2 : Fusionner les tables
Assurez-vous que la table “Employe” est sélectionnée.
Allez dans l’onglet “Accueil” et cliquez sur “Fusionner des requêtes”. Dans le menu déroulant, sélectionnez “Fusionner des requêtes comme nouvelle”.Étape 3 : Configurer la fusion
Une nouvelle fenêtre s’ouvrira pour configurer la fusion. Assurez-vous que la table “Inter” est sélectionnée dans la liste déroulante.
Sélectionnez la colonne “Matricule” dans les deux tables comme colonne de fusion. Assurez-vous que la correspondance de la colonne est définie sur “Égale”.
Pour le type de fusion, sélectionnez “Gauche externe”. Cela inclura toutes les lignes de la table “Employe” et seulement les lignes correspondantes de la table “Inter”.Étape 4 : Appliquer la fusion
Cliquez sur le bouton “OK” pour appliquer la fusion. Vous verrez maintenant une nouvelle colonne dans la table “Employe” qui contient les informations de la table “Inter” pour les employés correspondants. Il ne reste plus qu’à la deployer et choisir les colonnes comme “date de départ”Cordialement
Xavier1 octobre 2023 à 5 h 29 min en réponse à : Nbre effectifs présents et taux de départ sur 12 mois glissants #132956Xavier Allart
ParticipantBonjour
Voici une proposition, comme point de départ
J’ai fait la supposition qu’il existe une table Calendrier Mensuel avec les champs Début_Mois et Fin_Mois
Ajouter une table pour calculer par mois : le nombre de présents, et de départs
Code :
TablePresentsParDate =
SUMMARIZECOLUMNS(
Calendrier[Fin_Mois],
“Nombre de Présents”,
CALCULATE(
COUNTROWS(employes),
FILTER(
employes,
[Date début contrat] <= MAX(Calendrier[Fin_Mois]) &&
(
ISBLANK([Date fin de contrat]) ||
[Date fin de contrat] >= MAX(Calendrier[Fin_Mois])
)
)
),
“Nombre de Départs”,
CALCULATE(
COUNTROWS(employes),
FILTER(
employes,
[Date fin de contrat] >= MAX(Calendrier[Début_Mois]) &&
[Date fin de contrat] <= MAX(Calendrier[Fin_Mois])
)
)
)Dans cette table ajouter les 4 mesures suivantes
Cumul Présents sur 12 mois =
VAR CurrentDate = SELECTEDVALUE(TablePresentsParDate[Fin_Mois])
VAR DateDebutCumul = SELECTEDVALUE(TablePresentsParDate[Date de Début 12 Mois])RETURN
SUMX(
FILTER(
ALL(TablePresentsParDate),
TablePresentsParDate[Fin_Mois] >= DateDebutCumul &&
TablePresentsParDate[Fin_Mois] <= CurrentDate
),
TablePresentsParDate[Nombre de Présents]
)Moyenne Présents sur 12 mois =
VAR CurrentDate = SELECTEDVALUE(TablePresentsParDate[Fin_Mois])
VAR DateDebutCumul = SELECTEDVALUE(TablePresentsParDate[Date de Début 12 Mois])RETURN
AVERAGEX(
FILTER(
ALL(TablePresentsParDate),
TablePresentsParDate[Fin_Mois] >= DateDebutCumul &&
TablePresentsParDate[Fin_Mois] <= CurrentDate
),
TablePresentsParDate[Nombre de Présents]
)Cumul Départs sur 12 mois =
VAR CurrentDate = SELECTEDVALUE(TablePresentsParDate[Fin_Mois])
VAR DateDebutCumul = SELECTEDVALUE(TablePresentsParDate[Date de Début 12 Mois])RETURN
SUMX(
FILTER(
ALL(TablePresentsParDate),
TablePresentsParDate[Fin_Mois] >= DateDebutCumul &&
TablePresentsParDate[Fin_Mois] <= CurrentDate
),
TablePresentsParDate[Nombre de Départs]
)Taux départ sur 12 mois =
DIVIDE([Cumul Départs sur 12 mois],[Moyenne Présents sur 12 mois])Cordialement
Attachments:
You must be logged in to view attached files.Xavier Allart
ParticipantBonjour
Voici une solution en fusionnant les 3 tables en une seule avec Power QuercySélectionner le tableau TP
Données > Obtenir des données : depuis un tableau
Fermer Power Quercy : Fermer et charger > Ne créer que la relation
Recommencer pour le tableau Cours
Renommer pour le tableau Jonction, mais ne pas fermer Power query
Fusionner là avec la table TP
Accueil > Combiner > Fusionner sur le champ « code TP »
Développer la colonne TP, pour afficher les champs Intitulé et enseignant
Recommencer avec la table Cours
Supprimer les champs Code TP et Code Cours
Fermer et charger pour revenir dans Excel
Utiliser des segments et/ou des tableaux croisés dynamiquesUne autre solution consisterait à nommer les colonnes de façon identique dans les 2 tables
Code Intitulé Enseignant
En Power Query,
Importer les 2 tables
les ajouter comme nouvelle table
Dans la colonne code ne conserver que le premier caractère T ou C
Transformer > ExtraireVoila 2 idées à voir en fonction de l’usage
Cordialement
Attachments:
You must be logged in to view attached files.Xavier Allart
ParticipantBonjour
L’erreur que vous rencontrez est due au fait que la colonne ‘calendrier'[calendrier] est de type tableau et qu’elle renvoie plusieurs valeurs, ce qui n’est pas compatible avec une comparaison directe dans le filtre. Pour résoudre ce problème, vous pouvez utiliser la fonction SUMMARIZE pour créer une table virtuelle qui contient les valeurs distinctes de la colonne ‘calendrier'[calendrier] et ensuite effectuer votre filtre sur cette nouvelle table. Voici comment vous pouvez le faire :
3 Derniers Mois =
VAR DateMax = MAX(‘calendrier'[calendrier])
VAR DateMin = EOMONTH(DateMax, -3) + 1
VAR DatesFiltrees =
SUMMARIZE(
‘calendrier’,
‘calendrier'[calendrier],
“DateFiltree”, IF(‘calendrier'[calendrier] >= DateMin && ‘calendrier'[calendrier] <= DateMax, ‘calendrier'[calendrier])
)
RETURN DatesFiltreesDans cette formule, nous utilisons la fonction SUMMARIZE pour créer une nouvelle table virtuelle appelée DatesFiltrees. Cette table contient deux colonnes : ‘calendrier'[calendrier] (qui renvoie les dates distinctes de la colonne calendrier) et une colonne calculée “DateFiltree” qui ne contient que les dates incluses dans les trois derniers mois.
Cordialement
XavierXavier Allart
ParticipantBonjour
En partant de la réponse donnée par Daniel, juste pour le plaisir, je vous propose cette variante :
La liste des dates (mois année) est crée dans une table qui servira de calendrier. Cette table aura comme bornes la date d’arrivée la plus ancienne et la date de départ la plus récente.**Étape 1 : Importer vos données**
Charger les données, j’ai nommé cette table « Collaborateurs »
Prénom | Date début | Date fin
———–|————|————
Fred | 01/01/2020 | 01/05/2023
Tonio | 01/04/2021 | 01/03/2024
Miranda | 01/12/2020 | 01/12/2023**Étape 2 : Créer une table de dates personnalisées**
Dans l’éditeur Power Query,
Créer une nouvelle requête vide en sélectionnant “Nouvelle source” > “Requête vide”.
Renommer là “Dates”
Passer en éditeur avancé “Accueil” > “Editeur avancé”.
Copier/Coller le code suivant :
let
DateDebut = List.Min(Collaborateurs[Date début]),
DateFin = List.Max(Collaborateurs[Date fin]),
NoOfIntervals = (Date.Year(DateFin)*12+Date.Month(DateFin))-(Date.Year(DateDebut)*12+Date.Month(DateDebut)),
DatesMensuelles = List.Transform({0..NoOfIntervals}, each Date.AddMonths(DateDebut, _)),
#”Converti en table” = Table.FromList(DatesMensuelles, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#”Type modifié” = Table.TransformColumnTypes(#”Converti en table”,{{“Column1″, type date}}),
#”Colonnes renommées” = Table.RenameColumns(#”Type modifié”,{{“Column1”, “Date”}})
in
#”Colonnes renommées”**Étape 3 : Relation entre les tables**
Dans Power BI Desktop,
Appliquer les modifications.
Aller dans l’onglet “Vue de Modèle”.
S’il existe une relation entre les deux tables, supprimer là.**Étape 4 : Créer des mesures DAX**
Dans Power BI Desktop, aller dans l’onglet “Affichage du rapport”.
Sélectionner la table ” Collaborateurs ”
Cliquez sur “Nouvelle mesure” pour créer une mesure DAX qui comptera le nombre de présents pour chaque mois en fonction des dates de début et de fin de vos collaborateurs.
Copier/Coller le code suivant à la place de “Mesure = ”
Nombre de Présents =
COUNTROWS(FILTER(Collaborateurs, [Date début] <= MAX(Dates[Date]) && [Date fin] >= MIN(Dates[Date])))**Étape 5 : Créer un graphique**
Créer un graphique (par exemple, un graphique en colonnes empilées) dans votre rapport.
Utiliser la mesure “Nombre de Présents” comme valeur de votre axe Y (valeurs) et la colonne “Dates[Dates]” de la table de dates personnalisées comme valeur de votre axe X (catégories).
En suivant ces étapes, vous devriez être en mesure de créer un graphique mensuel du nombre de présents en fonction des dates de début et de fin de vos collaborateurs en utilisant Power Query et Power BI.Attachments:
You must be logged in to view attached files.31 août 2023 à 3 h 10 min en réponse à : somme des commandes par magasin par tranche de nombre de commandes. #131894Xavier Allart
ParticipantBonjour
Voici une solution en utilisant power query et la création de la table regroupée
1. **Importer les données :** *
Importez votre fichier Excel contenant les données dans Power BI.2. **Transformer les données :**
Une fois que vous avez importé les données, vous devrez les transformer pour créer les agrégations nécessaires. Cela peut être fait via l’éditeur Power Query dans Power BI.3. **Calculer le nombre de nombre de commandes :**
Vous pouvez le faire en regroupant vos données par magasin et en comptant le nombre de lignes pour chaque groupe.
Transformer > Re grouper4. **Créer des tranches de nombre de commandes :** Ensuite, créez une colonne conditionnelle qui attribue une tranche au nombre de commandes.
Ajouter une colonne > Colonne conditionnelle5. **Agrégation par tranche de nombre de commandes et par magasin :** Vous pouvez le faire en regroupant vos données par Tranche et en comptant le nombre de lignes pour chaque groupe.
Transformer > Re grouperAmicalement
4 juillet 2023 à 21 h 45 min en réponse à : Scinder une colonne et ranger les éléments contenus par lignes #129751Xavier Allart
ParticipantBonjour
Pour pouvoir vous aider, il faudrait transmettre un fichier power bi pour comprendre la structure de vos tables et des visuels créés.
Cordialements
4 juillet 2023 à 0 h 19 min en réponse à : Scinder une colonne et ranger les éléments contenus par lignes #129716Xavier Allart
ParticipantBonjour
Après avoir fractionné la colonne “legislation”
Sélectionner les colonnes “legislation.1” , “legislation.2”, …
Menu Transformer > Depivoter la colonne
Supprimer la colonne “Attribut”
Ajouteur une colonne nommer “X” dont la formule serait “=1”
Sélectionner la colonne “Valeur”
Menu Transformer > Pivoter la colonne
Sélectionner la colonne “X” comme colonne de valeursCordialement,
Xavier Allart
ParticipantBonjour
N’etant pas sur d’avoir compris le context, voici une propositon :
Pour effectuer une recherche dans une colonne spécifique et obtenir le nombre total d’enregistrements compris entre deux valeurs dans Power BI, vous pouvez utiliser une mesure personnalisée (DAX) avec la fonction COUNTROWS.Voici les étapes pour créer cette mesure :
Ouvrez votre rapport dans Power BI Desktop.
Dans la vue “Rapport”, dans la barre de ruban supérieure, Cliquez sur le bouton “Nouvelle mesure” dans le groupe “Calculs”.
Une barre de formule apparaîtra en haut de l’écran. Vous pouvez lui donner un nom significatif, par exemple “Nombre d’enregistrements entre 124600 et 124799”.
Utilisez la fonction COUNTROWS pour compter le nombre d’enregistrements qui répondent à votre critère. La formule ressemblera à ceci :
Nombre d’enregistrements entre 124600 et 124799 = COUNTROWS(FILTER(VotreTable; VotreTable[Colonne] >= 124600 && VotreTable[Colonne] <= 124799))
Assurez-vous de remplacer “VotreTable” par le nom de votre table réelle et “Colonne” par le nom de la colonne dans laquelle vous souhaitez effectuer la recherche.
Appuyez sur la touche “Entrée” pour valider la formule.
Maintenant, vous devriez avoir une mesure qui calcule le nombre total d’enregistrements compris entre les valeurs spécifiées. Vous pouvez l’ajouter à votre tableau de bord ou utiliser cette mesure dans d’autres visualisations pour afficher ce nombre où vous le souhaitez.
Cordialement
Xavier Allart
ParticipantEn power Query
Sélectionner la colonne Matiere
Utiliser la commande : Transformer > Remplacer les valeurs
Valeur à rechercher : Mat
Remplacer par : Note
Utiliser la commande : Transformer > Pivoter la colonne
Colonne de valeur : Note
Options Avancées : Ne pas agrégerVoilà
CordialementXavier Allart
ParticipantBonjour
Voici 2 propostions :
Tableau 1 : Avec les commandes Pivoter et Depivoter les colonnes
Tableau 2 : Avec 2 index et fusion de tableJe vous laisse regarder les requetes power-query dans le fichier Excel.
Cordialemeny
Attachments:
You must be logged in to view attached files.Xavier Allart
ParticipantBonjour
“les livraisons sont quelquefois incomplètes, en retard ou en avance…”
Ce qui me pose un problème c’est qu’elles peuvent être en retard ou en avance et je ne vois pas comment arriver au résultat attendu.Je propose cette solution nécessitant la mise en place de 2 tables supplémentaires
: une de calendrier pour avoir toutes les dates pour réaliser des calculs sur une période choisie
une permettant de mettre en relations les 2 tables HA et réception, cette relation doit être réalisée sur la référence du produit + la tailleJ’ai ajouté 2 mesures DAX
Controle = DIVIDE(sum(Reception[Qtés]),sum(HA[Qtés]))
donnant le % pour le mois sélectionnéCumul = CALCULATE([Controle],FILTER(ALLSELECTED(DimDate[Date]),DimDate[Date]<=MAX(DimDate[Date])))
permettant d’avoir % cumulé depuis le début de la périodeAttachments:
You must be logged in to view attached files.Xavier Allart
ParticipantBonjour
voir l’iamge
Je pense avoir compris les 3 premieres cas suivants :
Pour une date de livraison / Cadence de la table HA, on cherche les livraisons dans la table ReceptionMais pour le cas suivant, la date de reception est avant la livraison
ref Taille 03/11/2023 28/10/2023 Attendu
SICSH23305 40–41 5 5 5/5Et dans le cas suivant, la date de reception est avant la livraison et on compte les non livrés
ref Taille 03/11/2023 28/10/2023 Attendu
SICSH23305 42–43 5 2 3/5Je pense avoir besoin de plus d’explications
CordialementAttachments:
You must be logged in to view attached files.Xavier Allart
ParticipantEn powerquery
Séléctionner les 2 colonnes de dates
Commande : Transformer : Dépivoter les colonnes
Séléctionner la colonne “Attribut”
Commande : Transformer : Pivoter la colonne
colonne de valeurs : Valeur
Options avancées : Ne pas agrégerCordialement
Xavier -
AuteurMessages