Join 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!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! 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 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.
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 39 | |
| 38 | |
| 38 | |
| 28 | |
| 27 |
| User | Count |
|---|---|
| 124 | |
| 89 | |
| 73 | |
| 66 | |
| 65 |