Self lookup filter bug

I have a simple table with a column Row that references it’s own table.

I’m trying to only get the rows with Row value being their own row, but it’s not working, instead it returns rows where Row is blank. Pretty sure it’s a bug

[Table].Filter(Row = CurrentValue)

Hi @Rickard_Abraham :blush:

Your CurrentValue.Row doesn’t return a row in your Filter() formula but a list of rows :blush:

So I think Contains() would be the way to go here :blush:


You can also, apparently ListCombine() your CurrentValue.Row.

[44Data].Filter(Row.ListCombine() = CurrentValue)

Now, to be honest, I have no idea if this is a bug or not simply because canvas formulas have always felt a bit quirky compared to formulas within a table :woman_shrugging:
But I know I’ve had to ListCombine() things quite a bit more than I was used to these passed few months…

1 Like

Oh awesome, thanks for the response @Pch!

That’s a good catch with the row description

  • I added a bunch of test formulas based on your answer, all of them work as expected!
  • Disabling Allow multiple selections changes the description to Outputs a row from table
  • Allow multiple selections doesn’t affect the formulas though - [44Data].Filter(Row = CurrentValue) doesn’t work regardless
  • [44Data].Filter(Row = [44Data].First()) works as expected for example, why does that work and not the one above?
  • It’s very odd that [44Data].Filter(Row.ListCombine() = CurrentValue) works, ListCombine shouldn’t affect a “normal” flat list right?
  • Contains() doesn’t make sense to use if Allow multiple selections is disabled though, but I understand that it’s a list under the hood regardless because you can still force multiple rows with ModifyRows for example

TLDR: I still believe there’s a bug with [Table].Filter(Row = CurrentValue)

1 Like