Creation d'une colonne qui somme à partir d'autres colonnes

Bonjour à tous,

J'ai actuellement les 4 colonnes suivantes et je veux en créer une cinquième (Breakdowns count) dans laquelle on va faire la somme le nombre d' "Order" (colonne 4) par "Equipment" et par "WEEK" et par "MONTH".

Par exemple, pour le mois 1, semaine 1, equipement numero 1000406533 : nous avons 3 differents order (Un order est creé lorsqu'une panne survient)

MONTHWEEKEquipmentOrderBreakdowns count
111000406531910308940 1
1110004065339103080453
111000406533910308045
111000406533910308270
111000406533910308299
111000406533910308299
1110004065359103085861
111000406535910308586
1110004065369103082971
1110004065389103081212
111000406538910308988
111000406538910308988

Quel serait le code M à rajouter au miens pour creer cette 5eme colonne ?

Mon code :

let
    Source = Excel.CurrentWorkbook(){[Name="TableIW47"]}[Content],
    #"Erreurs supprimées" = Table.RemoveRowsWithErrors(Source, {"WEEK"}),
    #"Valeur remplacée" = Table.ReplaceValue(#"Erreurs supprimées","",null,Replacer.ReplaceValue,{"Equipment"}),
    #"Rempli vers le bas" = Table.FillDown(#"Valeur remplacée",{"Equipment"}),
    #"Lignes filtrées" = Table.SelectRows(#"Rempli vers le bas", each ([Breakdown and Hot Call] = "X")),
    #"Autres colonnes supprimées" = Table.SelectColumns(#"Lignes filtrées",{"Order", "Actual work", "Equipment", "Breakdown and Hot Call", "Breakdown Duration", "WEEK", "MONTH"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Autres colonnes supprimées",{"MONTH", "WEEK", "Equipment", "Order", "Actual work", "Breakdown and Hot Call", "Breakdown Duration"}),
    #"Sorted Rows" = Table.Sort(#"Reordered Columns",{{"MONTH", Order.Ascending}, {"WEEK", Order.Ascending}, {"Equipment", Order.Ascending}, {"Order", Order.Ascending}})
in
    #"Sorted Rows"

J'espere avoir été clair et merci pour votre aide !

Bonjour à tous !

Une approche à adapter :

bonjour

une contribution de façon classique pour les versions anterieures

cordialement

14ilyes4205.xlsx (19.61 Ko)

Bonjour les gars, merci de m'avoir lu et merci pour votre aide. Vos 2 solutions fonctionnent parfaitement, je vais utiliser celle de JFL car j'ai besoin de continuer à bosser sur Power Query. J'ai d'ailleurs une autre opération à effectuer :

Je vais ajouter une 6eme colonne à mon tableau (Breakdown duration) pour laquelle j'ai besoin d'une modification. Dans cette colonne, les durées des pannes sont autant repetée que les "Order".

MONTHWEEKEquipmentOrderBreakdowns countBreakdown duration
11100040653191030894011.5
11100040653391030804532
1110004065339103080452
1110004065339103082700.5
1110004065339103082996
1110004065339103082996
11100040653591030858611.5
1110004065359103085861.5
11100040653691030829712
11100040653891030812121
1110004065389103089883
1110004065389103089883

Cela me pose probleme pour la suite dans mes TCD et je veux que Query ne répète pas cette même durée. Je voudrais un truk du genre :

MONTHWEEKEquipmentOrderBreakdowns countBreakdown duration
11100040653191030894011.5
11100040653391030804532
111000406533910308045null
1110004065339103082700.5
1110004065339103082996
111000406533910308299null
11100040653591030858611.5
111000406535910308586null
11100040653691030829712
11100040653891030812121
1110004065389103089883
1110004065389103089883

Merci beaucoup beaucoup vous y êtes tellement pour beaucoup dans ma progression !

Aussi voici mon code actuel :

et
    Source = Excel.CurrentWorkbook(){[Name="Choix"]}[Content],
    #"Rempli vers le bas" = Table.FillDown(Source,{"Column1"}),
    #"En-têtes promus" = Table.PromoteHeaders(#"Rempli vers le bas", [PromoteAllScalars=true]),
    #"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",{{"LINES", type text}, {"MACHINE", type text}, {"Equipement No", Int64.Type}}),
    #"Requêtes fusionnées" = Table.NestedJoin(#"Type modifié", {"Equipement No"}, Data, {"Equipment"}, "Data", JoinKind.Inner),
    #"Data développé" = Table.ExpandTableColumn(#"Requêtes fusionnées", "Data", {"Order", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "WEEK", "MONTH"}, {"Order", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "WEEK", "MONTH"}),
    #"Added Conditional Column" = Table.AddColumn(#"Data développé", "Nb of hours/week", each if [Equipement No] >= 1000409774 then 168 else if [Equipement No] >= 1000409754 then "168" else if [Equipement No] >= 1000407443 then 112 else if [Equipement No] >= 1000407440 then 56 else 112, type any),
    #"Sorted Rows" = Table.Sort(#"Added Conditional Column",{{"WEEK", Order.Ascending}, {"LINES", Order.Ascending}, {"MACHINE", Order.Ascending}, {"Order", Order.Ascending}}),
    #"Grouped Rows" = Table.Combine(Table.Group(#"Sorted Rows", {"MONTH", "WEEK", "Equipement No"}, {{"All", each Table.FromColumns(Table.ToColumns(_) & {{List.Count(List.Distinct(_[Order]))} & List.Repeat({null}, Table.RowCount(_)-1)}, Table.ColumnNames(_) & {"Breakdowns count"})}})[All]),
    #"Reordered Columns" = Table.ReorderColumns(#"Grouped Rows",{"MONTH", "WEEK", "LINES", "MACHINE", "Equipement No", "Order", "Breakdowns count", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "Nb of hours/week"})
in
    #"Reordered Columns"

Bonjour à tous de nouveau !

Pourquoi ne pas joindre un classeur représentatif ?

Difficile de cerner le lien entre une durée et un nombre d’occurrences.....

Je viens de recevoir de l'aide et on m'a filé ce code qui fonctionne :

let
    Source = Excel.CurrentWorkbook(){[Name="Choix"]}[Content],
    #"Rempli vers le bas" = Table.FillDown(Source,{"Column1"}),
    #"En-têtes promus" = Table.PromoteHeaders(#"Rempli vers le bas", [PromoteAllScalars=true]),
    #"Type modifié" = Table.TransformColumnTypes(#"En-têtes promus",{{"LINES", type text}, {"MACHINE", type text}, {"Equipement No", Int64.Type}}),
    #"Requêtes fusionnées" = Table.NestedJoin(#"Type modifié", {"Equipement No"}, Data, {"Equipment"}, "Data", JoinKind.Inner),
    #"Data développé" = Table.ExpandTableColumn(#"Requêtes fusionnées", "Data", {"Order", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "WEEK", "MONTH"}, {"Order", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "WEEK", "MONTH"}),
    #"Added Conditional Column" = Table.AddColumn(#"Data développé", "Nb of hours/week", each if [Equipement No] >= 1000409774 then 168 else if [Equipement No] >= 1000409754 then "168" else if [Equipement No] >= 1000407443 then 112 else if [Equipement No] >= 1000407440 then 56 else 112, type any),
    #"Sorted Rows" = Table.Sort(#"Added Conditional Column",{{"WEEK", Order.Ascending}, {"LINES", Order.Ascending}, {"MACHINE", Order.Ascending}, {"Order", Order.Ascending}}),
    #"Grouped Rows" = Table.Combine(Table.Group(#"Sorted Rows", {"MONTH", "WEEK", "Equipement No"}, {{"All", each Table.FromColumns(Table.ToColumns(_) & {{List.Count(List.Distinct(_[Order]))} & List.Repeat({null}, Table.RowCount(_)-1)}, Table.ColumnNames(_) & {"Breakdowns count"})}})[All]),
    #"Reordered Columns" = Table.ReorderColumns(#"Grouped Rows",{"MONTH", "WEEK", "LINES", "MACHINE", "Equipement No", "Order", "Breakdowns count", "Actual work", "Breakdown and Hot Call", "Breakdown Duration", "Nb of hours/week"}),
    #"Grouped Rows1" = Table.Combine(Table.Group(#"Reordered Columns", {"MONTH", "WEEK", "Equipement No", "Order"}, {{"All", each
    let
        cn = "Breakdown Duration", 
        a = Table.RemoveColumns(_, cn)
    in
    Table.FromColumns(Table.ToColumns(a) & {{Table.Column(_,cn){0}} & List.Repeat({null}, Table.RowCount(a)-1) }, Table.ColumnNames(a) & {cn})}})[All]),
    #"Reordered Columns1" = Table.ReorderColumns(#"Grouped Rows1",{"MONTH", "WEEK", "LINES", "MACHINE", "Equipement No", "Order", "Breakdowns count", "Breakdown Duration", "Actual work", "Breakdown and Hot Call", "Nb of hours/week"})
in
    #"Reordered Columns1"

Or maintenant j'au un autre petit souci :

Je passe donc par Power Query puis ensuite via TCD pour au final envoyer dans un tableau classique les bonnes données. C'est aussi dans ce tableau classique que je fais mes 2 derniers calculs (colonne MTTR et MTBF).

Por ce qui est du calcul du MTTR :

MTTR = Temps d'arret total / nombre d'arrets

soit avec mes données :

MTTR = Max of Breakdown Duration (in hours) / Breakdowns count

Je n'arrive pas à recuperer dans mon tableau classique la valeur de "Max of Breakdown Duration (in hours)". En effet, au lieu de me donner la formule "Getpivotdata..." Excel me donne la cellule dans laquelle se trouve Max of Breakdown Duration (in hours).

Voici le fichier : https://file.io/sGBaGLykuPTT

Merci de m'avoir lu et merci pour votre futur aide !

Bonsoir à tous !

Je viens de recevoir de l'aide et on m'a filé ce code qui fonctionne :

Excellente nouvelle !

Pour le reste, je pense que cette aide extérieure saura parfaitement vous accompagner.

Bon courage !

Rechercher des sujets similaires à "creation colonne qui somme partir colonnes"