Forum Discussion
Create a price list comparison table
- 7 years ago
One way could be to CROSS JOIN price list of each SKU with itself and then computing the difference
Check this Power Query Solution. Please see attached file's Query Editor for steps
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUYoAYkMjpVgdCDcSxDWGc6NAXEM4NwTENdAzBQs4QXWbwXkgzQg5kF4TJLUgzeZKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [SKU = _t, PriceList = _t, Price = _t]), ChangedType = Table.TransformColumnTypes(Source,{{"SKU", type text}, {"PriceList", type text}, {"Price", type number}}), #"Added Custom" = Table.AddColumn(ChangedType, "Comparison", each Table.SelectRows(ChangedType, (X)=>X[SKU] =[SKU])), #"Expanded Comparison" = Table.ExpandTableColumn(#"Added Custom", "Comparison", {"PriceList", "Price"}, {"Comparison.PriceList", "Comparison.Price"}), #"Added Custom1" = Table.AddColumn(#"Expanded Comparison", "Diff", each [Price]-[Comparison.Price]) in #"Added Custom1" - Anonymous7 years ago
Here is an approach that will not require you to change the structure of your fact table. You just need another table in your model to represent the comparison price list and then you can let DAX calculations do the rest.
With a model like the above, you can use the following calculation, using the recently added TREATAS function.
I have created a sample workbook here, that you can download: Download
Find out more about the TREATAS function here: https://docs.microsoft.com/en-us/dax/treatas-function
Comparison = VAR varComparisonPrice = CALCULATE ( MAX ( [Price] ), TREATAS ( VALUES ( 'Comparison Price List'[Comparison Price List] ), 'Price List'[Price List] ) ) VAR varPrice = CALCULATE ( MAX ( [Price] ) ) RETURN varComparisonPrice - varPriceYou will get the result that you expect:
One way could be to CROSS JOIN price list of each SKU with itself and then computing the difference
Check this Power Query Solution. Please see attached file's Query Editor for steps
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUYoAYkMjpVgdCDcSxDWGc6NAXEM4NwTENdAzBQs4QXWbwXkgzQg5kF4TJLUgzeZKsbEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [SKU = _t, PriceList = _t, Price = _t]),
ChangedType = Table.TransformColumnTypes(Source,{{"SKU", type text}, {"PriceList", type text}, {"Price", type number}}),
#"Added Custom" = Table.AddColumn(ChangedType, "Comparison", each Table.SelectRows(ChangedType, (X)=>X[SKU] =[SKU])),
#"Expanded Comparison" = Table.ExpandTableColumn(#"Added Custom", "Comparison", {"PriceList", "Price"}, {"Comparison.PriceList", "Comparison.Price"}),
#"Added Custom1" = Table.AddColumn(#"Expanded Comparison", "Diff", each [Price]-[Comparison.Price])
in
#"Added Custom1"