Slice Data by Discount Measure - powerbi

I have a measure in Power BI that calculates the customer discount for whatever customer or product is selected. I want to add a slicer that will filter down the discount to the range that they want to focus on. If the user just wants to see customers that range from 5% to 15% discount, they can set the slicer to show that range. I know this is possible when opening the filters pane, but I want to have the option for users directly on the screen.
Is this possible to do?

first generate the series (Format : Percentage)
Modelling ---> New Table
Percentage = GENERATESERIES ( 0.01, 1.01,0.01 )
Then use this as slicer and in your calculations use it as
max(Percentage[Value]) and min(Percentage[Value])

Related

PowerBI - Calculate average year from a date column

I have a table (we'll just call it MyTable) in PowerBI that includes a Date column. I have created a DateDimension table using CALENDARAUTO() with columns for the Date, Month#, MonthName, etc and created the relationship between that Date and the Date in MyTable.
I want to calculate the average year based on the records in MyTable. For example, if I have records with 1/1/2005, 1/1/2014, and 1/1/2015, the average year should be 2011.
How would I go about doing that? I've tried doing a measure of AVERAGE(DateDimension[Year]) and adding that to a Card visual, but it just shows 2.01K. If I do FORMAT(AVERAGE(DateDimension[Year]), "####"), the average is completely wrong.
Since you already have this DateDimension table, use
Average =
AVERAGEX(
MyTable,
RELATED(DateDimension[Year])
)
You can control the formatting by clicking on the measure (Average) and then using the Measure tools pane:
Set it to Whole number and no thousands operator.

How do I manipulate measure values based on 2 other dimension tables

Power BI newbie here and I'm trying to figure how to craft my DAX to manipulate my measure values based on certain criteria in the other two tables.
Currently I have 2 separate tables which are joined by a One to Many relationship and a separate Measures table. (Total Sales Price is computed as sum of Sales Price)
My aim is to create a new measure where Total Sales Price is multiplied by 1.5x when DIM_Product_Type[Product Category] = "High".
New Measure =
CALCULATE (
SUM ( FACT_PriceDetails[Sales Price] ),
FILTER ( DIM_Product_Type, DIM_Product_Type[Product Category] = "High" )
) * 1.5
However this returns no values in my visual and I'm trying to discern if its a matter of the table joins or the DAX expressions.
Thank you for your time!
Your measure seems good.
It will select only those products with a Product Category of "High" and multiply them by 1.5 to give you result. i.e. Give me the sum of all "High" Product category Price details multiplied by 1.5.
What you need to check is:
Product Serial Numbers match across the two tables
Your Product Category does indeed contain the category "High"
You have entries in FACT_PriceDetails that link to a DIM_Product_Type that has a category of "High"
Check you have not set any filters that could be hijacking your results (e.g. excluding the "High" product category product type or the realated fact/s)
Option-1
You can do some Transformation in Power Query Editor to create a new column new sales price with applying conditions as stated below-
First, Merge you Dim and Fact table and bring the Product Category value to your Fact table as below-
You have Product Category value in each row after expanding the Table after merge. Now create a custom column as shown below-
Finally, you can go to your report and create your Total Sales measure using the new column new sales price
Option-2
You can also archive the same using DAX as stated below-
First, create a Custom Column as below-
sales amount new =
if(
RELATED(dim_product_type[product category]) = "High",
fact_pricedetails[sales price] * 1.5,
fact_pricedetails[sales price]
)
Now create your Total Sales Amount measure as below-
total_sales_amount = SUM(fact_pricedetails[sales amount new])
For both above case, you will get the same output.

DAX Calculate Sum of sales per productid filter by productid ( NOT IN TOP 20 )

I am fairly new to PowerBI DAX and I want to filter out the top 20 product ids in a measure.
I came up with this formula but it does not seem to be working and I was hoping to get some help here.
$ Amount Parcel =
CALCULATE(
SUM(Data[$ Amount Parcel]),
FILTER (Data, NOT (Data[idProduct], SUM(Data[NetSales])) IN TOPN(20, SUMMARIZE(Data, Data[idProduct], "NetSales", SUM(Data[NetSales]))))
)
I want to show sales per PID for all products except for our 20 best sellers.
Thank you !!
I would suggest an easier approach adding a dimension column.
First of all, you need to have Product dimension table separated from Sales fact table. Make sure to create one-to-many relationship between Product and Sales with "Single" cross filter direction.
Then you can create a calculated column on Product table, which can be used to filter out top selling products.
Sales Rank = RANKX('Product', CALCULATE(SUM(Sales[SalesAmount])))
Now drag and drop Sales Rank field into the Filters pane of your visualization, and set the filter condition so that top selling products will not be shown.

Power BI Percentage of Total

I'm trying to get a column to display in a table that will display Users as a percentage of total users. I can get this to work using a calculated column but this does not work with a slicer that allows the user to filter the data. It always calculates against the total of the unfiltered column and not the user filtered column.
I think I need a measure but I can't figure out how to do it.
What I want is :
Users Value / Sum(Users Value Column)
Any Suggestions?
Solved! This was my solution
Measure =
Selectedvalue('dataName'[Users])
/
Calculate(sum([Users]),allselected('DataName'[column]))

How to add Filter to Slicer to display the calculated Measure based on selection using Power BI

I am totally new to Power BI and struggling with Slicer. I have the below requirement:
I have 4 columns Starting From, Destination, Distance KM. For this, I need to add a slicer. If the user clicks on Distance KM, then the chart has to be updated with Distance KM values. Now here comes the trick. I also want to display a column Distance in Miles based on the Distance KM calculation(the KM has to be displayed in Miles). So, whenever user clicks on Distance KM(in slicer), it should show the chart with KM data, if the user clicks on Miles(in slicer), then the chart should be populated with Miles information. I need to do this using slicer in power bi. Trying to achieve this since a while but couldn't get through it.
Please help me out
You only list three columns after stating your data has four, but I believe this should work:
You need to create a new table for the slicer. Within the Home tab select "Enter Data". Enter the values you want to be able to select from (I named the table DistanceSlicer). Load that table and create a slicer with it.
Now you can create a new measure based on this slicer selection. Within the Modeling tab select "New Measure".
SelectedMeasure =
IF (
VALUES ( DistanceSlicer[Measure] ) = "Kilometers",
SUM ( Table1[Distance KM] ),
SUM ( Table1[Distance Miles] )
)
Now use this measure in your table/chart and it should update based on your slicer selection.