ANY

ANY(list)

TRUE when at least one value in a list of TRUE/FALSE is TRUE, such as whether any predecessor is critical. With no values it is FALSE, so a task with no predecessors is FALSE rather than blank, and a blank in the list never counts as TRUE.

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 InLinks[Lag] < 0d. Blanks are skipped.

Examples

Formula
=ANY(Predecessors[Critical])

TRUE when at least one of the task's predecessors is on the critical path.

Formula
=ANY(InLinks[Lag] < 0d)

TRUE when a link into the task has a lead (a negative lag): a guardrail many reviewers ask for.

Formula
=ANY(Assignments[Resource] = "Crane")

TRUE when the crane is assigned to the task. Text is compared ignoring case.

Formula on WBS rows
=ANY(Tasks[Critical])

On a WBS row: TRUE when any task in the node or below it is critical.

Reach for something else when

You wantUse
Whether every value is TRUEEVERY
How many are TRUECOUNT(FILTER(…)): see COUNT
Whether a particular task is in a setINCLUDES
Either of two single conditions on this rowOR

Common questions

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

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

The editor refuses this
=ANY(Predecessors[Total float])

ANY(Predecessors[Total float] < 5d) asks whether any predecessor has less than five days of float.

Why is ANY FALSE when a predecessor's float is blank?

A comparison with a blank is blank, not TRUE, and ANY skips blanks. A complete predecessor has no float, so it never makes ANY(Predecessors[Total float] < 5d) TRUE.