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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
arbarath
Regular Visitor

Need Help to Dynamically Combine Text from Columns where Its not Null or Empty

Hi All, 

 

I am struggling to Find a solution for this. 

 

I have a source data, where there are fileds that are dynamically added. The soruce data is from CSV. 

 

I tried to Dynamically Merge Columns using the instructions given below, By creating a list and from the list You can Merge. 

Learn How To Dynamically Merge Different Columns In Power BI - YouTube

 

When tried to merge, it uses Cobiner.CobineByDelimitter Function

 

= Table.CombineColumns(#"Inserted Merged Column",{"Labels", "Labels_1", "Labels_2", "Labels_3", "Labels_4", "Labels_5", "Labels_6", "Labels_7"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Labels.1")

 

After applying Dynamic List 

 

= Table.CombineColumns(#"Inserted Merged Column",LstLabels,Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Labels.1")

 

lstLabels Contains a List that dynamically created from the list of Columns. 

 

The problem is it is combined with Empty/Null  Cells with Empty Comma. 

 

arbarath_0-1643517895079.png

 

if Text.Combine Function is used Cannot use Dynamic List. If you see below code, it can contain 100s of columns, but wanted to combine to one without empty commas. 

 

= Table.AddColumn(#"Replaced Value", "Integrated Into.1", each Text.Combine({[Integrated into], [Integrated into_15], [Integrated into_16], [Integrated into_17], [Integrated into_18], [Integrated into_19], [Integrated into_20], [Integrated into_21], [Integrated into_22], [Integrated into_23], [Integrated into_24], [Integrated into_25], [Integrated into_26], [Integrated into_27], [Integrated into_28], [Integrated into_29], [Integrated into_30], [Integrated into_31], [Integrated into_32], [Integrated into_33], [Integrated into_34], [Integrated into_35], [Integrated into_36], [Integrated into_37], [Integrated into_38], [Integrated into_39], [Integrated into_40], [Integrated into_41], [Integrated into_42], [Integrated into_43], [Integrated into_44], [Integrated into_45], [Integrated into_46], [Integrated into_47], [Integrated into_48], [Integrated into_49], [Integrated into_50], [Integrated into_51], [Integrated into_52], [Integrated into_53], [Integrated into_54], [Integrated into_55], [Integrated into_56], [Integrated into_57], [Integrated into_58], [Integrated into_59], [Integrated into_60], [Integrated into_61], [Integrated into_62], [Integrated into_63], [Integrated into_64], [Integrated into_65], [Integrated into_66], [Integrated into_67], [Integrated into_68], [Integrated into_69], [Integrated into_70], [Integrated into_71], [Integrated into_72], [Integrated into_73], [Integrated into_74], [Integrated into_75], [Integrated into_76], [Integrated into_77], [Integrated into_78], [Integrated into_79], [Integrated into_80], [Integrated into_81], [Integrated into_82], [Integrated into_83], [Integrated into_84], [Integrated into_85], [Integrated into_86], [Integrated into_87], [Integrated into_88], [Integrated into_89], [Integrated into_90], [Integrated into_91], [Integrated into_92], [Integrated into_93], [Integrated into_94], [Integrated into_95], [Integrated into_96], [Integrated into_97], [Integrated into_98], [Integrated into_99], [Integrated into_100], [Integrated into_101], [Integrated into_102], [Integrated into_103], [Integrated into_104], [Integrated into_105], [Integrated into_106], [Integrated into_107], [Integrated into_108], [Integrated into_109], [Integrated into_110], [Integrated into_111], [Integrated into_112], [Integrated into_113], [Integrated into_114], [Integrated into_115], [Integrated into_116], [Integrated into_117], [Integrated into_118], [Integrated into_119], [Integrated into_120], [Integrated into_121], [Integrated into_122], [Integrated into_123], [Integrated into_124], [Integrated into_125], [Integrated into_126], [Integrated into_127], [Integrated into_128], [Integrated into_129], [Integrated into_130], [Integrated into_131], [Integrated into_132], [Integrated into_133], [Integrated into_134], [Integrated into_135], [Integrated into_136], [Integrated into_137], [Integrated into_138], [Integrated into_139], [Integrated into_140], [Integrated into_141], [Integrated into_142], [Integrated into_143], [Integrated into_144], [Integrated into_145], [Integrated into_146], [Integrated into_147], [Integrated into_148], [Integrated into_149], [Integrated into_150], [Integrated into_151], [Integrated into_152], [Integrated into_153], [Integrated into_154], [Integrated into_155], [Integrated into_156], [Integrated into_157], [Integrated into_158], [Integrated into_159], [Integrated into_160], [Integrated into_161], [Integrated into_162], [Integrated into_163], [Integrated into_164], [Integrated into_165], [Integrated into_166], [Integrated into_167], [Integrated into_168], [Integrated into_169], [Integrated into_170], [Integrated into_171], [Integrated into_172], [Integrated into_173], [Integrated into_174], [Integrated into_175], [Integrated into_176], [Integrated into_177], [Integrated into_178], [Integrated into_179], [Integrated into_180], [Integrated into_181], [Integrated into_182], [Integrated into_183], [Integrated into_184], [Integrated into_185], [Integrated into_186], [Integrated into_187], [Integrated into_188], [Integrated into_189], [Integrated into_190], [Integrated into_191], [Integrated into_192], [Integrated into_193], [Integrated into_194], [Integrated into_195], [Integrated into_196], [Integrated into_197], [Integrated into_198], [Integrated into_199], [Integrated into_200], [Integrated into_201], [Integrated into_202], [Integrated into_203], [Integrated into_204], [Integrated into_205], [Integrated into_206], [Integrated into_207], [Integrated into_208], [Integrated into_209], [Integrated into_210], [Integrated into_211], [Integrated into_212], [Integrated into_213], [Integrated into_214], [Integrated into_215], [Integrated into_216], [Integrated into_217], [Integrated into_218], [Integrated into_219], [Integrated into_220], [Integrated into_221], [Integrated into_222], [Integrated into_223], [Integrated into_224], [Integrated into_225], [Integrated into_226], [Integrated into_227], [Integrated into_228], [Integrated into_229], [Integrated into_230], [Integrated into_231], [Integrated into_232], [Integrated into_233], [Integrated into_234], [Integrated into_235], [Integrated into_236], [Integrated into_237], [Integrated into_238], [Integrated into_239], [Integrated into_240], [Integrated into_241], [Integrated into_242], [Integrated into_243], [Integrated into_244], [Integrated into_245], [Integrated into_246], [Integrated into_247], [Integrated into_248], [Integrated into_249], [Integrated into_250], [Integrated into_251], [Integrated into_252], [Integrated into_253], [Integrated into_254], [Integrated into_255], [Integrated into_256], [Integrated into_257], [Integrated into_258], [Integrated into_259], [Integrated into_260], [Integrated into_261], [Integrated into_262], [Integrated into_263], [Integrated into_264], [Integrated into_265], [Integrated into_266], [Integrated into_267], [Integrated into_268], [Integrated into_269], [Integrated into_270], [Integrated into_271], [Integrated into_272], [Integrated into_273], [Integrated into_274], [Integrated into_275], [Integrated into_276], [Integrated into_277], [Integrated into_278], [Integrated into_279], [Integrated into_280], [Integrated into_281], [Integrated into_282], [Integrated into_283], [Integrated into_284], [Integrated into_285], [Integrated into_286], [Integrated into_287], [Integrated into_288], [Integrated into_289], [Integrated into_290], [Integrated into_291], [Integrated into_292], [Integrated into_293], [Integrated into_294], [Integrated into_295], [Integrated into_296], [Integrated into_297], [Integrated into_298], [Integrated into_299], [Integrated into_300], [Integrated into_301], [Integrated into_302], [Integrated into_303], [Integrated into_304], [Integrated into_305], [Integrated into_306], [Integrated into_307], [Integrated into_308], [Integrated into_309], [Integrated into_310], [Integrated into_311], [Integrated into_312], [Integrated into_313], [Integrated into_314], [Integrated into_315], [Integrated into_316], [Integrated into_317], [Integrated into_318], [Integrated into_319], [Integrated into_320], [Integrated into_321], [Integrated into_322], [Integrated into_323], [Integrated into_324], [Integrated into_325], [Integrated into_326], [Integrated into_327], [Integrated into_328], [Integrated into_329], [Integrated into_330], [Integrated into_331], [Integrated into_332], [Integrated into_333], [Integrated into_334], [Integrated into_335], [Integrated into_336], [Integrated into_337], [Integrated into_338], [Integrated into_339], [Integrated into_340], [Integrated into_341], [Integrated into_342], [Integrated into_343], [Integrated into_344], [Integrated into_345], [Integrated into_346], [Integrated into_347], [Integrated into_348], [Integrated into_349], [Integrated into_350], [Integrated into_351], [Integrated into_352], [Integrated into_353], [Integrated into_354], [Integrated into_355], [Integrated into_356], [Integrated into_357], [Integrated into_358], [Integrated into_359], [Integrated into_360], [Integrated into_361], [Integrated into_362], [Integrated into_363], [Integrated into_364], [Integrated into_365], [Integrated into_366], [Integrated into_367], [Integrated into_368], [Integrated into_369], [Integrated into_370], [Integrated into_371], [Integrated into_372], [Integrated into_373], [Integrated into_374], [Integrated into_375], [Integrated into_376], [Integrated into_377], [Integrated into_378], [Integrated into_379], [Integrated into_380], [Integrated into_381], [Integrated into_382], [Integrated into_383], [Integrated into_384], [Integrated into_385], [Integrated into_386], [Integrated into_387], [Integrated into_388], [Integrated into_389], [Integrated into_390], [Integrated into_391], [Integrated into_392], [Integrated into_393], [Integrated into_394], [Integrated into_395], [Integrated into_396], [Integrated into_397], [Integrated into_398], [Integrated into_399], [Integrated into_400], [Integrated into_401], [Integrated into_402], [Integrated into_403], [Integrated into_404], [Integrated into_405], [Integrated into_406], [Integrated into_407], [Integrated into_408], [Integrated into_409], [Integrated into_410], [Integrated into_411], [Integrated into_412], [Integrated into_413], [Integrated into_414], [Integrated into_415]}, ","), type text)

 

 

1 ACCEPTED SOLUTION
Vera_33
Resident Rockstar
Resident Rockstar

Hi @arbarath 

 

If you use Text.Combine, you still need to remove null and empty values. I did null, "", you need to check all values you want to remove

If you happen to use all the columns, it is like

= Table.AddColumn(yourPreviousStep, "yourNewColumn", each Text.Combine( List.RemoveItems( Record.FieldValues(_),{"",null}),","))

If you use your list of columns, which is LstLabels I assume, then

= Table.AddColumn(yourPreviousStep, "yourNewColumn", (x)=> Text.Combine( List.RemoveItems(List.Transform(LstLabels, each Record.Field(x,_)),{"",null}),","))

 

View solution in original post

4 REPLIES 4
AnkitKukreja
Super User
Super User

Hi!  

 

I think I have a answer, but need to test it first. Can you please share some real like sample data.
Also, with combined it won't be easy as you might have to add condiditons but if it would have been 4,5 columns you could have done that as well.

 

For Power BI trainings or support dm or reach out to me on LinkedIn.
If my response has successfully addressed your question or concern, I kindly request that you mark this post as resolved. Additionally, if you found my assistance helpful, a thumbs-up would be greatly appreciated.

Thanks,
Ankit Kukreja
www.linkedin.com/in/ankit-kukreja1904
Vera_33
Resident Rockstar
Resident Rockstar

Hi @arbarath 

 

If you use Text.Combine, you still need to remove null and empty values. I did null, "", you need to check all values you want to remove

If you happen to use all the columns, it is like

= Table.AddColumn(yourPreviousStep, "yourNewColumn", each Text.Combine( List.RemoveItems( Record.FieldValues(_),{"",null}),","))

If you use your list of columns, which is LstLabels I assume, then

= Table.AddColumn(yourPreviousStep, "yourNewColumn", (x)=> Text.Combine( List.RemoveItems(List.Transform(LstLabels, each Record.Field(x,_)),{"",null}),","))

 

@Vera_33  Thank you, It seems to work. Amazing. How to learn this type of query ? Even difficult to understand. 

 

@AnkitKukreja Thanks for your offer. Solution from @Vera_33  is working. 

Hi @arbarath 

 

I would say practice makes perfect...there are lots of sharing in the community you can read and learn, also you can read some other people who are sharing knowledge generously like below links. Happy learning!

Ben Gribaudo | Solutions Engineer     Senior Developer/Database Engineer

https://blog.crossjoin.co.uk/

 

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

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.

Top Solution Authors