Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Power Query - how to handle Divide by 0?

Hi,

I have some Power Query code that is returning either NaN or Infinity values. I believe this to be a Divide by 0 issue.

 

How would I handle a divide by 0 in the below line of Power Query code:
#"Grouped Rows" = Table.Group( #"Filtered Rows", {"Division"}, {{"All", each _, type table}}),
#"Added Custom" = Table.AddColumn( #"Grouped Rows", "DEValue",    each [All]{[Grouping_Level="Gross Profit"]}[DEValue]     / [All]{[Grouping_Level="Sales"]}[DEValue]),
#"Added Custom1" = Table.AddColumn( #"Added Custom", "DETarget",  each [All]{[Grouping_Level="Gross Profit"]}[DETarget]   / [All]{[Grouping_Level="Sales"]}[DETarget]),
#"Added Custom2" = Table.AddColumn( #"Added Custom1", "MTDValue",  each [All]{[Grouping_Level="Gross Profit"]}[MTDValue]  / [All]{[Grouping_Level="Sales"]}[MTDValue]),
#"Added Custom3" = Table.AddColumn( #"Added Custom2", "MTDTarget", each [All]{[Grouping_Level="Gross Profit"]}[MTDTarget] / [All]{[Grouping_Level="Sales"]}[MTDTarget]),
#"Added Custom4" = Table.AddColumn( #"Added Custom3", "Grouping_Level", each "**bleep**M"),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom4", {"All"}),

 

Thanks.

  • Anonymous's avatar
    Anonymous
    7 years ago

    I've worked it out:

    #"Grouped Rows" = Table.Group( #"Filtered Rows", {"Division"}, {{"All", each _, type table}}),
    #"Added Custom" = Table.AddColumn( #"Grouped Rows", "DEValue",     each if [All]{[Grouping_Level="Sales"]}[DEValue]   = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[DEValue]    / [All]{[Grouping_Level="Sales"]}[DEValue]),
    #"Added Custom1" = Table.AddColumn( #"Added Custom", "DETarget",   each if [All]{[Grouping_Level="Sales"]}[DETarget]  = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[DETarget]   / [All]{[Grouping_Level="Sales"]}[DETarget]),
    #"Added Custom2" = Table.AddColumn( #"Added Custom1", "MTDValue",  each if [All]{[Grouping_Level="Sales"]}[MTDValue]  = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[MTDValue]   / [All]{[Grouping_Level="Sales"]}[MTDValue]),
    #"Added Custom3" = Table.AddColumn( #"Added Custom2", "MTDTarget", each if [All]{[Grouping_Level="Sales"]}[MTDTarget] = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[MTDTarget]  / [All]{[Grouping_Level="Sales"]}[MTDTarget]),
    #"Added Custom4" = Table.AddColumn( #"Added Custom3", "Grouping_Level", each "**bleep**M"),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom4", {"All"}),

     

    Just needed a little trial and error in the positioning of the added.

1 Reply

  • Anonymous's avatar
    Anonymous
    Not applicable

    I've worked it out:

    #"Grouped Rows" = Table.Group( #"Filtered Rows", {"Division"}, {{"All", each _, type table}}),
    #"Added Custom" = Table.AddColumn( #"Grouped Rows", "DEValue",     each if [All]{[Grouping_Level="Sales"]}[DEValue]   = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[DEValue]    / [All]{[Grouping_Level="Sales"]}[DEValue]),
    #"Added Custom1" = Table.AddColumn( #"Added Custom", "DETarget",   each if [All]{[Grouping_Level="Sales"]}[DETarget]  = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[DETarget]   / [All]{[Grouping_Level="Sales"]}[DETarget]),
    #"Added Custom2" = Table.AddColumn( #"Added Custom1", "MTDValue",  each if [All]{[Grouping_Level="Sales"]}[MTDValue]  = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[MTDValue]   / [All]{[Grouping_Level="Sales"]}[MTDValue]),
    #"Added Custom3" = Table.AddColumn( #"Added Custom2", "MTDTarget", each if [All]{[Grouping_Level="Sales"]}[MTDTarget] = 0 then 0 else [All]{[Grouping_Level="Gross Profit"]}[MTDTarget]  / [All]{[Grouping_Level="Sales"]}[MTDTarget]),
    #"Added Custom4" = Table.AddColumn( #"Added Custom3", "Grouping_Level", each "**bleep**M"),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom4", {"All"}),

     

    Just needed a little trial and error in the positioning of the added.