Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredJoin us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.
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 table
My 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 table
My 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.