Forum Discussion
Adding a Custom Column with condition.
- 5 years ago
This is the code Csalinas144
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ddJLDoIwEAbgu7AmKTNtAQ+gK9m6IawMMRiFjS68vVNo6c8rodASvs6D1nVCSZqc++fwk2clg6y7ydDKKs54mubTtEnrhFeA2YNCEQchcx2JBnKRYUIMypRc3rgFR2Tk1e37ug9vrygEMoDMwrh9q67vrsNj8GpOz8Z6rCqjyV1yr/bd9p9QkZ4DMQRiiqjYIuNRrmgOJHPoXLlAYyNcJJ5qZwuNYGCnnaKCO86QsqMfOzZsjiULaCARdn2sy+2j/Zd0xHiZ4wYyQjgZpDfxCJhGZoCZ9SEkKM6ggkaS3ckSoT2CyzNyWbscXeFd8wc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Purchase Order Number" = _t, #"Product Name" = _t, Gender = _t, Age = _t, Quantity = _t, Date = _t, #"Ship Date" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Ship Date", type date}}), #"Merged Queries" = Table.NestedJoin( #"Changed Type", {"Product Name"}, Prices, {"Product Name"}, "Prices", JoinKind.LeftOuter ), GetPrice = Table.AddColumn( #"Merged Queries", "Price", each let varDate = [Date] in try Table.Max( Table.SelectRows( [Prices], each [Date] < varDate ), "Date" )[#"Price per Unit(US$)"] otherwise 0 ), #"Removed Columns" = Table.RemoveColumns(GetPrice,{"Prices"}) in #"Removed Columns"Note that the first record returned 0 becuase there was no price set for March 5, 2021. Prices didn't start until March 10.
Here is the PBIX though. It will be much clearer what I did since there are two tables involved.
I apologize I am new to this and I will improve in the future Greg_Deckler edhans
The result that I am wanting is to return the price of an item based off the latest pricing change.
I am a bit vexed on this to begin.
I originally wanted to do all this in the power query editor. We can Start with that.
Csalinas144 - can you please post some data? You are expecting us to help you by typing in all of that stuff you posted above in a image.
1) Post data per these links. It will let us copy and paste it into a table in Power BI.
2) Provide a screenshot (mocked up in Excel is fine) of the expected results.
Now, I kind of get #2 above, so that isn't a huge deal, but if you had posted data as I requested 4 hrs ago you'd have an answer.
Without data, here is what you do:
- Merge table A to Table B using the product name column.
- Extract the latest price using the Table.Max() function based on the [Date] in a calculated column. Include the [Price per unit] piece, then get the value using {0}
Make sense?
Or, post some data. 😁
How to get good help fast. Help us help you.
How To Ask A Technical Question If you Really Want An Answer
How to Get Your Question Answered Quickly - Give us a good and concise explanation
How to provide sample data in the Power BI Forum - Provide data in a table format per the link, or share an Excel/CSV file via OneDrive, Dropbox, etc.. Provide expected output using a screenshot of Excel or other image. Do not provide a screenshot of the source data. I cannot paste an image into Power BI tables.
- Csalinas1445 years ago
Helper II
- edhans5 years ago
Community Champion
It is requiring a signin. Needs to be shared from your OneDrive account with anyone.
- Csalinas1445 years ago
Helper II
Expected Result
I need the Pricing Column to return the correct value of the product based off when it was purchased and the current price of the product.
Date
Product Name Description Price per Unit(US$) 3/10/2021 Enjoy longboard $250.00 5/10/2021 Enjoy longboard $150.00 9/7/2021 Enjoy longboard $100.00 3/10/2021 Vulcom trick board $55.00 3/10/2021 MiniLogo cruzer $125.00 3/4/2021 Element Pro $300.00 5/4/2021 Element Pro $200.00 9/4/2021 Element Pro $95.00 Purchase Order Number
Product Name Gender Age Quantity Date Ship Date 1 Enjoy M 15 1 3/5/2021 3/6/2021 2 Enjoy M 22 1 7/12/2021 7/13/2021 3 Enjoy F 45 1 10/10/2021 10/12/2021 4 Vulcom F 12 1 4/10/2021 4/12/2021 5 MiniLogo F 22 1 5/5/2021 5/8/2021 6 Element M 23 1 4/20/2021 4/21/2021 7 Element M 24 1 6/15/2021 6/16/2021 8 Element F 43 2 10/25/2021 10/26/2021 9 MiniLogo F 23 2 4/20/2021 4/21/2021 10 Enjoy M 15 1 12/20/2021 12/22/2021 11 Vulcom M 20 3 12/21/2021 12/22/2021 12 MiniLogo M 20 3 12/22/2021 12/23/2021 13 Vulcom M 21 3 12/23/2021 12/24/2021 14 Enjoy M 21 1 12/24/2021 12/26/2021 15 MiniLogo M 21 1 12/25/2021 12/26/2021 16 Element F 21 1 12/26/2021 12/27/2021 - edhans5 years ago
Community Champion
This is the code Csalinas144
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ddJLDoIwEAbgu7AmKTNtAQ+gK9m6IawMMRiFjS68vVNo6c8rodASvs6D1nVCSZqc++fwk2clg6y7ydDKKs54mubTtEnrhFeA2YNCEQchcx2JBnKRYUIMypRc3rgFR2Tk1e37ug9vrygEMoDMwrh9q67vrsNj8GpOz8Z6rCqjyV1yr/bd9p9QkZ4DMQRiiqjYIuNRrmgOJHPoXLlAYyNcJJ5qZwuNYGCnnaKCO86QsqMfOzZsjiULaCARdn2sy+2j/Zd0xHiZ4wYyQjgZpDfxCJhGZoCZ9SEkKM6ggkaS3ckSoT2CyzNyWbscXeFd8wc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Purchase Order Number" = _t, #"Product Name" = _t, Gender = _t, Age = _t, Quantity = _t, Date = _t, #"Ship Date" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Ship Date", type date}}), #"Merged Queries" = Table.NestedJoin( #"Changed Type", {"Product Name"}, Prices, {"Product Name"}, "Prices", JoinKind.LeftOuter ), GetPrice = Table.AddColumn( #"Merged Queries", "Price", each let varDate = [Date] in try Table.Max( Table.SelectRows( [Prices], each [Date] < varDate ), "Date" )[#"Price per Unit(US$)"] otherwise 0 ), #"Removed Columns" = Table.RemoveColumns(GetPrice,{"Prices"}) in #"Removed Columns"Note that the first record returned 0 becuase there was no price set for March 5, 2021. Prices didn't start until March 10.
Here is the PBIX though. It will be much clearer what I did since there are two tables involved.