Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowJuly 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more
I need to replace a value in a set of columns (in this case null value with 0), but I cannot hard-code the columns. Instead, I need to determine the columns dynamically: only columns with a specific name pattern (e.g. starting with "Invoiced_") shall be considered.
I tried to pass the list of columns to the ReplaceValue function, but somehow my code doesn't work.
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
FilteredList = List.Select(Table.ColumnNames(Table1), each Text.StartsWith( _ , "Invoiced_")),
#"Replaced Value" = Table.ReplaceValue(Table1,null,0,Replacer.ReplaceValue, FilteredList)
in
#"Replaced Value"
I get this error:
Expression.Error: A cyclic reference was encountered during evaluation.
What did I do wrong? Or how can I solve this problem?
Thanks
Solved! Go to Solution.
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
FilteredList = List.Buffer(List.Select(Table.ColumnNames(Source), each Text.StartsWith( _ , "Invoiced_"))),
#"Replaced Value" = Table.ReplaceValue(Source,null,0,Replacer.ReplaceValue, FilteredList)
in
#"Replaced Value"
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
FilteredList = List.Buffer(List.Select(Table.ColumnNames(Source), each Text.StartsWith( _ , "Invoiced_"))),
#"Replaced Value" = Table.ReplaceValue(Source,null,0,Replacer.ReplaceValue, FilteredList)
in
#"Replaced Value"
Wow, this worked. Thank you so much!
If I'm reading this right, the trick was to create a new List instance, right?
guess your code error came from the reference of Table1,
i just changed it to Source
Use this
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
FilteredList = List.Select(Table.ColumnNames(Table1), each Text.StartsWith( _ , "Invoiced_")),
#"Replaced Value" = Table.FromRecords(
Table.TransformRows(Source, (r) => List.Accumulate(FilteredList, r, (s,c)=>
Record.TransformFields(s,{{c, each if _ = null then 0 else _}})))
, Value.Type(Source)))
in
#"Replaced Value"
Unfortunately, I get the same error. It occurs already in the second line.
Maybe I should have mentioned that I am using PowerQuery within Excel, not Power BI (if that matters).
Besides, the last closing parenthesis in your code is too much.
Is it possible to post an Excel file having 2-3 rows of dummy data to Onedrive / Google drive and share the link here?
PQ in Excel or Power BI behave the same so that won't make a difference.
Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.
Join Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.