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

The Fabric community is now in read-only for platform upgrade. Learn more

Reply
Dicken
Post Prodigy
Post Prodigy

Power Query Coalesce operator

Hello, 

Can someone explain, why this does not work ;

= let alist =
{2,3,4,2,2,3,4,2,2,3,3,2,3,2,2,3,3,4,2,2,3,4}
in
        List.Accumulate( alist, {} , (s,c)=> s & { List.Last(s)?? 0 + c } )


but this does, I presume order of operations, but I'd like a bit more help than that please,
let alist =
{2,3,4,2,2,3,4,2,2,3,3,2,3,2,2,3,3,4,2,2,3,4}
in
List.Accumulate( alist, {} , (s,c)=>
                                           let x = List.Last(s) ?? 0
i                                         n s & { x + c } )

Richard.

1 ACCEPTED SOLUTION
ZhangKun
Super User
Super User

The operator ?? has the lowest precedence, so "List.Last(s) ?? 0 + c" is equivalent to "List.Last(s) ?? (0 + c)"

View solution in original post

4 REPLIES 4
ZhangKun
Super User
Super User

The operator ?? has the lowest precedence, so "List.Last(s) ?? 0 + c" is equivalent to "List.Last(s) ?? (0 + c)"

Thanks, I thought more complex ;  re   wrtoe to 
= let alist = {2,3,2,3,2,3,3,3,2,3,3,4,2,2}
in
List.Accumulate( alist, {} , (s,c)=>
s & {     ( List.Last(s)??0 )    + c } )

AlienSx
Super User
Super User

lbendlin
Super User
Super User

yes, pretty much.  You need to protect the coalesce from the addition.

 

let
  alist = {2, 3, 4, 2, 2, 3, 4, 2, 2, 3, 3, 2, 3, 2, 2, 3, 3, 4, 2, 2, 3, 4}
in
  List.Accumulate(alist, {}, (s, c) => s & {(List.Last(s) ?? 0) + c})

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.