Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowThe Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.
I tried to create a conditional index for another list I created. here is the code I wrote and error I got. The first list is to create a position indicator where the index can began. The first one worked. and the second one gave the error.
=[
Splitposition= List.PositionOf(List.Transform(#"Filtered Rows"[Vendor Subline Num], each _ =1), true, Occurrence.All),
Conditionalindex = List.Generate(()=>0, each _ >= Splitposition, each _ +1)
]
Expression.Error: We cannot apply operator < to types List and Number.
Details:
Operator=<
Left=[List]
Right=0
Solved! Go to Solution.
use the below formula
let
Source = {1,1,2,3,1,2,1,2,3,4,5,1,2,3,1,1,2},
Custom1 = List.Transform(List.Positions(Source), each if Source{_}=1 then _+1 else null)
in
Custom1
result in
the result of Splitposition is a list and
in this part
_ >= Splitposition
you can not compare a number (_) with a list (Splitposition).
you can replace it by _ >= Splitposition{0}
but if you explain the purpose of your function I can help you more
Occurrence.All will create a list.
yes. i do want a list because there are multiple 1s in the first list. want i want to do is first to find the positions of the 1s then create fill in nulls in between each position so i can fill down and group them together. is there a way to do it?
Please provide sample data that covers your issue or question completely, in a usable format (not as a screenshot).
Do not include sensitive information. Do not include anything that is unrelated to the issue or question.
Need help uploading data? https://community.fabric.microsoft.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-...
Please show the expected outcome based on the sample data you provided.
Want faster answers? https://community.fabric.microsoft.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447...
here is sample list1, which represents a column in a table that I need to group. each 1 starts a new group. I use List.PositionOf to find out the positions where each group starts. Then I want to fill in nulls and use fill down to fill the spaces. I will use the new index column to group the entire table.
{1,1,2,3,1,2,1,2,3,4,5,1,2,3,1,1,2}
Hi @jimmyhua
"here is sample list1, which represents a column in a table that I need to group. each 1 starts a new group."
You can use Table.Group directly
= Table.Group(
YourSource,
{"YourColumn"},
{{"Data", each _}},
GroupKind.Local,
(x,y) => Byte.From(y[YourColumn]=1)
)
Stéphane
wow. i have never used Table.Group function. this is eye opening for me. Thanks a lot.
Please show the expected outcome based on the sample data you provided.
I would like to be able to create a list2 like this based on list1
{1,2,null,null,5,null,7,null,null,null,null,12,null,null,15,16,null}
use the below formula
let
Source = {1,1,2,3,1,2,1,2,3,4,5,1,2,3,1,1,2},
Custom1 = List.Transform(List.Positions(Source), each if Source{_}=1 then _+1 else null)
in
Custom1
result in
let
list1 = {1,1,2,3,1,2,1,2,3,4,5,1,2,3,1,1,2},
list2 = List.Transform(List.Zip({list1,List.Positions(list1)}), each if _{0}=1 then _{1}+1 else null)
in
list2