Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
I have approximately 20 KPIs - mainly percentages, but with some decimals and a couple of text data types. After struggling with trying to do all of the manipulation and display with as generic KPI measures as possible, I've reverted to having measures for the percentage KPIs, measures for the decimal KPIs and measures for the text KPIs. The KPIs will be grouped by theme on the dashboard, not by data type. This means that 2 and sometime all 3 data types need to be grouped as if they are one seamless grouping. I have aligned table visuals for this, but I'm frustrated by how finickety it is - for example not being able to completely remove headers from tables make it necessary to carefully layer of them. And within the tables, aligning the columns is also quite tricky. Does anyone have any other suggestions on how to do this? Specifically, I have multiple KPIs of different data types to display together, represented by KPI measures, 1 for each data type. I need to display approximaly 5 X 5 values or text, with the columns aligned.
Solved! Go to Solution.
Hi @Walt1010,
You're absolutely right. Aligning multiple KPI types (percentage, decimal, and text) in multiple table visuals is painful. Power BI wasn’t designed for pixel-perfect multi-table alignment. But there are clean alternatives that solve your issue without fighting the UI.
Instead of multiple table visuals, convert your KPIs into a normalized table and use a single matrix to keep alignment perfect.
Step1: Create a table that defines your KPI list
------DAX------
KPI List =
DATATABLE(
"KPI Name", STRING,
"KPI Type", STRING,
{
{"On-time Shipment %", "PERCENT"},
{"Avg Delivery Days", "DECIMAL"},
{"Supplier Status", "TEXT"},
...
}
)
------DAX------
Step 2: Create a Universal KPI Measure
------DAX------
KPI Value =
SWITCH (
SELECTEDVALUE('KPI List'[KPI Type]),
"PERCENT", [KPI % Measure],
"DECIMAL", [KPI Decimal Measure],
"TEXT", [KPI Text Measure]
)
------DAX------
Now you place KPI Name on rows and KPI Value on values,
All KPIs rendered in one clean, aligned visual with full styling control.
=====================================================
Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
Jaywant Thorat | MCT | Data Analytics Coach
Linkedin: https://www.linkedin.com/in/jaywantthorat/
Join #MissionPowerBIBharat = https://shorturl.at/5ViW9
#MissionPowerBIBharat
LIVE with Jaywant Thorat from 15 Dec 2025
8 Days | 8 Sessions | 1 hr daily | 100% Free
Thanks for all the responses. I opted for a matrix solution, and its worked pretty well. I have each of my KPI values embedded ina SVG image thats coloured on RAG scale. Text, Decimal and Percentage all look good. My only problem is that I cant manage getting the vertical alignment in the rows correct. The KPI names (text) are at the top oof the row. THe row heights adjust so that the larget images fit percetly within the row, but smaller images also align with th top of the row. I would like everything vertically centre-aligned, but there is not obvious way to do it. Any suggestions?
Use Multi-row Card + Custom Visuals
1. Multi-row Card
- Add all 20 KPI measures to Values
- Format → Grid → Rows: 5, Columns: 5
- Category label: Off (hides headers)
- Perfect alignment, handles %/decimal/text automatically
2. KPI Cards by Nova Chart (Free Custom Visual)
- AppSource → "KPI Cards by Nova"
- Single visual handles all data types
- Column/row grid layout
- No header issues
3. Matrix with Header Hack:
Rows: Measure names (create table)
Values: Field Parameter (all KPIs)
Format → Row headers → Off
Row padding → 0px
Column headers → Off
If this answer helped, please click Kudos or Accept as Solution.
-Kedar
LinkedIn: https://www.linkedin.com/in/kedar-pande
Hi @Walt1010
Have you tried using field parameters for the measures and then another table to control the view (the visibility of those measures)
Please see the attached sample pbix.
Hi @Walt1010,
You're absolutely right. Aligning multiple KPI types (percentage, decimal, and text) in multiple table visuals is painful. Power BI wasn’t designed for pixel-perfect multi-table alignment. But there are clean alternatives that solve your issue without fighting the UI.
Instead of multiple table visuals, convert your KPIs into a normalized table and use a single matrix to keep alignment perfect.
Step1: Create a table that defines your KPI list
------DAX------
KPI List =
DATATABLE(
"KPI Name", STRING,
"KPI Type", STRING,
{
{"On-time Shipment %", "PERCENT"},
{"Avg Delivery Days", "DECIMAL"},
{"Supplier Status", "TEXT"},
...
}
)
------DAX------
Step 2: Create a Universal KPI Measure
------DAX------
KPI Value =
SWITCH (
SELECTEDVALUE('KPI List'[KPI Type]),
"PERCENT", [KPI % Measure],
"DECIMAL", [KPI Decimal Measure],
"TEXT", [KPI Text Measure]
)
------DAX------
Now you place KPI Name on rows and KPI Value on values,
All KPIs rendered in one clean, aligned visual with full styling control.
=====================================================
Did I answer your question? Mark my post as a solution! This will help others on the forum!
Appreciate your Kudos!!
Jaywant Thorat | MCT | Data Analytics Coach
Linkedin: https://www.linkedin.com/in/jaywantthorat/
Join #MissionPowerBIBharat = https://shorturl.at/5ViW9
#MissionPowerBIBharat
LIVE with Jaywant Thorat from 15 Dec 2025
8 Days | 8 Sessions | 1 hr daily | 100% Free
Thanks for your response. this is the solution I opted for and its worked pretty well. I have each of my KPI values embedded in a SVG image thats coloured on RAG scale. Text, Decimal and Percentage all look good. My only problem is that I cant manage getting the vertical alignment in the rows correct. The KPI names (text) are at the top oof the row. THe row heights adjust so that the larget images fit percetly within the row, but smaller images also align with th top of the row. I would like everything vertically centre-aligned, but there is not obvious way to do it. Any suggestions?
@Walt1010 , Not very clear. In case you want create slicer then Both Field Parameter and Calaucltion group can take care of group. In case you need grouping Calculation group can take care. You can all measure in that and have format
Or you can have simple item like
With format
IF (
SEARCH("%", SELECTEDMEASURENAME(),, 0) > 0,
"0.00%", // format for percentage
"#,0,.00 K" // format for values divided by 1000
)
| User | Count |
|---|---|
| 53 | |
| 40 | |
| 35 | |
| 24 | |
| 22 |
| User | Count |
|---|---|
| 135 | |
| 109 | |
| 57 | |
| 43 | |
| 38 |