Forum Discussion

SS0101's avatar
SS0101
New Member
2 years ago
Solved

Using Calculate function with two tables

hi guys,

I'm struggling with the following problem:

I have two tables:

1. projects table. each row represents a project that has a "start date" and "End date"

2. regular calendar table

 

I want to add a column to the calendar table that calculates how many active projects were on this day. 

tried to work with a straightforward calculate function but got the same result for each date:

Active Projects =
VAR S_date = SELECTEDVALUE('Calendar Table'[Date])
RETURN
    calculate(
        COUNTROWS(project table),
        FILTER(project table,
            project table[start date] <= S_date  && project table[end date]>=S_date))

what am I missing here? thanks in advance folks
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi  SS0101 ,

     

    You can try the following measure:

    Measure =
    var _select=SELECTEDVALUE('Calendar Table'[Date])
    return
    COUNTX(
        FILTER(ALL('projects table'),
        _select>='projects table'[StartDate]&&_select<='projects table'[EndDate]),[project])

    Or add an ALL() function to the original Dax.

    ALL function (DAX) - DAX | Microsoft Learn

    If it doesn't meet your desired outcome, can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data. We can better understand the problem and help you.

     

    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.

3 Replies

  • You would need to inactivate the relationship between the calendar table and the projects table. Then for your visual use the date from the calendar table for the axis and your measure as the data.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi  SS0101 ,

     

    You can try the following measure:

    Measure =
    var _select=SELECTEDVALUE('Calendar Table'[Date])
    return
    COUNTX(
        FILTER(ALL('projects table'),
        _select>='projects table'[StartDate]&&_select<='projects table'[EndDate]),[project])

    Or add an ALL() function to the original Dax.

    ALL function (DAX) - DAX | Microsoft Learn

    If it doesn't meet your desired outcome, can you share sample data and sample output in table format? Or a sample pbix after removing sensitive data. We can better understand the problem and help you.

     

    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.

    • SS0101's avatar
      SS0101
      New Member

      thanks Liu Yang!

      that nearly solved my issues, however - In this setup, I can't use any slicer (doesn't have any effect). is it due to the ALL command? how can it be worked around?

       

      thanks