Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
EZimmet
Resolver I
Resolver I

Calculation based off Live Data and a Static Table

Good Day,

 

I need to create a calculation off 2 tables #1 Live Data, #2 Static Data

 

Tbl #1 Need to sum Rack Counts for each Site
Tbl #2 Static number showing Max Racks that can be added to a Site
Output =  Max_Rack - Current Count = ______

 

EZimmet_1-1655146830767.png

Tbl #1
Live Data from the Site Rack Inventory
   
Tbl_Rack
Site NameStatusAssetID
NYCActiveAsset#001
NYCActiveAsset#002
NYCActiveAsset#003
NYCActiveAsset#004
NYCActiveAsset#005
FLAActiveAsset#006
FLAActiveAsset#007
FLAActiveAsset#008
FLAActiveAsset#011
CALActiveAsset#012
CALActiveAsset#013
CALActiveAsset#014
CALNo PowerAsset#015
CALActiveAsset#016
CALActiveAsset#017
CALActiveAsset#018
CALActiveAsset#019
PHXActiveAsset#020
PHXActiveAsset#021
PHXActiveAsset#022
   

 

Tbl #2
Static Tbl with Max Racks
  
Tbl_Max_Rack
Site NameMax_Rack
NYC10
FLA10
CAL15
PHX15

 

Expected output   
 CALFLANYCPHX
Current8453
Max Allowed15101015
Available to install76512
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi  @EZimmet ,

Here are the steps you can follow:

1. Create a table with Enter data.

vyangliumsft_0-1655342379201.png

2. Create measure.

CAL =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="CAL"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="CAL"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
FLA =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="FLA"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="FLA"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
NYC =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="NYC"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="NYC"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
PHX =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="PHX"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="PHX"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)

3. Result:

vyangliumsft_1-1655342379202.png

 

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

Hi  @EZimmet ,

Here are the steps you can follow:

1. Create a table with Enter data.

vyangliumsft_0-1655342379201.png

2. Create measure.

CAL =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="CAL"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="CAL"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
FLA =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="FLA"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="FLA"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
NYC =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="NYC"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="NYC"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)
PHX =
var _count=COUNTX(FILTER(ALL(Tbl_Rack),'Tbl_Rack'[Site Name]="PHX"),[Site Name])
var _sum=SUMX(FILTER(ALL('Tbl_Max_Rack'),'Tbl_Max_Rack'[Site Name]="PHX"),[Max_Rack])
return
SWITCH(
    TRUE(),
    MAX('Table'[Expected])="Current",_count,
    MAX('Table'[Expected])="Max Allowed",_sum,
    MAX('Table'[Expected])="Available to install",_sum - _count
)

3. Result:

vyangliumsft_1-1655342379202.png

 

Best Regards,

Liu Yang

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly

Thank you - For your fast reply I was looking at doing this as one large SQL - but pulling it apart is a lot cleaner. 

Helpful resources

Announcements
Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors