Skip to main content

Add Star Rating In Power BI Desktop Using DAX Expression

Overview
In this article, we will learn how we can add Star Ratings in Power BI desktop using a DAX Expression.
I have attached a sample practice file with this article.
Scenario
I have one Product table having two columns:
  • Product Name
  • Rating


     
Now, I want to represent ratings in the form of Stars.
Let’s get started.
Step 1
Create a new measure column in Power BI Desktop.
Step 2
Add the following DAX expression.
  1. Star Rating =  
  2. REPT(UNICHAR(9733), AVERAGE('Product'[Rating]))  
  3. &  
  4. REPT(UNICHAR(9734), 5-AVERAGE('Product'[Rating]))  


 
Now, let’s elaborate on what this DAX expression means.
Here, I have used two DAX functions to achieve this requirement.
  • UNICHAR()
  • REPT()
UNICHAR()
This function returns the Unicode character that is referenced by a given numeric value.
Syntax
UNICHAR(Number)
Example
Suppose I write UNICHAR(65) then it will return ‘A’ because ASCII value of A is 65.
In our case for filled stars, we have used UNICHAR(9733) which will return a filled star.
UNICHAR(9734) will return a hollow star without filling.
We have concatenated both the stars using logic.
REPT()
This function repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string.
Syntax
  • REPT(Text, NumberOfTimes)Suppose my rating is 4 then I need to repeat stars four times. So, I will use:
  • REPT(UNICHAR(9733), AVERAGE('Product'[Rating]))The above statement will repeat Filled stars four times.

    Now, I want to show a rating out of five. So, one star will be unfilled. So, I have used the following:
    REPT(UNICHAR(9734), 5-AVERAGE('Product'[Rating]))
Step 3
Now let’s drag the fields to a table.
It will look like this.

 
Conclusion
This is how we can apply Star Rating using DAX expressions.

Comments

Post a Comment

Popular posts from this blog

Use SharePoint Online List As A Data Source In Power BI

Introduction In this article, we will check how we can use SharePoint List as a data source in Microsoft Power BI. Please follow the below steps to establish the connection of SharePoint Online list with Power BI.  Step 1 Open Power BI Desktop > Get Data > Click More.   Step 2 Search for SharePoint > SharePoint Online List.   Step 3 Enter the URL of your SharePoint site.   Step 4 Click on Organizational account > Sign In.   Step 5 It will open the screen of Office 365 Login > Enter Credentials.   Step 6 Click on Connect.   Step 7 It will show all the lists available in the SharePoint - lists are on the left corner and their preview is on the right. Select all the lists which you want to use directly in the Power BI. Click on Load.   Step 8 It will load all the lists. Expand "Fields" column to view all the fields shown in the SharePoint List.   We can also view all the...

How To Lock Objects In Power BI

Overview Sometimes, there is a situation where when we open a report and click on any visual it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when viewing a report, the arrangement of visuals scatters a little bit. Microsoft rolls out one new amazing feature to resolve this issue, that is, Lock Objects in Power BI. Advantages of using this feature When our purpose is to only view a report, this feature is a boon for us. Visualization’s position is not changed. Saves a lot of the developer's time to resolve the position related issues. Note   -  This feature is not saved with the report. So, every time you open a report, you need to enable this feature. Now, let’s understand this feature in a brief manner. To understand this, I will first show you one report in which I have not enabled “Lock Objects” feature. Step 1 The below screenshot shows my report which doesn’t have the enabled Lock Objects feature. ...

How to partition or split DataTable in C#?

Today we will discuss how we can divide or split a very large data table into fixed size of chunks? Scenario: Suppose there is a data table which has 1000 Rows. When you perform for each loop on data table and read each row at that time it will take too much time. If we devide 1000 Rows datatable into 10 fixed sizes (e.g. 100 Rows) datatable, It will take less time. Let's check how to achieve it. Here is a code. private static List<DataTable> SplitTable(DataTable originalTable, int batchSize) { List<DataTable> tables = new List<DataTable>(); int i = 0; int j = 1; DataTable newDt = originalTable.Clone(); newDt.TableName = "Table_" + j; newDt.Clear(); foreach (DataRow row in originalTable.Rows) { DataRow newRow = newDt.NewRow(); newRow.ItemArray = row.ItemArray; newDt.Rows.Add(newRow); i++; if (i == batchSize) ...