Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Lookupvalue between Start Date and End Date

I need to create a calculated column named Printer[Department], with a lookup formula from Employees table, considering start date and end date.   I tried this with no sucess: Calculate(Values(Emp...
  • Stachu's avatar
    7 years ago

    this syntax should work:

    Department =
    VAR __RelevantEmployeeRows =
        FILTER (
            'Employees',
            'Employees'[Username] = 'Printer'[Username]
                && 'Employees'[Start Date] <= 'Printer'[Date]
                && 'Employees'[End Date] >= 'Printer'[Date]
        )
    VAR __RelevantDepartments =
        DISTINCT (
            SELECTCOLUMNS ( __RelevantEmployeeRows, "Departments", 'Employees'[Department] )
        )
    RETURN
        CONCATENATEX ( __RelevantDepartments, [Departments], "," )
    

    the code assumes that there always is not null end date for each row in the Employees table

     

    I'd also suggest to remove the many:many relationship in favour of a separate table with unique Usernames and 1:many, many2many relationships are not what most users think they are AND quite often if they have Both filtering direction are causing the relationship ambiguity - see detailed explanation here:
    https://sqlbits.com/Sessions/Event18/Different_types_of_many-to-many_relationships_in_Power_BI