Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
kulkarni21vinee
Frequent Visitor

Conditional combine

I would like to combine rows based upon text in List records. E.g. All items should be combined by pipe delimiter, however when text is OPEN-O, these line items should be on new line as delimiter. Currently all are combined with pipe, expected result in screenshot below

kulkarni21vinee_3-1734992895253.png

Note: WorkLoadDetails is List as shown below and alternatively can suggest conditional grouping as well for OPEN-O items instead of while combining.

kulkarni21vinee_5-1734993823334.pngkulkarni21vinee_6-1734993841587.png

 

 

 

M query for reference:

 

let
Source = Json.Document(
Web.Contents(
"WebAPI endpoint URL"
)
),
StationWorkLoadInfoList = Source[StationWorkLoadInfoList],
StationWorkLoadInfoList1 = StationWorkLoadInfoList{0},
#"Converted to Table" = Table.FromList(
StationWorkLoadInfoList,
Splitter.SplitByNothing(),
null,
null,
ExtraValues.Error
),
#"Expanded Column1" = Table.ExpandRecordColumn(
#"Converted to Table",
"Column1",
{
"ArrivalDate",
"ArrivalGate",
"ArrivingFromCity",
"DepartureCity",
"DepartureFlightNumber",
"DepartureGate",
"DeptDate",
"FlightNumber",
"GroundTime",
"IsRON",
"LocationName",
"ManHours",
"ServiceCheck",
"Station",
"TailNumber",
"WorkLoadDetails"
},
{
"ArrivalDate",
"ArrivalGate",
"ArrivingFromCity",
"DepartureCity",
"DepartureFlightNumber",
"DepartureGate",
"DeptDate",
"FlightNumber",
"GroundTime",
"IsRON",
"LocationName",
"ManHours",
"ServiceCheck",
"Station",
"TailNumber",
"WorkLoadDetails"
}
),
#"Filtered Rows" = Table.SelectRows(#"Expanded Column1", each ([IsRON] = true)),
#"Expanded WorkLoadDetails" = Table.ExpandListColumn(#"Filtered Rows", "WorkLoadDetails"),
#"Expanded WorkLoadDetails1" = Table.ExpandRecordColumn(
#"Expanded WorkLoadDetails",
"WorkLoadDetails",
{
"DefPosCode",
"IsDash8",
"MaintenanceDescription",
"MaintenanceItem",
"MxComments",
"TimeRemaining",
"WorkItemType"
},
{
"DefPosCode",
"IsDash8",
"MaintenanceDescription",
"MaintenanceItem",
"MxComments",
"TimeRemaining",
"WorkItemType"
}
),
#"Trimmed Text" = Table.TransformColumns(
#"Expanded WorkLoadDetails1",
{{"DefPosCode", Text.Trim, type text}}
),
#"Filtered Rows1" = Table.SelectRows(
#"Trimmed Text",
each not Text.StartsWith([MaintenanceDescription], "SC1")
and not Text.StartsWith([MaintenanceDescription], "1SC")
and not Text.StartsWith([MaintenanceDescription], "SC2")
and not Text.StartsWith([MaintenanceDescription], "2SC")
),
#"Added Conditional Column" = Table.AddColumn(
#"Filtered Rows1",
"SortOrder",
each
if [WorkItemType] = "LP" and [DefPosCode] = "OPEN-O" then
3
else if [IsDash8] = false and [DefPosCode] <> null and [DefPosCode] <> "OPEN-O" then
1
else
2
),
#"Sorted Rows" = Table.Sort(#"Added Conditional Column", {{"SortOrder", Order.Ascending}}),
#"Added Conditional Column1" = Table.AddColumn(
#"Sorted Rows",
"CustomMaintenanceItem",
each if [WorkItemType] = "LP" then [MaintenanceItem] else ""
),
#"Added Conditional Column2" = Table.AddColumn(
#"Added Conditional Column1",
"CustomMaintenanceDescription",
each
if (Record.Field(_, "MxComments") <> null and Record.Field(_, "MxComments") <> "") then
Record.Field(_, "MxComments")
else
Record.Field(_, "MaintenanceDescription")
),
#"Added Conditional Column3" = Table.AddColumn(
#"Added Conditional Column2",
"CustomTimeRemaining",
each
if (Record.Field(_, "TimeRemaining") <> null and Record.Field(_, "TimeRemaining") <> "") then
"" & "(" & Record.Field(_, "TimeRemaining") & ")"
else
null
),
#"Added Conditional Column4" = Table.AddColumn(
#"Added Conditional Column3",
"CustomDefPosCode",
each if [WorkItemType] = "LP" then [DefPosCode] else ""
),
#"Merged Columns" = Table.CombineColumns(
#"Added Conditional Column4",
{
"CustomDefPosCode",
"CustomMaintenanceItem",
"CustomMaintenanceDescription",
"CustomTimeRemaining"
},
Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),
"Merged"
),
#"Grouped Rows" = Table.Group(
#"Merged Columns",
{"TailNumber"},
{
{
"AllData",
each _,
type table [
ArrivalDate = text,
ArrivalGate = text,
ArrivingFromCity = text,
DepartureCity = text,
DepartureFlightNumber = text,
DepartureGate = text,
DeptDate = text,
FlightNumber = text,
GroundTime = number,
IsRON = logical,
LocationName = text,
ManHours = number,
ServiceCheck = text,
Station = text,
TailNumber = text,
DefPosCode = nullable text,
IsDash8 = logical,
MxComments = nullable text,
Merged = text,
WorkItemType = text,
SortOrder = number
]
}
}
),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "WorkLoadDetails", each [AllData][Merged]),
#"Extracted Values" = Table.TransformColumns(
#"Added Custom",
{"WorkLoadDetails", each Text.Combine(List.Transform(_, Text.From), " | "), type text}
),
#"Expanded AllData" = Table.ExpandTableColumn(
#"Extracted Values",
"AllData",
{
"ArrivalDate",
"ArrivalGate",
"ArrivingFromCity",
"DepartureCity",
"DepartureFlightNumber",
"DepartureGate",
"DeptDate",
"FlightNumber",
"GroundTime",
"LocationName",
"ManHours",
"ServiceCheck"
},
{
"ArrivalDate",
"ArrivalGate",
"ArrivingFromCity",
"DepartureCity",
"DepartureFlightNumber",
"DepartureGate",
"DeptDate",
"FlightNumber",
"GroundTime",
"LocationName",
"ManHours",
"ServiceCheck"
}
)
in
#"Expanded AllData"

3 REPLIES 3
Ashish_Mathur
Super User
Super User

Hi,

Share some data to work with and show the expected result.  Share datai in a format that can be pasted in an MS Excel file.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

kulkarni21vinee_2-1735056105653.png

 

MEL 3293550  EMK WAS OPENED AND USED  | MEL 3294156  ATTENDANT CREW REST AIR IS TOO DRY  | MEL 3295182  HUMIDITY CONTROL SYSTEM TEST FOUND  FWD ZONAL DRYER HAS AN INTERNAL FAULT  | DIP 9864630  PAINT PEELED FROM RIGHT WING ROOT AND SCRATCHED (3.00 I) |   EA 0521-01000 OP10 GENX CUSHIONED LOOP CLAMP INSP *RIR* (22.00 L) |   #2 RH DOOR SLIDE RPL *ACP RENDER SAFE CKLIST* (18.00 S) |   B787-9 UMD SOFTWARE RESTORE (5.00 I) | OPEN-O 3297052 1L STUCK IN ACCESAB ILITY MODE (0|0|0|0) | OPEN-O 3303465 SCHED WORKLOAD IS ASSIGNED TO BE ACCOMPLISHED IN EWR ON 24DEC24.  PERFORMING A MRD CHECK MAY BE REQUIRED TO INSURE NO OUTSTANDING  WORKLOAD REMAINS, BEFORE CLEARING THIS LOGPAGE.  IF WORKLOAD IS  UNABLE TO BE COMPLETED, CONTACT PLANNING FOR RESCHEDULING (0|0|0|0)

 

I cannot understand anything from the data that you have shared.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.