Forum Discussion
CorniTiger21
3 years agoNew Member
Custom Column Conundrum
I am trying to replicate this excel calculation in Power Bi to create a Period Offset column:- =[@Index]-XLOOKUP(TODAY(),[Date],[Index]) Can this be done as a Custom Column? Loving Powe...
- 3 years ago
Something like this might work.
Go to Transform Data and paste this into the advanced editor of a blank query...
let Source = Table.FromRows( Json.Document( Binary.Decompress( Binary.FromText( "i45WMjDUNzDRNzIwtFDSUTKyQOIYAjGKLEjAsaAIpA4ioGsCJEBY18xAKVaHoGFG1DTMmJqGmVDTMFPiDYsFAA==", BinaryEncoding.Base64 ), Compression.Deflate ) ), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ #"Period Start Date" = _t, #"Period End Date" = _t, Index = _t, Date = _t, Period = _t, Month = _t, Year = _t, CurYearOffset = _t, MonthNum = _t, PeriodOffset = _t ] ), ChangeType = Table.TransformColumnTypes( Source, { {"Period Start Date", type date}, {"Period End Date", type date}, {"Date", type date}, {"Index", Int64.Type}, {"Period", Int64.Type}, {"Year", Int64.Type}, {"CurYearOffset", Int64.Type}, {"MonthNum", Int64.Type}, {"PeriodOffset", Int64.Type} } ), AddDaysInPeriod = Table.AddColumn( ChangeType, "DaysInPeriod", each Number.RoundTowardZero(Duration.TotalDays([Period End Date] - [Period Start Date])) + 1, Int64.Type ), AddNewPeriodOffset = Table.AddColumn( AddDaysInPeriod, "NewPeriodOffset", each Number.RoundTowardZero( Duration.TotalDays([Period Start Date] - DateTime.Date(DateTime.FixedLocalNow())) / [DaysInPeriod] ), Int64.Type ) in AddNewPeriodOffset
KNP
3 years agoSuper User
Would be good to provide some sample data/example output so we don't have to create it manually.
Typically, I'd recommend doing this in Power Query but if you want to create a calculated column, you could look into the OFFSET function.
Intellisense doesn't work for it yet as it is relatively new but there's a good article here...
https://data-marc.com/2022/09/21/how-offset-in-dax-will-make-your-life-easier/
Alternately, if you provide some sample data and expected output, I'll see if I can offer a PQ solution.