Forum Discussion
Power BI – Card “Opening” Count Works but Table Rows Do Not Show (Backlog Logic)
- 7 months ago
Excellent question, this is a classic DAX context mismatch problem, and your instincts are actually correct. The issue is not your business logic; it’s how row context vs filter context behaves when you try to reuse a backlog-style measure at row level.
Let’s break it cleanly and then I’ll give you the correct, reliable pattern.
Why the Card Works but the Table Shows No Rows?
The core reason (this is the key)Your Opening Count measure works because:
- It is evaluated once in a pure filter context
- ALL ( Created Date ) removes the slicer
- MIN ( Created Date ) comes from the slicer context
- CALCULATE builds a virtual filtered set of rows
Perfect for aggregation (card)
But the table filter fails because:
SELECTEDVALUE() is the wrong tool here
In a table:
- Each row already has a row context
- But SELECTEDVALUE does NOT read row context
- It only works when exactly one value exists in filter context
Result:
- RowCreatedDate = BLANK
- RowAgreementDate = BLANK
- Your IF condition → always FALSE
- T able returns zero rows
👉 This is expected DAX behavior, not a bug.
Important Rule to Remember:
Row-level filtering must reproduce the same filter logic as the measure — not reinterpret it row by row using SELECTEDVALUE.
Solution:
>> Step1: Create a Boolean-style filter measure (NO SELECTEDVALUE)
---DAX---
Is Opening =
VAR UserStartDate =
CALCULATE (
MIN ( 'Consolidated Grants'[Created Date] ),
ALLSELECTED ( 'Consolidated Grants' )
)VAR SelectedYear =
YEAR ( UserStartDate )VAR ForcedEndDate =
DATE ( SelectedYear, 12, 31 )RETURN
IF (
CALCULATE (
COUNTROWS ( 'Consolidated Grants' ),
ALL ( 'Consolidated Grants'[Created Date] ),
'Consolidated Grants'[Created Date] < UserStartDate,
'Consolidated Grants'[Agreement Signed Date.] >= UserStartDate,
'Consolidated Grants'[Agreement Signed Date.] <= ForcedEndDate
) > 0,
1,
0
)---DAX---
Why this works
The row is filtered naturally
No need to read row values manually
DAX engine evaluates the row inside the same logic as the card
>> Step 2: Use it as a Visual-level filter
---DAX---
Is Opening = 1
---DAX---
Now:
Card count
Table rows
Cross-filtering
Slicers
=================================================================
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 10 Jan 2026
8 Days | 8 Sessions | 1 hr daily | 100% Free
Hi Taher28
thanks for the clear post
I am a bit unsure on your SELECTEDVALUE logic. That function returns a single value or BLANK(). The blank value is returned if the columns has more than one value visible or if the only value is BLANK(). So if you see BLANK() I am not sure that means that the date is really empty, that depends on the filters applied. But I have no way to go deep in this as I do not know the model
That said,
if you apply a measure as a filter, the measure is calculated for each row of the matrix, based on the columns you grouped into the rows section of the matrix
Can you pleease show in an image how the table / matrix visual is settled ? We need to see the cloumns you grouped into the matrix as they will become part of the evaluation of the 1 or 0 or your filter measure
If this helped, please consider giving kudos and mark as a solution
@me in replies or I'll lose your thread
Want to check your DAX skills? Answer my biweekly DAX challenges on the kubisco Linkedin page
Consider voting this Power BI idea
Francesco Bergamaschi
MBA, M.Eng, M.Econ, Professor of BI