Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi to everybody!
I have a table with position codes who can appear more than once as in one period can be many short term contracts.
Position code | Start Date | End Date |
a_001 | 01/01/2022 | 30/05/2022 |
a_002 | 01/01/2022 | 30/01/2022 |
a_002 | 01/02/2022 | 28/02/2022 |
a_002 | 01/03/2022 | 30/04/2022 |
b_001 | 01/06/2022 | 30/08/2022 |
b_002 | 01/08/20220 | 30/03/2022 |
b_003 | 01/05/2022 | 30/06/2022 |
b_003 | 02/07/2022 | 30/07/2022 |
I want to create in power query: a) a column e.g. duplicates based on which I can see the duplicate values, and b) for the duplicate ones to have a colum index with values for earliest to latest start date. This is how I imagine it:
Position code | Start Date | End Date | Duplicate | Duplicate index |
a_001 | 01/01/2022 | 30/05/2022 | no | (1 or blank, haven't decided) |
a_002 | 01/01/2022 | 30/01/2022 | yes | 1 |
a_002 | 01/03/2022 | 30/04/2022 | yes | 2 |
a_002 | 01/02/2022 | 28/02/2022 | yes | 3 |
b_001 | 01/06/2022 | 30/08/2022 | no | (1 or blank, haven't decided) |
b_002 | 01/08/20220 | 30/03/2022 | no | 1(1 or blank, haven't decided) |
b_003 | 01/05/2022 | 30/06/2022 | yes | 1 |
b_003 | 02/07/2022 | 30/07/2022 | yes | 2 |
Any ideas?
@KatBous Paste this code in the advanced editor:
let
Source = Table.FromRows (
Json.Document (
Binary.Decompress (
Binary.FromText (
"bc7BCcAgEETRXjwLjrPR2ItIMP0XEUFN1iDs5cNj2JxNvQBvrIF37QiyhcAh9Ci2G+6M3xtOw/TG34jeOT5zq3+iNmk1cydpI6uRYYI2cWPocGozopQH",
BinaryEncoding.Base64
),
Compression.Deflate
)
),
let
_t = ( ( type nullable text ) meta [ Serialized.Text = true ] )
in
type table [ #"Position code" = _t, #"Start Date" = _t, #"End Date" = _t ]
),
ChangedType =
Table.TransformColumnTypes (
Source,
{ { "Position code", type text }, { "Start Date", type date }, { "End Date", type date } },
"en-GB"
),
GroupedRows =
Table.Group (
ChangedType,
{ "Position code" },
{
{
"Transformation",
( Group ) =>
Table.AddIndexColumn (
Table.AddColumn (
Group,
"Duplicate",
each if Table.RowCount ( Group ) > 1 then "yes" else "no"
),
"Duplicate Index",
1,
1
),
type table [
Start Date = date,
End Date = date,
Duplicate = text,
Duplicate Index = Int64.Type
]
}
}
),
ExpandedTransformation =
Table.ExpandTableColumn (
GroupedRows,
"Transformation",
{ "Start Date", "End Date", "Duplicate", "Duplicate Index" },
{ "Start Date", "End Date", "Duplicate", "Duplicate Index" }
)
in
ExpandedTransformation
Thank you @AntrikshSharma. This is exactly what I need.
But, since my query has already some steps in the editor, could you help me on how to add the above commands?
Or what I should replace in the above commands if I reference the existing query and apply in the new one the above commands?
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
8 | |
6 | |
6 | |
5 | |
5 |
User | Count |
---|---|
10 | |
8 | |
6 | |
6 | |
6 |