Хитрость в том, что вам нужно учитывать каждый ProjectName
в группе, а не просто строка за строкой.
Чтобы сделать это, давайте использовать функцию SUMMARIZE :
FilteredProjects =
VAR Summary =
SUMMARIZE (
'Project Tasks',
'Project Tasks'[ProjectName],
"02200 Complete", COUNTROWS (
FILTER (
'Project Tasks',
'Project Tasks'[TaskNo] = "02200"
&& 'Project Tasks'[Status] = "Complete"
)
) > 0,
"Database Not Complete", COUNTROWS (
FILTER (
'Project Tasks',
'Project Tasks'[AssignedTo] = "Database"
&& 'Project Tasks'[Status] <> "Complete"
)
) > 0
)
RETURN
SELECTCOLUMNS (
FILTER ( Summary, [02200 Complete] && [Database Not Complete] ),
"ProjectName", 'Project Tasks'[ProjectName]
)
Таким образом, для каждой группы ProjectName
вы проверяете, есть ли в этом подтаблице строки, соответствующие указанным условиям. Затем вы можете отфильтровать те из них, которые соответствуют обоим, и вытащить только один нужный вам столбец.
Вот как выглядит таблица Summary
до того, как ее отфильтровать и разделить на один столбец:
-----------------------------------------------------------------
| ProjectName | 0200 Complete | Database Not Complete |
+-----------------+------------------+--------------------------+
| Project1 | False | True |
+-----------------+------------------+--------------------------+
| Project2 | False | True |
+-----------------+------------------+--------------------------+
| Project3 | True | True |
+-----------------+------------------+--------------------------+
| Project4 | True | True |
-----------------------------------------------------------------