Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Sign up nowGet Fabric certified for FREE! Don't miss your chance! Learn more
Hello,
I am trying to refactor this function that I apply on 10 differents columns.
fnConcatenate = (tbl as table) => Table.AddColumn(tbl, "field_1_combined", each if [id]>[linenumber] then Text.Combine(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id])[#"field_1"]) else [#"field_1"]),
fnConcatenate = (tbl as table) => Table.AddColumn(tbl, "field_2_combined", each if [id]>[linenumber] then Text.Combine(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id])[#"field_2"]) else [#"field_2"]),
...
fnConcatenate = (tbl as table) => Table.AddColumn(tbl, "field_10_combined", each if [id]>[linenumber] then Text.Combine(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id])[#"field_10"]) else [#"field_10"]),
Is it possible to have something like this
fnConcatenate = (tbl as table, field as text) => Table.AddColumn(tbl, "field" + "_combined", each if [id]>[linenumber] then Text.Combine(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id])[#"field"]) else [#"field"]),?
Thanks
Kind regards
Saam
Solved! Go to Solution.
try
fnConcatField = (tbl as table, field as text) => Table.AddColumn(tbl, field & "_combined", each
if [id]>[linenumber] then Text.Combine( Table.Column(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id]), field)) else Record.Field(_, field))
try something like this (I haven't tested it)
try
fnConcatField = (tbl as table, field as text) => Table.AddColumn(tbl, field & "_combined", each
if [id]>[linenumber] then Text.Combine( Table.Column(Table.SelectRows(tbl, (sel)=> sel[key] = [key] and sel[id]>= [id]), field)) else Record.Field(_, field))
try something like this (I haven't tested it)
Column names can be created dynamically
fnConcatenate = (tbl as table, field as text) => Table.AddColumn(tbl, field + "_combined",
but they cannot be referenced (easily) dynamically. Have you considered using Expression.Evaluate() for this?
I never used Expression.Evaluate()
I will look for this approach
Thanks
Kind regards,
Saam
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 7 | |
| 4 | |
| 4 | |
| 4 | |
| 3 |
| User | Count |
|---|---|
| 12 | |
| 11 | |
| 11 | |
| 7 | |
| 6 |