Which products have the highest sales, and how do they rank compared to others?
Rank calculations in Tableau - Dashboard Guide
Start learning this pattern below
Jump into concepts and practice - no test required
| Product | Category | Sales |
|---|---|---|
| Alpha | Electronics | 300 |
| Beta | Electronics | 450 |
| Gamma | Furniture | 200 |
| Delta | Furniture | 500 |
| Epsilon | Office Supplies | 150 |
| Zeta | Office Supplies | 400 |
- KPI Card: Total Sales
Formula:SUM([Sales])
Result: 2000 - Table: Product Sales with Rank
Columns: Product, Category, Sales, Sales Rank
Rank Formula:RANK_UNIQUE(SUM([Sales]), 'desc')
Result:Product Category Sales Sales Rank Delta Furniture 500 1 Beta Electronics 450 2 Zeta Office Supplies 400 3 Alpha Electronics 300 4 Gamma Furniture 200 5 Epsilon Office Supplies 150 6 - Bar Chart: Sales by Product
X-axis: Product
Y-axis: Sales
Bars ordered by Sales descending
Visual shows highest sales on left
+----------------------+-----------------------+ | Total Sales | Sales by Product | | (KPI) | (Bar Chart) | +----------------------+-----------------------+ | Product Sales with Rank Table | +-----------------------------------------------+
A category filter allows users to select one or more categories (Electronics, Furniture, Office Supplies). When a category is selected, the Total Sales KPI, the Sales by Product bar chart, and the Product Sales with Rank table update to show only products from the selected categories. The rank recalculates dynamically based on filtered data.
If you add a filter to show only the 'Electronics' category, which products remain and what are their sales ranks?
Answer: Products 'Beta' and 'Alpha' remain.
Sales ranks update:
- Beta: Rank 1 (Sales 450)
- Alpha: Rank 2 (Sales 300)
Practice
What does the RANK() function in Tableau do?
Solution
Step 1: Understand the purpose of RANK()
The RANK() function orders values and assigns a rank number to each based on their size.Step 2: Identify what RANK() does not do
It does not sum, filter, or change data types; it only ranks values.Final Answer:
It assigns a position number to each value based on order. -> Option BQuick Check:
RANK() = position number [OK]
- Thinking RANK() sums values
- Confusing RANK() with filtering
- Assuming RANK() changes data types
Which of the following is the correct syntax to rank sales in descending order in Tableau?
RANK(____, 'desc')Solution
Step 1: Identify the aggregation for ranking sales
Ranking sales usually uses the total sales, so SUM(Sales) is appropriate.Step 2: Confirm syntax correctness
RANK(SUM(Sales), 'desc') ranks sales from highest to lowest correctly.Final Answer:
SUM(Sales) -> Option CQuick Check:
Use SUM for total sales ranking [OK]
- Using COUNT instead of SUM for sales
- Using MIN or AVG which changes ranking meaning
- Omitting aggregation inside RANK()
Given the sales data below, what is the rank of Product B using RANK(SUM(Sales), 'desc')?
- Product A: 500
- Product B: 300
- Product C: 700
- Product D: 300
Solution
Step 1: Order products by sales descending
Product C (700) is 1, Product A (500) is 2, Product B and D (300) tie next.Step 2: Assign ranks with ties
Since B and D tie at 300, they share rank 3.Final Answer:
3 -> Option AQuick Check:
Product B rank = 3 [OK]
- Assigning different ranks to tied values
- Ignoring descending order
- Ranking Product B as 2 instead of 3
Identify the error in this Tableau rank calculation:RANK(SUM(Sales), 'ascending')
Solution
Step 1: Check valid direction keywords
Tableau accepts 'asc' or 'desc' for direction, not 'ascending'.Step 2: Confirm other parts are correct
SUM(Sales) is valid, RANK() accepts second argument, and RANK_DESC() is not a function.Final Answer:
The direction should be 'asc' not 'ascending'. -> Option DQuick Check:
Use 'asc' or 'desc' for direction [OK]
- Using full words like 'ascending' instead of 'asc'
- Thinking RANK() can't take direction
- Confusing RANK() with other functions
You want to show the top 3 salespeople ranked by total sales, but if two salespeople tie for 3rd place, you want to show both. Which Tableau calculation should you use?
Solution
Step 1: Understand ranking with ties
RANK() assigns same rank to ties, so filtering with <= 3 includes all tied at 3rd.Step 2: Compare with other options
INDEX() filters rows, not ranks; 'asc' ranks lowest sales; RANK_DENSE() does not skip ranks, so < 3 excludes ties at 3.Final Answer:
Use RANK(SUM(Sales), 'desc') <= 3 to filter top 3 including ties. -> Option AQuick Check:
RANK() <= 3 includes ties at 3rd [OK]
- Using INDEX() which ignores ranking
- Using ascending rank for top sales
- Using RANK_DENSE() < 3 excludes ties at 3
