Forum Discussion
Help required to separate the text
dufoq3 Thanks! It works now. Just last thing!
"Restoration" word for the Engine Full Performance is going into the second column as well. Whereas, I would like it to remain in the first column.
| EN-PR - EN-PR - Engine Full Performance | Restoration P783243 |
There is nothing like that in sample data. You have to provide new sample data with this issue.
- vineshparekh2 years agoHelper I
Sample data does have those rows. For example, if you search this text in Bold in the dataset, you will find the related row. I am also providing the sample data again.
EN-PR - EN-PR - Engine Full Performance Restoration
P783277]One additional question.
The sample data I had provided had only one column but in my actual data set, I have multiple columns which I want to populate in the final step. Is it the group by where the column names have to be added to show them as well? Please review my sample data.
DescriptionUtilisationColumn4RateAmount AF-96M - Airframe 96 Month Structural Check - [SN: 555] 1.00 MTH 702.00 702.00 AF-BC - Airframe Basic Check - [SN: 555] 241.20 FH 37.00 8,924.40 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 555] 95.00 FC 4.40 418.00 LG-OH - LG-OH - Landing Gear Leg Overhaul 1.00 MTH 2,652.00 2,652.00 AF-192M - Airframe 192 Month Structural Check - [SN: 555] 1.00 MTH 610.00 610.00 AP-OH - AP-OH - APU Overhaul 95.10 APUH 25.00 2,377.50 EN-PR - EN-PR - Engine Full Performance Restoration
P783243]241.20 FH 135.00 32,562.00 EN-LP - EN-LP - Engine LLP Replacement 95.00 FC 162.08 15,397.60 EN-PR - EN-PR - Engine Full Performance Restoration
P783245]241.20 FH 135.00 32,562.00 LG-OH - LG-OH - Landing Gear Leg Overhaul - [SN: 556] -Correction from period 01-Dec-2023 to 31-Dec-2023 1.00 2,652.00 2,652.00 AF-192M - Airframe 192 Month Structural Check - [SN: 556] -Correction from period 01-Dec-2023 to 31-Dec-2023 1.00 610.00 610.00 AF-BC - Airframe Basic Check - [SN: 556] - Correction from
period 01-Dec-2023 to 31-Dec-2023260.23 37.00 9,628.51 AF-96M - Airframe 96 Month Structural Check - [SN: 556] -Correction from period 01-Dec-2023 to 31-Dec-2023 1.00 702.00 702.00 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 556] - 99.00 4.40 435.60 Correction from period 01-Dec-2023 to 31-Dec-2023 AP-OH - AP-OH - APU Overhaul - [SN: PWC-ZD0103] - Correction
from period 01-Dec-2023 to 31-Dec-202390.30 25.00 2,257.50 - [SN: EN-LP - EN-LP - Engine LLP Replacement
P783246]Correction from period 01-Dec-2023 to 31-Dec-202399.00 162.08 16,045.92 - [SN: EN-PR - EN-PR - Engine Full Performance Restoration
P783246] - Correction from period 01-Dec-2023 to 31-Dec-2023260.23 135.00 35,131.05 - [SN: P783255] EN-LP - EN-LP - Engine LLP Replacement
Correction from period 01-Dec-2023 to 31-Dec-202399.00 162.08 16,045.92 - [SN: EN-PR - EN-PR - Engine Full Performance Restoration
P783255] - Correction from period 01-Dec-2023 to 31-Dec-2023260.23 135.00 35,131.05 AF-96M - Airframe 96 Month Structural Check - [SN: 557] 0.90 MTH 702.00 631.80 AF-192M - Airframe 192 Month Structural Check - [SN: 557] 0.90 MTH 610.00 549.00 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 557] 2.00 FC 4.40 8.80 AF-BC - Airframe Basic Check - [SN: 557] 11.08 FH 37.00 409.96 EN-PR - EN-PR - Engine Full Performance Restoration
P783258]6.90 APUH 25.00 172.50 EN-PR - EN-PR - Engine Full Performance Restoration
P783259]11.08 FH 135.00 1,495.80 AF-BC - Airframe Basic Check - [SN: 558] 2.00 FC - - AF-96M - Airframe 96 Month Structural Check - [SN: 558] 11.08 FH 135.00 1,495.80 AF-192M - Airframe 192 Month Structural Check - [SN: 558] 2.00 FC - - AF-20KC - Airframe 20,000 FC Structural Check - [SN: 558] 0.90 MTH 2,652.00 2,386.80 EN-PR - EN-PR - Engine Full Performance Restoration
P783257]110.67 FH 37.00 4,094.79 EN-PR - EN-PR - Engine Full Performance Restoration
P783260]0.67 MTH 702.00 470.34 AF-96M - Airframe 96 Month Structural Check - [SN: 561] 0.67 MTH 610.00 408.70 AF-192M - Airframe 192 Month Structural Check - [SN: 561] 40.00 FC 4.40 176.00 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 561] 49.00 APUH 25.00 1,225.00 AF-BC - Airframe Basic Check - [SN: 561] 110.67 FH 135.00 14,940.45 EN-PR - EN-PR - Engine Full Performance Restoration
P783274]40.00 FC - - EN-PR - EN-PR - Engine Full Performance Restoration
P783277]110.67 FH 135.00 14,940.45 AF-192M - Airframe 192 Month Structural Check - [SN: 559] 40.00 FC - - AF-96M - Airframe 96 Month Structural Check - [SN: 559] 0.67 MTH 2,652.00 1,776.84 AF-192M - Airframe 192 Month Structural Check - [SN: 556] 0.43 MTH 702.00 301.86 AF-BC - Airframe Basic Check - [SN: 556] 0.43 MTH 610.00 262.30 AF-96M - Airframe 96 Month Structural Check - [SN: 556] 17.00 FC 4.40 74.80 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 556] 55.22 FH 37.00 2,043.14 EN-PR - EN-PR - Engine Full Performance Restoration
P783246]29.20 APUH 25.00 730.00 EN-PR - EN-PR - Engine Full Performance Restoration
P783255]55.22 FH 135.00 7,454.70 AF-96M - Airframe 96 Month Structural Check - [SN: 560] 17.00 FC - - AF-192M - Airframe 192 Month Structural Check - [SN: 560] 55.22 FH 135.00 7,454.70 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 560] 17.00 FC - - AF-BC - Airframe Basic Check - [SN: 560] 0.43 MTH 2,652.00 1,140.36 EN-PR - EN-PR - Engine Full Performance Restoration
P783247]0.10 610.00 61.00 EN-PR - EN-PR - Engine Full Performance Restoration
P783271]0.10 702.00 70.20 AF-20KC - Airframe 20,000 FC Structural Check - [SN: 559] 0.10 2,652.00 265.20 AF-BC - Airframe Basic Check - [SN: 559] 1.00 MTH 723.06 723.06 EN-PR - EN-PR - Engine Full Performance Restoration
P783272]224.48 FH 38.11 8,554.93 EN-PR - EN-PR - Engine Full Performance Restoration
P783273]85.00 FC 4.53 385.05 - dufoq32 years agoCommunity Champion
vineshparekh, try this. If there is still some issue, upload your pdf somewhere and provide me a download link please.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("1VlbT9swGP0rFs+u5ftlb1BWkFZYBZsmDfUhKgGq9YJC2e+fY6dt0lwaXG/SIiDYgu98t3P8JX14ODsfDYy8AQNwPs+esmSZAiPBzXq1eQH3m+x9tnnPkgUYvqSzX/aPHu5vPwEhxPQMnhGEsb3dfLu2P4G7FKZ+E2yvYmcKHdLFsAx0kbzNZ42mKSeI5nZG12VjTJWsa2goR3xnm+IvFesUQ4wxGA2PxWGEtzoalrEAcMZLO5zobSjjq8HXa2tmd09Wj/PVM7hKkwyM02fw9XeavSTvi4Y0UShFOUu7dREHMbRSDrsOrock+KAexY7Dmnjn9/fvZb9tWkj+r3a7UgQqKs4zpZDwBj/fDiZ31tDuvnqer1Iwel8swCTNntbZMlnNUnCXvm3WWbKZr1fWzv4rtzFRmlHO2pqAsD06o1DIXeYs6Hjiwf3dg4/t4i59XSSzdJmuNs3lJrkZ7ZdEQGYUkrFDau3r9pB6d9m+EeQUDIbrLEtnuSvgKVsvwWuazdePAJPBZTqzNKEMbNaA7Zf73gF/r0XjeHa0p3tpTO4LOHCmVrY+zlGJkfsFnLXJlIGSaiTI1r2Pi220zB1T5xAFzZ3LSWUOwZol1PZ6wayQiEDl+5iGbZ2c/BgOfl5iglm17LWK9/bDYMRq0R7oIhU7XSz86K1QTfIhpyEJq5elInUSYi6QoQdeRlK8Jpb18rqBVRWRFJAw29yi7LaDtOdgaJb/t+zmof6D7AYJlsqPOozM8elQWiR90rHShlU/JQQ3J2qdw6L9hsX80qXYepxKzjwhvoE6Bl8Hhw0yMu6IInTugPS57Jz6XM8oGn3uE6YlBeUGtSvI7RD3odzqjtK5awBAw67fDyaCDgonhAYx4guhhG6iX318ZFpuA4zXLAVfMJKqmzAcYsORMnHxJfaxO/RumePKDgw8uI8kaUGqixzHGqlTOsljcdxP5YiSp2lqAVccpJ2iQyD1696s98abOqRMQMKhsfFyEbc9FO9KZC9OxvOllSrtiQgUInNy1EFKa5oYcqhDBCrbr5qfEp/0QJwdJT3DdraRH3oqbTZdZzm1YybD4dlySET1nWQUL51OYQ+J1qAQiNJuoaZ2YmaI8MivXhw8Nf7Ny9HBRrHd24SY03pzBqqTgIJc8JJ+f/ykwF2V7Uu/kGMDBwUYcmJECbHH4YGb6FiXFGLFjkWexHnxVEOOvfnK96I3qyKN6HWFy/dyUp2gDKYOdZhiR1IpSkA9tNS0fUBBGcKyQne/EzeD1ClO/vFEw7OcRoRsNzQUlhCGRcZ378916+caglUdEu5xf/oH", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Description = _t, Utilisation = _t, Column4 = _t, Rate = _t, Amount = _t]), SourceColNames = List.Buffer(Table.ColumnNames(Source)), StepBack = Source, TrimmedText = Table.TransformColumns(StepBack, List.Transform(SourceColNames, (colName)=> {colName, Text.Trim, type text})), ReplacedValue = Table.ReplaceValue(TrimmedText, null, null, (x,y,z)=> if List.Contains({"", "-"}, x) then null else x, SourceColNames), AddedIndex = Table.AddIndexColumn(ReplacedValue, "Index", 0, 1, Int64.Type), Ad_GroupHelper = Table.AddColumn(AddedIndex, "GroupHelper", each if (try Text.Range([Description], 2, 1) otherwise null) = "-" then [Index] else null, type text), FilledDown = Table.FillDown(Ad_GroupHelper,{"GroupHelper"}), GroupedRows = Table.Group(FilledDown, {"GroupHelper"}, {{"Description", each Text.Combine([Description], " "), type text}, {"FirstRow", each Table.FirstN(Table.SelectColumns(Table.FillUp(_, SourceColNames), List.Skip(SourceColNames)), 1) , type table}}), ExtractedTextBeforeDelimiter = Table.TransformColumns(GroupedRows, {{"Description", each [ a = Text.PositionOf(_, "]", Occurrence.First) +1, b = Text.Range(_, 0, if a > 0 then a else null ) ][b], type text}}), Ad_SN = Table.AddColumn(ExtractedTextBeforeDelimiter, "SN", each [ a = Text.PositionOf([Description], "[SN") +1, b = Text.PositionOf([Description], " ", Occurrence.Last), c = Text.Range([Description], if a > 0 then a else if Text.Contains([Description], "]") then b else Text.Length([Description])) ][c], type text), CleanDescription = Table.ReplaceValue(Ad_SN, each [SN], null, (x,y,z)=> if y = "" then x else Text.TrimEnd(Text.Replace(x, y, ""), {"[", " ", "-"}), {"Description"}), CleanSN = Table.ReplaceValue(CleanDescription, null, null, (x,y,z)=> if x = "" then null else Text.Replace(Text.Trim(x, {" ", "]"}), "SN: ", ""), {"SN"}), ReorderedColumns = Table.ReorderColumns(CleanSN,{"GroupHelper", "Description", "SN", "FirstRow"}), ExpandedFirstRow = Table.ExpandTableColumn(ReorderedColumns, "FirstRow", {"Utilisation", "Column4", "Rate", "Amount"}, {"Utilisation", "Column4", "Rate", "Amount"}), RemovedGroupHelper = Table.RemoveColumns(ExpandedFirstRow,{"GroupHelper"}), ChangedType = Table.TransformColumnTypes(RemovedGroupHelper,{{"SN", type text}, {"Column4", type text}, {"Utilisation", Currency.Type}, {"Rate", Currency.Type}, {"Amount", Currency.Type}}, "en-US") in ChangedType- vineshparekh2 years agoHelper I
Thanks dufoq3
This step is pulling null in the "GroupHelper" column and because of that, description gets combined for all those lines. I have attached screenshot of those lines. Thanks!
Table.AddColumn(#"Filtered Rows", "GroupHelper", each if (try Text.Range([Description], 2, 1) otherwise null) = "-" then [Index] else null, type text)