FIRST

FIRST(set)

One row of a set: the first in schedule order, or blank when the set is empty. Schedule order is the order of the logic (a task comes after the tasks that lead into it, then by task code), not the earliest date, so when you want the row with the earliest start or the least float, use ARGMIN.

Arguments

ArgumentWhat to give it
setA set of rows: Predecessors, FILTER(…), Assignments, InLinks.

Examples

Formula
=FIRST(FILTER(InLinks, InLinks[Driving link]))[Task code]

The code of a predecessor that drives the task: blank if no link into it is driving.

Formula
=FIRST(Assignments)[Resource]

The name of a resource on the task, for a label. Blank when nothing is assigned.

Formula
=TEXTJOIN(", ", Predecessors[Task code])

When you want all of them, not one: every predecessor's code in one piece of text, which TEXTJOIN gives in the same schedule order.

Reach for something else when

You wantUse
The row with the smallest or largest valueARGMIN or ARGMAX
The row when there must be exactly one, and an error otherwiseONLY
One particular task by its IDTASK
The earliest date itself, not the taskMIN

Common questions

Why does the editor say "This gives a set of tasks, not one value per task"?

A formula column holds one value per row, and a set is many. Count it, or take one row from it and read a field:

The editor refuses this
=Predecessors

COUNT(Predecessors) or FIRST(Predecessors)[Task code].

Is FIRST the earliest predecessor?

Not by date. It is first in the order of the logic, which is stable but has no meaning for dates. ARGMIN(Predecessors, Predecessors[Start date]) is the one that starts first.