SAME
SAME([field])
Every row of the table whose field has the same value as this row's, this row included: the tasks in this task's phase, or in its WBS node. Unlike the logic sets (Upstream, Predecessors), it groups rows by a value, not by links. A row whose field is blank gets an empty set, not the other blank rows.
Arguments
| Argument | What to give it |
|---|---|
| field | A field of the table the formula is on, in brackets: [Phase], [WBS], [Calendar]; [Level] on a WBS node. Text compares ignoring case and dates by the day. |
Examples
Formula=SUM(SAME([Phase])[Duration])
The total duration of every task in this task's phase, on each of them.
Formula=COUNT(SAME([WBS]))
How many tasks sit in this task's WBS node, this one included.
Formula=[Total float] = MIN(SAME([Discipline])[Total float])
TRUE for the tightest task of its discipline.
Formula on WBS rows=COUNT(SAME([Level]))
On a WBS row: how many nodes sit at the same depth of the WBS.
Reach for something else when
| You want | Use |
|---|---|
| Rows that meet any other condition, such as a fixed phase | FILTER: FILTER(All, All[Phase] = "Civil") |
| Rows linked to this one by logic | the relations: Predecessors, Upstream and the rest |
| How this row ranks within its group | RANK over SAME(…)[…] |
Common questions
Why does the editor say "SAME takes a field in brackets"?
SAME groups by one field of this row, so it takes the field itself, not an expression or a value:
The editor refuses this=COUNT(SAME("Civil"))
For a fixed value, filter: COUNT(FILTER(All, All[Phase] = "Civil")).
Is SAME([Phase]) the same as FILTER(All, All[Phase] = [Phase])?
Yes for every row with a phase, and SAME is planned as one grouping, so it stays fast on large schedules. Use it whenever the condition is "equal to this row".
