EVERY

EVERY(list)

TRUE when every value in a list of TRUE/FALSE is TRUE, such as whether all of a task's predecessors are complete. With no values it is TRUE: a task with no predecessors passes EVERY(Predecessors[Status] = "Complete"), because none of them is unfinished.

Arguments

ArgumentWhat to give it
listA list of TRUE/FALSE read from a set of rows: a field like Predecessors[Critical], or a comparison like Predecessors[Status] = "Complete". Blanks are skipped.

Examples

Formula
=EVERY(Predecessors[Status] = "Complete")

TRUE when every predecessor is complete, so the task is free to start.

Formula
=NOT(ISEMPTY(Predecessors)) AND EVERY(Predecessors[Status] = "Complete")

The same, but FALSE for a task with no predecessors at all.

Formula on WBS rows
=EVERY(Tasks[Status] = "Complete")

On a WBS row: TRUE when every task in the node and below it is complete.

Reach for something else when

You wantUse
Whether at least one value is TRUEANY
How many are TRUECOUNT(FILTER(…)): see COUNT
Whether there are any rows at allISEMPTY
Both of two single conditions on this rowAND

Common questions

Why is EVERY TRUE for a task with no predecessors?

Nothing in an empty list is FALSE, so every value in it is TRUE. When "no rows" should fail, test for it with ISEMPTY, as in the second example.

Why does a blank not make EVERY FALSE?

EVERY skips blanks. A comparison with a blank is blank, so EVERY(Predecessors[Total float] > 0d) passes over complete predecessors, which have no float.

What does "EVERY needs a list of TRUE/FALSE, e.g. ANY(Predecessors[Critical])" mean?

The list held something other than TRUE/FALSE, such as text. Compare it to make it a list of TRUE/FALSE.

The editor refuses this
=EVERY(Predecessors[Status])