Forum Discussion
Anonymous
6 years agoNot applicable
Two value types in one column
Hi! I have two columns in a self-referencing table tracker, both with dates (01/12/2020 format) and strings (e.g. “Pending”). How to preserve both different types considering that another column make...
- 6 years ago
Hi Anonymous ,
We can create a custom column like that.
if [R date] = "Pending" then 0 else Duration.Days([F date]-Date.FromText([R date]))M query for your reference.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Vc87CoAwEADRu6QOJLv538I+pFPEJvcvFUUcy+FV07tZtrkeczfWiBNx6tWbYftV+sQNSgiAQIiASEiARMiATCiAQqiASmiARhD/ifqfCOR9Hyc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"R date" = _t, #"F date" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"R date", type text}, {"F date", type date}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [R date] = "Pending" then 0 else Duration.Days([F date]-Date.FromText([R date]))) in #"Added Custom"
v-frfei-msft
6 years agoCommunity Support
Hi Anonymous ,
We can create a custom column like that.
if [R date] = "Pending" then 0 else Duration.Days([F date]-Date.FromText([R date]))
M query for your reference.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Vc87CoAwEADRu6QOJLv538I+pFPEJvcvFUUcy+FV07tZtrkeczfWiBNx6tWbYftV+sQNSgiAQIiASEiARMiATCiAQqiASmiARhD/ifqfCOR9Hyc=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"R date" = _t, #"F date" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"R date", type text}, {"F date", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [R date] = "Pending" then 0 else Duration.Days([F date]-Date.FromText([R date])))
in
#"Added Custom"
- Anonymous6 years agoNot applicable
hi v-frfei-msft,
this is what I needed. Thanks so much! 🙂
I've amended it a bit because I had to exclude weekends and holidays. I'm leaving part of the code for future reference:
... #"Invoked Custom Function" = Table.AddColumn(#"Added Conditional Column", "CeT Performance", each if [Transfer Receive Date] = "Pending" then "0" else Datediff(Date.FromText([Transfer Receive Date]), [Transfer finalization Date], holidays[Holiday])) ... DATEDIFF: = (StartDate as date, EndDate as date, optional Holidays as list) => let ListOfDates = List.Dates(StartDate,Number.From(EndDate-StartDate),#duration(1,0,0,0)), DeleteHolidays = if Holidays = null then ListOfDates else List.Difference(ListOfDates, Holidays), DeleteWeekends = List.Select(DeleteHolidays, each Date.DayOfWeek(_,1) < 5 ), CountDays = List.Count(DeleteWeekends) in CountDays