EthicsComputerCourses
Join training +91 90532 10052

Table, Matrix & Map Visuals

Power BI · Lesson 18 of 30 Intermediate 7 min read Updated

Charts show patterns, but managers also want exact numbers: the accountant needs the figure to the rupee, and the regional head wants to expand North to see Jaipur and Lucknow. That is the job of the table and matrix visuals. And when the question is "where", a map shows it faster than any list.

In this lesson you will build a table with conditional formatting, a matrix with a Region > City hierarchy, and a map of Kesar Mart's stores, and learn how to avoid the classic "why is Kochi in Japan?" map mistake.

The table visual

A table is a simple grid: each field you add becomes a column, and each row is one combination of the dimension columns. Add Stores[City], [Total Sales], [Total Profit] and [Margin %]:

CityTotal SalesTotal ProfitMargin %
Jaipur10,4752,43523.25%
Kochi7,8622,06226.23%
Lucknow9,5942,05421.41%
Pune11,3412,60122.93%
Total39,2729,15223.30%

Click a column header to sort. Turn the totals row on or off in Format visual > Totals.

Conditional formatting turns a table into something you can scan. Right-click a measure in the Columns well and choose Conditional formatting:

  • Background color: a colour scale from light to dark by value.
  • Font color: for example, red text for negative growth.
  • Data bars: small bars inside the cells, a mini bar chart in the table.
  • Icons: arrows or traffic lights by rules you define.

Kochi has the lowest sales but the best margin; a colour scale on Margin % makes that jump out immediately.

The matrix visual

A matrix is like an Excel PivotTable: fields in Rows, Columns and Values, with subtotals. Put Stores[Region] then Stores[City] in Rows, Products[Category] in Columns and [Total Sales] in Values:

Region / CityGroceryHomeTotal
North11,7808,28920,069
Jaipur5,4804,99510,475
Lucknow6,3003,2949,594
South3,8703,9927,862
Kochi3,8703,9927,862
West3,2508,09111,341
Pune3,2508,09111,341
Total18,90020,37239,272

Useful matrix features:

  • The +/- icons on row headers expand and collapse a level (turn them on in Format visual > Row headers). Recent versions offer the same for column headers.
  • The drill buttons at the top of the visual move the whole matrix up or down the hierarchy; see Drill Down & Drillthrough.
  • Format visual > Layout switches between a compact (stepped) layout and a tabular one.
  • Subtotals can be switched off per level.
  • Several measures in Values can be shown as rows instead of columns with Values > Switch values to rows.

A measure in a matrix is evaluated for every cell, including subtotals. That is why [Margin %] gives correct subtotals in a matrix while a summed percentage column would not.

Show the gap to the average

Tables become far more useful with a comparison column. This measure shows how far each store is above or below the average store, using the Avg Sales per Store measure from SUM, SUMX, COUNTROWS, DISTINCTCOUNT & RELATED:

DAX
Vs Store Average =
VAR ChainAverage =
    CALCULATE ( [Avg Sales per Store], REMOVEFILTERS ( Stores ) )
RETURN
    [Total Sales] - ChainAverage

The chain average is 9,818, so Pune shows +1,523, Jaipur +657, Lucknow -224 and Kochi -1,956. Add Font color rules: red below zero, green above.

Map visuals today

Power BI has offered several map visuals over the years. As documented by Microsoft in late 2026:

  • The Azure Maps visual is generally available and is the recommended map. It shows bubbles, filled areas, heat maps and reference layers. Your Power BI administrator may need to allow it for the organisation.
  • The older Map and Filled map visuals are based on Bing Maps. Microsoft has scheduled them for deprecation (the exact timeline is still being planned), removed the Bing map icon from the default visual list, and encourages converting existing maps to Azure Maps.
  • Map visuals send location values (and latitude/longitude) to the mapping service to find them on the map, a process called geocoding. Do not put confidential addresses in a map visual unless your organisation allows it.

To build a store map: select the Azure Maps visual, put Stores[City] in Location and [Total Sales] in Size. Bubble size then shows sales.

Avoiding wrong locations

A city name alone can be ambiguous. "Kochi" is a city in Kerala and also a city in Japan; India itself has more than one Aurangabad. Three fixes, from simplest to best:

  1. Set the data category. Select Stores[City] and choose Column tools > Data category > City; set Stores[State] to State or Province. This tells the map what kind of place it is.
  2. Add context in one column. A calculated column gives the map the full name:
DAX
Location = Stores[City] & ", " & Stores[State] & ", India"
  1. Use coordinates. Add Latitude and Longitude columns to Stores (set their data categories to Latitude and Longitude) and use them in the map's latitude and longitude wells instead of a name:
CityLatitudeLongitude
Jaipur26.9175.79
Lucknow26.8580.95
Pune18.5273.86
Kochi9.9376.27

Coordinates are exact and need no guessing. For many stores, ask the source system for them or look them up once and keep them in the store master.

Common mistakes

  • A table with 40 columns. Nobody reads it. Show the columns the reader needs and let them drill through for detail.
  • Summing percentages in a table. Use a measure such as Margin % so totals and subtotals are recalculated.
  • City names without state. Bubbles land in the wrong country. Use data categories, a full location column, or coordinates.
  • Using the old Map visual in new reports. It is scheduled for deprecation; start with Azure Maps.
  • Map when a bar chart would do. Four stores on a map look nice, but a sorted bar chart compares them better. Use maps when geography itself matters.

Key points

  • The table visual lists exact values; conditional formatting (colour scales, data bars, icons, font colours) makes it scannable.
  • The matrix visual pivots data into rows and columns with expandable hierarchies and correct subtotals.
  • Measures in tables and matrices are evaluated per cell, including totals.
  • Azure Maps is the recommended map visual; the Bing-based Map and Filled map visuals are scheduled for deprecation.
  • Avoid ambiguous locations with data categories, a "City, State, India" column, or latitude and longitude.

Exercise

Build a matrix with Products[Category] and Products[Product] in Rows, Stores[Region] in Columns and [Total Sales] in Values. Add data bars to the values and turn on +/- icons for the rows. Then add a measure Region Count that shows how many regions sold each product, and say which product sold in fewest regions.

Show solution

Create the matrix as described, then right-click Total Sales in Values > Conditional formatting > Data bars, and in Format visual > Row headers > +/- icons switch the icons on.

DAX
Region Count =
CALCULATE ( DISTINCTCOUNT ( Stores[Region] ), Sales )

Read the answer in the Total column of the matrix (inside a region column each cell can only be blank or 1). Passing the Sales table as a filter keeps only the regions that have sales rows for the current product (an expanded-table filter), so the count follows the sales. Rice sold in all 3 regions; Masala Chai in North and South (2); Steel Water Bottle in all 3; Pressure Cooker in North and West (2); Cotton Bedsheet in North and South (2). Three products tie for fewest regions with 2 each. A simpler alternative that gives the same answer is to add a calculated column Region = RELATED ( Stores[Region] ) to Sales and use DISTINCTCOUNT ( Sales[Region] ).

Quick Quiz

1. Which visual works like an Excel PivotTable with rows, columns and subtotals?

2. Which map visual does Microsoft recommend for new reports?

3. A bubble for "Kochi" appears in Japan. What is the most reliable fix?

4. Why do subtotals of Margin % in a matrix come out correct?

Learn Power BI with a mentor

Free lessons get you started. Our Data Analytics & Power BI training adds real projects and code reviews from working developers.

  • Project-based learning
  • Mentor code reviews
  • Free counselling call