Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
sakuragihana
Helper IV
Helper IV

I can't make a dax for calculating bonus

Hello everyone,

 

I got a difficult problem. I have 2 table with data and some conditions for calculating bonus of employee. Please help me to find the measure for calculating this bonus.

Table 1 :

Campus CodeUser NameArea CodeEnquiries# of New Student PDTarget New Enrol PD% Act vs TargetNew Revenue PDMonth
ADVADVMiddleArea56  4528161%524,865,000Jan
BD-CMT8BD-CMT8SouthArea1361250%71,233,000Jan
HCM_NK2HCM_NK2NorthArea404735134%528,058,000Jan

 

Table 2 : 

Campus CodeUser NameArea CodeEnquiries# of New Student PDNew Revenue PDMonth
ADVJameMiddleArea3130318,159,000Jan
ADVMaryMiddleArea118103, 617,000Jan
ADVPaulMiddleArea147103,089,000Jan
BD-CMT8AnnaSouthArea9219,800,000Jan
BD-CMT8LionelSouthArea3229,333,000Jan
BD-CMT8ParedasSouthArea 1700,000Jan
BD-CMT8MorganSouthArea1121,400,000Jan
HCM_NK2KitamuraNorthArea1320199,950,000Jan
HCM_NK2RonaldNorthArea1113192,158,000Jan
HCM_NK2MackinseyNorthArea12870,200,000Jan
HCM_NK2AlexNorthArea4344,450,000Jan
HCM_NK2DavidNorthArea 17,100,000Jan
HCM_NK2ArrielNorthArea 17,100,000Jan
HCM_NK2ColeNorthArea 17,100,000Jan

 

1.Bonus for new student enroll

Condition 1 Apply for Area code MiddeArea and NorthArea
Condition 2% Act vs Target of Campus is greater than and equal 80% 
Condition 3# of New Student PD is greater than and equal 5

 

Group Group 1 Group 2 Group 3Group 4Group 5
Number of new Student PD5-1011-1516 - 2021 - 25>26
Bonus50,000100,000200,000300,000500,000

 

Bonus 1 =Number of New Student PD x Bonus of group

Example 1 : Employee A has 32 new students enrolled

 

Number of StudentBonusTotal
1050,000500,000
15100,0001,500,000
7200,0001,400,000
32 3,400,000

 

Example 2 : Employee B has 90 new students enrolled

Number of StudentBonusTotal
1050,000500,000
15100,0001,500,000
20200,0004,000,000
25300,0007,500,000
20500,00010,000,000
90 23,500,000

 

Jame belong to Campus ADV which Area Code is MiddeArea and % Act vs Target 161% and # of New Student PD is 30. All of 3 conditions are satisfied. Bonus for Jame

 

Number of StudentBonusTotal
1050,000500,000
15100,0001,500,000
5200,0001,000,000
30 3,000,000

 

Bonus 1 of Jame : 3,000,000

 

2.Bonus according to revenue

Condition 1 Apply for Area code MiddeArea and NorthArea
Condition 2% Act vs Target of Campus is greater than and equal 80% 
Condition 3New Revenue PD is greater than and equal 50,000,000

 

Group Group 1 Group 2 Group 3Group 4Group 5
New Revenue PD50,000,000-100,000,000100,000,000-250,000,000250,000,000-350,000,000350,000,000 - 500,000,000>500,000,000
Bonus0.50%2.50%5%7.50%10%

 

Bonus 2 = New Revenue PD x Bonus of group

 

Example : Employee C has 20 new students enrolled with tuition revenue of 425,000,000

New Revenue PDBonusTotal
100,000,0000.50%500,000
250,000,0002.50%6,250,000
75,000,0005%3,750,000
425,000,000 10,500,000

 

In this table, Jame belong to Campus ADV which Area Code is MiddeArea and % Act vs Target 161% and New Revenue PD is 318,159,000. All of 3 conditions are satisfied.

 

New Revenue PDBonusTotal
100,000,0000.50%500,000
218,159,0002.50%5,453,975
318,159,000 5,953,975

 

Bonus 2 of jame : 5,953,975

Total Bonus = Bonus 1 + Bonus 2

 

Bonus of Jame = 8,953,975

 

I post this data in this link : https://docs.google.com/spreadsheets/d/1oa_1YAC9osMY5jTjtzya-rVtsaJBe-BR/edit?usp=share_link&ouid=11... 

Please help me to find the measure for calculating this bonus . Thank you so much !

1 ACCEPTED SOLUTION
ERD
Super User
Super User

@sakuragihana ,

You need to have 2 columns for the limits and change the table structure a little. This can be done in Power Query, I will add the steps below how to achieve this from your current tables:

ERD_0-1675684141714.png

Bonus for new student enroll:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("RcwxCsMwDAXQqwjPNkhynQOUQrZS6Oh6KXW22CGNyPUbhdSZ/uOjrxhNP1eZwNgDdJJP+qZLUzDJRnOX8Z1nqAOUvMJzkU8uCzxu21lwhFsQOQqaHThgbZhU2r0E0Wfu9lfXWuSrO7SI+xL/4ibfFA6l9AM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t]),
    #"Transposed Table" = Table.Transpose(Source),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Promoted Headers", "Number of new Student PD", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Number of new Student PD.1", "Number of new Student PD.2"}),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"Number of new Student PD.1", Text.Trim, type text}, {"Number of new Student PD.2", Text.Trim, type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Trimmed Text",">","",Replacer.ReplaceText,{"Number of new Student PD.1"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value",null,"9999999",Replacer.ReplaceValue,{"Number of new Student PD.2"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value1",{{"Number of new Student PD.2", Int64.Type}, {"Number of new Student PD.1", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Number of new Student PD.1", "LowerLimit"}, {"Number of new Student PD.2", "UpperLimit"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Bonus", Int64.Type}})
in
    #"Changed Type1"

Bonus according to revenue:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY6xCoUwDEV/JRTcWkmtwV0ENxHX2jGritL3ft8qpa1DknNzIMRaMZ67P0DICDpjk9EkahORcNKKif+w8I83zzAPQRJKxLeUxsRBFEk1VJoiKfMxRQIF9Lm3ekTDeafff/p981ewWBNWz+046WldDDp0524=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t]),
    #"Transposed Table" = Table.Transpose(Source),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
    #"Replaced Value" = Table.ReplaceValue(#"Promoted Headers",">","",Replacer.ReplaceText,{"New Revenue PD"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Replaced Value", "New Revenue PD", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"New Revenue PD.1", "New Revenue PD.2"}),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"New Revenue PD.1", Text.Trim, type text}, {"New Revenue PD.2", Text.Trim, type text}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Trimmed Text",{{"New Revenue PD.1", Int64.Type}, {"New Revenue PD.2", Int64.Type}, {"Bonus", Percentage.Type}}),
    #"Replaced Value1" = Table.ReplaceValue(#"Changed Type",null,9999999999,Replacer.ReplaceValue,{"New Revenue PD.2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Replaced Value1",{{"New Revenue PD.1", "LowerLimit"}, {"New Revenue PD.2", "UpperLimit"}})
in
    #"Renamed Columns"

 Now the measure:

Bonus total = 
VAR current_campus = SELECTEDVALUE ( 'Table 2'[Campus Code] )
VAR campuses_1 =
    CALCULATETABLE (
        DISTINCT ( 'Table 1'[Campus Code] ),
        'Table 1'[Campus Code] = current_campus,
        'Table 1'[Area Code] IN { "MiddleArea", "NorthArea" },
        'Table 1'[% Act vs Target] >= 0.8,
        'Table 1'[# of New Student PD] >= 5
    )
VAR new_students = SELECTEDVALUE ( 'Table 2'[# of New Student PD] )
VAR bonus_1 = FILTER ( 'Bonus 1', 'Bonus 1'[LowerLimit] <= new_students )
VAR bonuses_calc_1 =
    ADDCOLUMNS (
        bonus_1,
        "@bonus_calc",
            VAR current_bonus = [Bonus]
            VAR prev_limit_running = SUMX ( FILTER ( bonus_1, [Bonus] < current_bonus ), [UpperLimit] )
            VAR students_diff = new_students - prev_limit_running
            VAR students = IF ( students_diff < 0, BLANK (), students_diff )
            RETURN
                MIN ( [UpperLimit], students ) * [Bonus]
    )
VAR camouses_2 =
    CALCULATETABLE (
        DISTINCT ( 'Table 1'[Campus Code] ),
        'Table 1'[Campus Code] = current_campus,
        'Table 1'[Area Code] IN { "MiddleArea", "NorthArea" },
        'Table 1'[% Act vs Target] >= 0.8,
        'Table 1'[New Revenue PD] >= 50000000
    )
VAR new_revenue = SELECTEDVALUE ( 'Table 2'[New Revenue PD] )
VAR bonus_2 = FILTER ( 'Bonus 2', 'Bonus 2'[LowerLimit] <= new_revenue )
VAR bonuses_calc_2 =
    ADDCOLUMNS (
        bonus_2,
        "@bonus_calc",
            VAR current_bonus = [Bonus]
            VAR prev_limit_running = SUMX ( FILTER ( bonus_2, [Bonus] < current_bonus ), [UpperLimit] )
            VAR revenue_diff = new_revenue - prev_limit_running
            VAR revenue = IF ( revenue_diff < 0, BLANK (), revenue_diff )
            RETURN
                MIN ( [UpperLimit], revenue ) * [Bonus]
    )
VAR Bonus_for_new_student_enroll = IF ( current_campus IN campuses_1, SUMX ( bonuses_calc_1, [@bonus_calc] ) )
VAR New_Revenue_PD_x_Bonus_of_group = IF ( current_campus IN camouses_2, SUMX ( bonuses_calc_2, [@bonus_calc] ) )
RETURN
    Bonus_for_new_student_enroll + New_Revenue_PD_x_Bonus_of_group

ERD_1-1675684298771.png

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. Appreciate your Kudos.

Check out my latest demo report in the data story gallery.

Stand with Ukraine!


Here are official ways you can support Ukraine financially (accounts with multiple currencies):
1) Support the Armed Forces of Ukraine: https://bank.gov.ua/ua/about/support-the-armed-forces
2) Come Back Alive foundation: https://www.comebackalive.in.ua/

Thank you!

View solution in original post

6 REPLIES 6
ERD
Super User
Super User

@sakuragihana ,

You need to have 2 columns for the limits and change the table structure a little. This can be done in Power Query, I will add the steps below how to achieve this from your current tables:

ERD_0-1675684141714.png

Bonus for new student enroll:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("RcwxCsMwDAXQqwjPNkhynQOUQrZS6Oh6KXW22CGNyPUbhdSZ/uOjrxhNP1eZwNgDdJJP+qZLUzDJRnOX8Z1nqAOUvMJzkU8uCzxu21lwhFsQOQqaHThgbZhU2r0E0Wfu9lfXWuSrO7SI+xL/4ibfFA6l9AM=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t]),
    #"Transposed Table" = Table.Transpose(Source),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Promoted Headers", "Number of new Student PD", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Number of new Student PD.1", "Number of new Student PD.2"}),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"Number of new Student PD.1", Text.Trim, type text}, {"Number of new Student PD.2", Text.Trim, type text}}),
    #"Replaced Value" = Table.ReplaceValue(#"Trimmed Text",">","",Replacer.ReplaceText,{"Number of new Student PD.1"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value",null,"9999999",Replacer.ReplaceValue,{"Number of new Student PD.2"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value1",{{"Number of new Student PD.2", Int64.Type}, {"Number of new Student PD.1", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Number of new Student PD.1", "LowerLimit"}, {"Number of new Student PD.2", "UpperLimit"}}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Bonus", Int64.Type}})
in
    #"Changed Type1"

Bonus according to revenue:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("VY6xCoUwDEV/JRTcWkmtwV0ENxHX2jGritL3ft8qpa1DknNzIMRaMZ67P0DICDpjk9EkahORcNKKif+w8I83zzAPQRJKxLeUxsRBFEk1VJoiKfMxRQIF9Lm3ekTDeafff/p981ewWBNWz+046WldDDp0524=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t, Column6 = _t]),
    #"Transposed Table" = Table.Transpose(Source),
    #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table", [PromoteAllScalars=true]),
    #"Replaced Value" = Table.ReplaceValue(#"Promoted Headers",">","",Replacer.ReplaceText,{"New Revenue PD"}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Replaced Value", "New Revenue PD", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"New Revenue PD.1", "New Revenue PD.2"}),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"New Revenue PD.1", Text.Trim, type text}, {"New Revenue PD.2", Text.Trim, type text}}),
    #"Changed Type" = Table.TransformColumnTypes(#"Trimmed Text",{{"New Revenue PD.1", Int64.Type}, {"New Revenue PD.2", Int64.Type}, {"Bonus", Percentage.Type}}),
    #"Replaced Value1" = Table.ReplaceValue(#"Changed Type",null,9999999999,Replacer.ReplaceValue,{"New Revenue PD.2"}),
    #"Renamed Columns" = Table.RenameColumns(#"Replaced Value1",{{"New Revenue PD.1", "LowerLimit"}, {"New Revenue PD.2", "UpperLimit"}})
in
    #"Renamed Columns"

 Now the measure:

Bonus total = 
VAR current_campus = SELECTEDVALUE ( 'Table 2'[Campus Code] )
VAR campuses_1 =
    CALCULATETABLE (
        DISTINCT ( 'Table 1'[Campus Code] ),
        'Table 1'[Campus Code] = current_campus,
        'Table 1'[Area Code] IN { "MiddleArea", "NorthArea" },
        'Table 1'[% Act vs Target] >= 0.8,
        'Table 1'[# of New Student PD] >= 5
    )
VAR new_students = SELECTEDVALUE ( 'Table 2'[# of New Student PD] )
VAR bonus_1 = FILTER ( 'Bonus 1', 'Bonus 1'[LowerLimit] <= new_students )
VAR bonuses_calc_1 =
    ADDCOLUMNS (
        bonus_1,
        "@bonus_calc",
            VAR current_bonus = [Bonus]
            VAR prev_limit_running = SUMX ( FILTER ( bonus_1, [Bonus] < current_bonus ), [UpperLimit] )
            VAR students_diff = new_students - prev_limit_running
            VAR students = IF ( students_diff < 0, BLANK (), students_diff )
            RETURN
                MIN ( [UpperLimit], students ) * [Bonus]
    )
VAR camouses_2 =
    CALCULATETABLE (
        DISTINCT ( 'Table 1'[Campus Code] ),
        'Table 1'[Campus Code] = current_campus,
        'Table 1'[Area Code] IN { "MiddleArea", "NorthArea" },
        'Table 1'[% Act vs Target] >= 0.8,
        'Table 1'[New Revenue PD] >= 50000000
    )
VAR new_revenue = SELECTEDVALUE ( 'Table 2'[New Revenue PD] )
VAR bonus_2 = FILTER ( 'Bonus 2', 'Bonus 2'[LowerLimit] <= new_revenue )
VAR bonuses_calc_2 =
    ADDCOLUMNS (
        bonus_2,
        "@bonus_calc",
            VAR current_bonus = [Bonus]
            VAR prev_limit_running = SUMX ( FILTER ( bonus_2, [Bonus] < current_bonus ), [UpperLimit] )
            VAR revenue_diff = new_revenue - prev_limit_running
            VAR revenue = IF ( revenue_diff < 0, BLANK (), revenue_diff )
            RETURN
                MIN ( [UpperLimit], revenue ) * [Bonus]
    )
VAR Bonus_for_new_student_enroll = IF ( current_campus IN campuses_1, SUMX ( bonuses_calc_1, [@bonus_calc] ) )
VAR New_Revenue_PD_x_Bonus_of_group = IF ( current_campus IN camouses_2, SUMX ( bonuses_calc_2, [@bonus_calc] ) )
RETURN
    Bonus_for_new_student_enroll + New_Revenue_PD_x_Bonus_of_group

ERD_1-1675684298771.png

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. Appreciate your Kudos.

Check out my latest demo report in the data story gallery.

Stand with Ukraine!


Here are official ways you can support Ukraine financially (accounts with multiple currencies):
1) Support the Armed Forces of Ukraine: https://bank.gov.ua/ua/about/support-the-armed-forces
2) Come Back Alive foundation: https://www.comebackalive.in.ua/

Thank you!

Hi @ERD ,

If I apply a condition date key and type for Bonus table like that :

Bonus 1:

Group LowerLimitUpperLimitBonusDate keyType
151050,00001/01/2023New Enrollment
21115100,00001/01/2023New Enrollment
31620200,00001/01/2023New Enrollment
42125300,00001/01/2023New Enrollment
52699999500,00001/01/2023New Enrollment

Bonus 2 : 

Group LowerLimitUpperLimitBonusDate keyType
150,000,000100,000,0000.50%01/01/2023New Revenue
2100,000,000250,000,0002.50%01/01/2023New Revenue
3250,000,000350,000,0005.00%01/01/2023New Revenue
4350,000,000500,000,0007.50%01/01/2023New Revenue
5500,000,000999,999,99910.00%01/01/2023New Revenue

 

I use this date key and type for condition because in every months of year, bonus will change and in the future maybe have a new type

Example: (datekey format : dd/mm/yyyy)
Bonus 1

Group LowerLimitUpperLimitBonusDate keyType
151080,00001/02/2023New Enrollment
21115120,00001/02/2023New Enrollment
31620250,00001/02/2023New Enrollment
42125350,00001/02/2023New Enrollment
52699999600,00001/02/2023New Enrollment

 

Bonus 2:

Group LowerLimitUpperLimitBonusDate keyType
150,000,000100,000,0000.80%01/02/2023New Revenue
2100,000,000250,000,0003.50%01/02/2023New Revenue
3250,000,000350,000,0006.00%01/02/2023New Revenue
4350,000,000500,000,0008.50%01/02/2023New Revenue
5500,000,000999,999,99912.00%01/02/2023New Revenue

 

But when I apply date key condition and type conditions on measure , it make a wrong. Can you help me ?

 

 

 

 

 

 

@sakuragihana , that's a bit another story. You need to have a date table, columns with common date format in all tables.

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly. Appreciate your Kudos.

Check out my latest demo report in the data story gallery.

Stand with Ukraine!


Here are official ways you can support Ukraine financially (accounts with multiple currencies):
1) Support the Armed Forces of Ukraine: https://bank.gov.ua/ua/about/support-the-armed-forces
2) Come Back Alive foundation: https://www.comebackalive.in.ua/

Thank you!

Hi @ERD ,

I have a change request from the company, bonus for staffs have many conditions more.

 In table Bonus: 

sakuragihana_0-1675904981916.png

 

The bonus table is explained as follows:

1. Bonus for new student enrollment

 Bonus 1 =Number of New Student PD x Bonus of group

  -Apply for condition type NEW ENROLLMENT  : 

      1. Area code : HCMC & SouthArea 

      2.% Act vs Target of Campus is greater than and equal 80% 

      3.# of New Student PD is greater than and equal 5

sakuragihana_1-1675904981926.png

Example: 

sakuragihana_2-1675904982342.png

 

Conditions apply for type NEW ENROLLMENT

1. Area code : New Area &  VT Area

2.% Act vs Target of Campus is greater than and equal 75% 

3.# of New Student PD is greater than and equal 3

sakuragihana_3-1675904982309.png

 

sakuragihana_4-1675904982365.png

 

2. Bonus for new revenue

Bonus 2 = New Revenue PD x Bonus of group

Conditions apply for type NEW REVENUE

   1. Area code : HCMC & SouthArea 

   2.% Act vs Target of Campus is greater than and equal 80% 

   3.New Revenue PD is greater than and equal 50,000,000

sakuragihana_5-1675904982354.png

sakuragihana_6-1675904981927.png

Similar as  above, Conditions apply for type NEW REVENUE

   1. Area code : New Area &  VT Area

   2.% Act vs Target of Campus is greater than and equal 75% 

   3.New Revenue PD is greater than and equal 30,000,000

sakuragihana_7-1675904982332.png

 

sakuragihana_8-1675904981928.png

 

3. Bonus for re enrollment

Bonus 3 = # Student Re Enroll x % The corresponding bonus level according to the table

Conditions apply for type Re Enrollment

   1. Area code : all of area 

   2.% Re Enroll Student following percentage as :

  

sakuragihana_9-1675904982369.png

 

Example : Staff E have 30 student re enrollment and % Re Enroll Student is 120%

Bonus 3 = 30 x 20,000 = 600,000

Total Bonus = Bonus 1+ Bonus 2+Bonus 3

All of type condition are calculating for January because in February bonus will be change the value. Can the measure apply the conditions for month ?

 

I make a power BI file with table data and bonus table in this link : https://drive.google.com/file/d/1N3bYrYKtcwPUffFFsJWEe_GpJee3rfT7/view?usp=share_link 

 

Can you help me to apply all of conditions for dax to calculate the bonus of staff ?

 

Hi ERD,

Thank you so much

lbendlin
Super User
Super User

Please provide sample data that covers your issue or question completely.
https://community.powerbi.com/t5/Community-Blog/How-to-provide-sample-data-in-the-Power-BI-Forum/ba-...
Please show the expected outcome based on the sample data you provided.

https://community.powerbi.com/t5/Desktop/How-to-Get-Your-Question-Answered-Quickly/m-p/1447523

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors