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!
power bi report displays phone calls taken by agents/ receptionist staff
The visuals are
stacked column - displays total calls by months
stacked column - displays total calls by days
line chart - displays total calls by hours
currently the visuals are hardcoded to receptionist name with measures
Therefore for a total of 5 receptionist staff, on the page I have 5 rows that displays for each receptionist name.
The requirement is
display drop down list of receptionist name
display 1 row of visuals
in the drop downlist, when name selected, to update all visuals to the staffs totals.
The drop down list is a slicer
what needs to be done to achieve this
TIA
Solved! Go to Solution.
Hi @dd999 ,
try below:
Total_Count_staff1 =
var selected_agent=SELECTEDVALUE(AgentTimelineAnalyticsRaw[Agent Name])
RETURN
CALCULATE(
COUNTROWS(AgentTimelineAnalyticsRaw),
REMOVEFILTERS(AgentTimelineAnalyticsRaw),
AgentTimelineAnalyticsRaw[Agent Name] = selected_agent
)Average Call Length_MCM_staff1 =
var selected_agent=SELECTEDVALUE(AgentTimelineAnalyticsRaw[Agent Name])
RETURN
CALCULATE(
AVERAGE('AgentTimelineAnalyticsRaw'[Call Duration Minutes_Clean]),
REMOVEFILTERS('AgentTimelineAnalyticsRaw'),
'AgentTimelineAnalyticsRaw'[Agent Name_combine] = selected_agent
)Pleas egive kudos or mark it as solution once confirmed.
Thanks and Regards,
Praful
Hi @dd999 ,
you just need to remove second section from your measures and just select in the slicer. these are your updated measures...
Total_Count =
CALCULATE(
COUNTROWS(AgentTimelineAnalyticsRaw))
Average Call Length_MCM =
CALCULATE(
AVERAGE('AgentTimelineAnalyticsRaw'[Call Duration Minutes_Clean]))
If this post helps, then I would appreciate a thumbs up 👍 and mark it as the solution ✔️ to help the other members find it more quickly.
Hi @dd999
Target State (What You Want)
- One slicer with Receptionist Name
- One set of visuals (monthly, daily, hourly)
- Selecting a name updates all visuals automatically
x No hardcoded measures per receptionist
Root Cause of Current Issue
Your visuals are hardcoded like:
Calls_Receptionist_A =
CALCULATE ( COUNT ( Calls[CallID] ), Calls[Name] = "A" )
This breaks interactivity and forces you to duplicate visuals.
Correct possible Solution
Step 1: Create / Use a Receptionist Dimension
If not already present, create a lookup table:
Receptionist =
DISTINCT ( Calls[ReceptionistName] )
Create relationship:
Receptionist[ReceptionistName] → Calls[ReceptionistName]
Step 2: Create ONE Generic Measure (No Names Hardcoded)
Total Calls :=
COUNT ( Calls[CallID] )
x No receptionist filters in the measure.
Step 3: Create the Slicer
Add Receptionist[ReceptionistName] to a Slicer
Set slicer type → Dropdown
Enable Single select (optional, recommended)
Step 4: Build Your Visuals (Once Only)
Use the same measure everywhere:
Stacked Column – Calls by Month
Axis → Date[Month]
Values → [Total Calls]
Stacked Column – Calls by Day
Axis → Date[Day]
Values → [Total Calls]
Line Chart – Calls by Hour
Axis → Calls[Hour]
Values → [Total Calls]
What Happens Now?
Selecting a receptionist in the slicer filters the Calls table
All visuals update automatically
Only one row of visuals needed
Scales instantly for new staff
If You Need “All Receptionists” Option
Power BI slicers do this by default:
Clear selection → shows totals for all
OR
Enable Select All
Have a table like DimReceptionist with a unique row per receptionist and a key used in the calls fact table (e.g. ReceptionistID).
Make a relationship from FactCalls[ReceptionistID] to DimReceptionist[ReceptionistID] and remove the old hard‑coded measures that filter by individual names.
Replace the 5 separate measures with generic ones, for example:
Total Calls by Month := COUNTROWS ( FactCalls ) (used with Month axis)
Similar measures for day and hour charts; they will naturally respect the receptionist filter from the dimension.
Add a slicer using DimReceptionist[Name]; by default it filters all visuals on the page so a single row of charts will show the selected receptionist’s data.
If you need one row only, delete the duplicate visual rows and keep a single set of three visuals connected to this receptionist slicer.
Hi dd999,
We are following up to see if what we shared solved your issue. If you need more support, please reach out to the Microsoft Fabric community.
Thank you.
Thankyou, @Praful_Potphode, @rohit1991, @Ashish_Mathur, and @Selva-Salimi for your responses.
Hi dd999,
We appreciate your inquiry through the Microsoft Fabric Community Forum.
We would like to inquire whether have you got the chance to check the solutions provided by @Praful_Potphode, @rohit1991, @Ashish_Mathur, and @Selva-Salimito resolve the issue. We hope the information provided helps to clear the query. Should you have any further queries, kindly feel free to contact the Microsoft Fabric community.
Thank you.
Hi @dd999 ,
you just need to remove second section from your measures and just select in the slicer. these are your updated measures...
Total_Count =
CALCULATE(
COUNTROWS(AgentTimelineAnalyticsRaw))
Average Call Length_MCM =
CALCULATE(
AVERAGE('AgentTimelineAnalyticsRaw'[Call Duration Minutes_Clean]))
If this post helps, then I would appreciate a thumbs up 👍 and mark it as the solution ✔️ to help the other members find it more quickly.
Hi,
That should be default/built in functionality without any hardcoding. Share the download link of the PBI file.
Hi @dd999
Could you please try below steps:
1. I used below Sample Data to solve this problem:
2. Delete the receptionist-specific filter inside each measure:
Example:
TotalCalls_John =
CALCULATE(COUNTROWS(Calls), Calls[Agent] = "John")
Replace it with a generic measure:
Total Calls =
COUNTROWS(Calls)
Hi @dd999 ,
You can remove the hardcoding from the measure and use selectedvalue dax to read the name from slicer.
for example below is example of your measure:
Receptionist1_Calls = CALCULATE([Total Calls], Staff[Name] = "John Smith")above will be converted to below measure:
Receptionist1_Calls =
var Selected_Receptionist = SELECTEDVALUE(Staff[Name], "No Selection")
CALCULATE([Total Calls], Staff[Name] =Selected_Receptionist )if you need more information on this please provide sample input/output to work with.
Please give kudos or mark it as solution once confirmed.
Thanks and Regards,
Praful
these are the measures used for each staff member set to the visuals
Total_Count_staff1 =
CALCULATE(
COUNTROWS(AgentTimelineAnalyticsRaw),
AgentTimelineAnalyticsRaw[Agent Name] = "staff1 "
)
Average Call Length_MCM_staff1 =
CALCULATE(
AVERAGE('AgentTimelineAnalyticsRaw'[Call Duration Minutes_Clean]),
'AgentTimelineAnalyticsRaw'[Agent Name_combine] = "staff1"
)
Hi @dd999 ,
try below:
Total_Count_staff1 =
var selected_agent=SELECTEDVALUE(AgentTimelineAnalyticsRaw[Agent Name])
RETURN
CALCULATE(
COUNTROWS(AgentTimelineAnalyticsRaw),
REMOVEFILTERS(AgentTimelineAnalyticsRaw),
AgentTimelineAnalyticsRaw[Agent Name] = selected_agent
)Average Call Length_MCM_staff1 =
var selected_agent=SELECTEDVALUE(AgentTimelineAnalyticsRaw[Agent Name])
RETURN
CALCULATE(
AVERAGE('AgentTimelineAnalyticsRaw'[Call Duration Minutes_Clean]),
REMOVEFILTERS('AgentTimelineAnalyticsRaw'),
'AgentTimelineAnalyticsRaw'[Agent Name_combine] = selected_agent
)Pleas egive kudos or mark it as solution once confirmed.
Thanks and Regards,
Praful
| User | Count |
|---|---|
| 55 | |
| 39 | |
| 36 | |
| 21 | |
| 19 |
| User | Count |
|---|---|
| 138 | |
| 102 | |
| 59 | |
| 36 | |
| 35 |