Forum Discussion
Anonymous
4 years agoNot applicable
looking up values where two ranges apply
Hello, I have a customer table with multiple status that relate to a date range. I've used these date ranges to create and a unique reference for each customer&status. i.e Customer - A, Status ...
- 4 years ago
Another option is to start with the Orders table, merge in the Customer table (matching on the Customer column), expand the date and unique reference columns, and then filter out the rows that don't satisfy the time overlap.
Here's some example code:
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUbK0MDcFUib6hvpGBkZGQKYZjBmrA1ViaWgOpMz1TWBKTPVNoUpiAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Customer = _t, Order = _t, #"Start Date" = _t, #"Order End" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, {"Order", Int64.Type}, {"Start Date", type date}, {"Order End", type date}}, "en-IN"), #"Merged Queries" = Table.NestedJoin(#"Changed Type", {"Customer"}, Customers, {"Customer"}, "Customers", JoinKind.LeftOuter), #"Expanded Customers" = Table.ExpandTableColumn(#"Merged Queries", "Customers", {"Start Date", "End Date", "Unique Reference"}, {"Customers.Start Date", "Customers.End Date", "Customers.Unique Reference"}), #"Filtered Rows" = Table.SelectRows(#"Expanded Customers", each ([Customers.Start Date] <= [Order End] and [Customers.End Date] >= [Start Date])) in #"Filtered Rows"
Anonymous
4 years agoNot applicable
Hi,
thanks so much for your reply. I am trying to replicate this, but adding the first column I get
Expression.Error: The name 'Changed Type' wasn't recognized. Make sure it's spelled correctly
any idea why this is?
AlexisOlson
4 years agoSuper User
#"Changed Type" refers to the previous step. Change it to whatever the name of your previous step is.