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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Dicken
Responsive Resident
Responsive Resident

Power Query; List Remove / Matching Item

Hi, 
Can someone tell me if there is any practtical difference between  List.RemvoveItems and RemoveMatchinItems; 

example ; 

 

= [
alist = {"a","a","b","c","d","d","d","e","e","f","g"} ,
blist = { "a","d","e"} ,
matchitem = List.RemoveMatchingItems( alist, blist) ,
removeitem = List.RemoveItems( alist , blist )
]

I can't see that this is, i have seen things saying they treat duplicates differently but I can't get a reslt to show  this out? 

Richad. 

1 ACCEPTED SOLUTION
lbendlin
Super User
Super User

List.RemoveMatchingItems is more flexible as it allows you to override the matching criteria.

View solution in original post

8 REPLIES 8
lbendlin
Super User
Super User

List.RemoveMatchingItems is more flexible as it allows you to override the matching criteria.

Dicken
Responsive Resident
Responsive Resident

re remvoe one only ; I have come up with ; 

let alist = {"a".."d","g","f","d","d","f","g","e"} ,

val = {"d","f","g"} ,

pos = List.Accumulate( val , {}, (s,c)=> s & { List.PositionOf( alist , c )} ),

newpos = List.Difference( {0..List.Count( alist)-1 } , pos )

in
List.Transform( newpos, (x)=> alist {x} )

I don't think I needed accumulate, as it lookslike there's and occurrnce first. 

what is your expected result?

Dicken
Responsive Resident
Responsive Resident

just to remove  a value a given number of times;  
so I was trying for what  list difference ; 
List.Difference(
{"a","a","a","b","b","b"} , {"a","a","b"} )    so    "a","b""b"

I think you are mixing up concepts.  Lists are collections of INDEPENDENT items. Items in a list do not know what their neighbors are.  Sounds more like you want to do string replacements.

Dicken
Responsive Resident
Responsive Resident

No I want to specify the number of times I remvoved Items from a list 
so if  I had a list { "a", "a","b","b","b","c","c","c"} and wanted to remove 
  "a" and "c", but I want to remove 2 a's and 1 c , I was just looking for an alternative to 
difference; 
= let alist =
{ "a","a","a","a","b","b","b","c","c","c"} ,
blist =
{ "a", "a", "c"} in
List.Difference( alist, blist ) 

 

That seems to give you the desired result, no?

 

lbendlin_0-1743765009849.png

 

Dicken
Responsive Resident
Responsive Resident

When you say override, could you give an example as I'm not sure what you mean unless 
you mean the equation criteria, ? 
Also is there a way to remove just a specifice number of items so if I have { "a","a","a","b","c"} 
and just wanted to remvoe 1 "a"?  I am working on this so If succeed I will show . 

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

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