Maybe not the most elegant solution but it works
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8nTRNTQyNlHSUQpPVUgsSlVIz08BcvKzEyuBVFpicmZeuoJncWlpKpALRH75JQqJSTmpCiX5Cjn56Zl5IOFYHbBBpmbmFhBVEOQPNASkLj0fwi/PL8oGGZeWmZeqoBQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, Comment = _t, Comment.1 = _t, Comment.2 = _t, Comment.3 = _t, Comment.4 = _t, Comment.5 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Comment", type text}, {"Comment.1", type text}, {"Comment.2", type text}, {"Comment.3", type text}, {"Comment.4", type text}, {"Comment.5", type text}}),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Changed Type", {"ID"}, "Attribute", "Value"),
#"Replaced Value" = Table.ReplaceValue(#"Unpivoted Other Columns","","---RemoveBlanks---",Replacer.ReplaceValue,{"Value"}),
#"Filtered Rows" = Table.SelectRows(#"Replaced Value", each ([Value] <> "---RemoveBlanks---")),
#"Added Index" = Table.AddIndexColumn(#"Filtered Rows", "Index", 1, 1, Int64.Type),
#"Grouped Rows" = Table.Group(#"Added Index", {"ID"}, {{"MaxComment", each List.Max([Index]), type number}, {"AllRows", each _, type table [ID=nullable text, Attribute=text, Value=text, Index=number]}}),
#"Expanded AllRows" = Table.ExpandTableColumn(#"Grouped Rows", "AllRows", {"Value", "Index"}, {"Value", "Index"}),
#"Added Custom" = Table.AddColumn(#"Expanded AllRows", "FilterToLatestComment", each if [MaxComment] = [Index] then "Last Comment" else "Filter this out"),
#"Filtered Rows1" = Table.SelectRows(#"Added Custom", each ([FilterToLatestComment] = "Last Comment")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows1",{"MaxComment", "Index", "FilterToLatestComment"})
in
#"Removed Columns"