📊
Dashboard Design & Components
Dashboard Layout:
Page 1: Overview
- KPI Cards: Total Matches, Teams, Top Scorer, Highest Win %
- Win% by Team (Bar chart)
- Matches by Season (Line chart)
- Toss Decision Impact (Pie chart)
Page 2: Team Analysis
- Team selection slicer
- Wins vs Losses
- Performance by venue
- Head-to-head comparison
Page 3: Player Stats
- Top batsmen (runs)
- Top bowlers (wickets)
- Player comparison tool
Dataset Preparation:
Download IPL dataset from Kaggle
Import matches.csv and deliveries.csv into Power BI
Create relationships between tables
💻
Key DAX Measures
Essential Calculations:
measure.daxDAX
Total Matches = COUNTROWS(matches)
Total Runs = SUM(deliveries[batsman_runs])
Win Rate =
DIVIDE(
CALCULATE(COUNTROWS(matches), matches[winner] = SELECTEDVALUE(matches[team1])),
COUNTROWS(matches),
0
) * 100
Avg Runs Per Match =
DIVIDE([Total Runs], [Total Matches], 0)
Strike Rate =
DIVIDE(
SUM(deliveries[batsman_runs]),
COUNTROWS(deliveries),
0
) * 100📈
Building Key Visualizations
1. Win Rate by Team (Bar Chart):
- Visual: Clustered bar chart
- Axis: Team name
- Values: Win Rate measure
- Sort: Descending by win rate
- Color: Conditional formatting (green > 50%, red < 50%)
2. Matches Trend (Line Chart):
- X-axis: Season/Year
- Y-axis: Total Matches
- Add trend line
- Show data labels
3. Top Scorers (Table):
- Columns: Player, Matches, Runs, Strike Rate
- Sort by: Runs (descending)
- Top N filter: Show top 10
⚠️ CheckpointQuiz error: Missing or invalid options array
🎮
Adding Interactivity & Filters
Slicers (Filters):
- Season Slicer: Filter by year (2008-2025)
- Team Slicer: Select specific team(s)
- Venue Slicer: Filter by stadium
- Date Range: Custom date selection
Cross-Filtering:
- Click bar chart → updates all visuals
- Sync slicers across pages
- Drill-down capabilities (Season → Match → Ball-by-ball)
Tooltips:
Add custom tooltips showing:
- Team logo
- Win/Loss record
- Top 3 players
⚠️ FinalQuiz error: Missing or invalid questions array
⚠️ SummarySection error: Missing or invalid items array
Received: {"hasItems":false,"isArray":false}