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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
hidenseek9
Post Patron
Post Patron

Data allocation within Power BI

Hello Power BI community

 

I have a question on how to allocate % of data within Power BI.

Please find below as a sample data I created. 

Sample Data 

 

What I have is a dataset showing a monthly gross sales by store.

I am connecting store data with store segment information to show a summary data.

(Please refer to below)

Sample_Data Pic1.png

 

From here, I would like Power BI to one more step, which is to allocate 10% (rounded) of Avocado Sales to Fruits segment

and leave 90% of sales to Vegetables segment. 

So the expected output is below. 

Sample_Data Pic2 Expected.png

 

How can I create a measure to have an output like this in Power BI?

Your support is much appreciated. 

 

Many thanks,

H

1 ACCEPTED SOLUTION

Hi, @hidenseek9 

 

The sample data 2 link is not available. You may try to modify the calculated table and the measure as follows.

 

calculated table:
ModifiedCategory = 
UNION(
    Category,
    DATATABLE("Store",STRING,"Segment",STRING,{{"Avocado","Fruits"}}),
    DATATABLE("Store",STRING,"Segment",STRING,{{"Orange","Vegetables"}}),
    DATATABLE("Store",STRING,"Segment",STRING,{{"Cucumber","Animals"}})
)

measure:
Sales = 
SUMX (
        'ModifiedCategory',
        VAR s = [Store]
        VAR e = [Segment]
        RETURN
            SWITCH (
                TRUE (),
                s = "Avocado"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.9,
                s = "Avocado"
                    && e = "Fruits", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.1,
                s = "Orange"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.25,
                s = "Orange"
                    && e = "Fruits", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.75,
                s = "Cucumber"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.95,
                s = "Cucumber"
                    && e = "Animals", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.05,
                CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s )
            )
    )

 

 

 

Best Regards

Allan

 

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

View solution in original post

4 REPLIES 4
v-alq-msft
Community Support
Community Support

Hi, @hidenseek9 

 

Based on my research, you may create a calculated table as follows.

 

ModifiedCategory = UNION(Category,DATATABLE("Store",STRING,"Segment",STRING,{{"Avocado","Fruits"}}))

 

 

Then you could create a measure as below.

 

Sales = 
SUMX (
        'ModifiedCategory',
        VAR s = [Store]
        VAR e = [Segment]
        RETURN
            SWITCH (
                TRUE (),
                s = "Avocado"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.9,
                s = "Avocado"
                    && e = "Fruits", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.1,
                CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s )
            )
    )

 

 

Result:

f2.png

 

Best Regards

Allan

 

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

 

@v-alq-msft 

 

Thank you for your reply!

It works perfectly in the sample data.

 

The actual dataset that I have is more complex and I am not sure how to apply the measure you provided with my dataset.

In my dataset, I have more than just 1 sales that I would like to allocate.

Please refer to the sample data 2 below.

Sample Data2 

 

Basically, the current output before applying your solution is below.

I should have made my original data shared more complex, but your support is very much appreciated.

 

Many thanks,

H

 

Sample_Data2 Pic1.png

 

The expected output is below.

Sample_Data2 Pic2 Expected.png

Hi, @hidenseek9 

 

The sample data 2 link is not available. You may try to modify the calculated table and the measure as follows.

 

calculated table:
ModifiedCategory = 
UNION(
    Category,
    DATATABLE("Store",STRING,"Segment",STRING,{{"Avocado","Fruits"}}),
    DATATABLE("Store",STRING,"Segment",STRING,{{"Orange","Vegetables"}}),
    DATATABLE("Store",STRING,"Segment",STRING,{{"Cucumber","Animals"}})
)

measure:
Sales = 
SUMX (
        'ModifiedCategory',
        VAR s = [Store]
        VAR e = [Segment]
        RETURN
            SWITCH (
                TRUE (),
                s = "Avocado"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.9,
                s = "Avocado"
                    && e = "Fruits", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.1,
                s = "Orange"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.25,
                s = "Orange"
                    && e = "Fruits", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.75,
                s = "Cucumber"
                    && e = "Vegetables", CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s ) * 0.95,
                s = "Cucumber"
                    && e = "Animals", CALCULATE (
                    SUM ( 'Data'[Gross Sales] ),'Data'[Store] = s
                ) * 0.05,
                CALCULATE ( SUM ( 'Data'[Gross Sales] ), 'Data'[Store] = s )
            )
    )

 

 

 

Best Regards

Allan

 

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

@v-alq-msft 

 

Is there a way to have multiple allocation logic by year?

For instance, in year 2020, I would like to split "Avocado" sales 9:1 to vegetable and fruits.

But in 2021, I would like to split "Avocado" sales 8:2 to vegetables and fruits. 

 

I have a virtual date table such as below. 

 

Virtual timetable.png

 

Appreciate your support

 

H

Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

September Power BI Update Carousel

Power BI Monthly Update - September 2025

Check out the September 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors