Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more
 
					
				
		
Hello
Any idea why the below results in error?
= Table.RemoveRows(#"Changed Type", each not Text.Contains([A], "some1") and [B]<0)
Expression.Error: We cannot convert a value of type Function to type Number.
Details:
Value=[Function]
Type=[Type]
I do have specified in a previous step [A] to be text and [B] to be integer.
Thanks!
Solved! Go to Solution.
Hi @Anonymous ,
As far as I know "each not Text.Contains([A], "some1") and [B]<0" part works as a function.
As HotChilli mentioned Table.RemoveRows will use number in second part.
Table.RemoveRows(table as table, offset as number, optional count as nullable number) as table
Table.SelectRows will use function in second part. So I suggest you to use Table.SelectRows in your code, it will work.
Table.SelectRows(table as table, condition as function) as tableMy Sample:
Result is as below.
M Code:
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs7PTTVU0lEyVIrVgfCMgDxdCNcRJqtrDJc2BnKBvFgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [A = _t, B = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"A", type text}, {"B", Int64.Type}}),
    #"Remove rows" = Table.SelectRows(#"Changed Type", each not Text.Contains([A], "some1") and [B]<0)
in
    #"Remove rows"
Best Regards,
Rico Zhou
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
 
					
				
		
Hi @Anonymous ,
As far as I know "each not Text.Contains([A], "some1") and [B]<0" part works as a function.
As HotChilli mentioned Table.RemoveRows will use number in second part.
Table.RemoveRows(table as table, offset as number, optional count as nullable number) as table
Table.SelectRows will use function in second part. So I suggest you to use Table.SelectRows in your code, it will work.
Table.SelectRows(table as table, condition as function) as tableMy Sample:
Result is as below.
M Code:
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs7PTTVU0lEyVIrVgfCMgDxdCNcRJqtrDJc2BnKBvFgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [A = _t, B = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"A", type text}, {"B", Int64.Type}}),
    #"Remove rows" = Table.SelectRows(#"Changed Type", each not Text.Contains([A], "some1") and [B]<0)
in
    #"Remove rows"
Best Regards,
Rico Zhou
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Table.RemoveRows takes a table and a number as parameters. The code here passes a function as the 2nd parameter.
 
					
				
				
			
		
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.
 
            | User | Count | 
|---|---|
| 84 | |
| 49 | |
| 36 | |
| 31 | |
| 30 |