ARGMIN

ARGMIN(set, list)

The row of a set with the smallest value, such as the successor with the least float, so you can read any of its fields. The list must be a column of that same set (ARGMIN(Successors, Successors[Total float])): it says which value to rank each row by. Blank values are skipped, a tie goes to the first row in schedule order, and an empty set gives blank.

Arguments

ArgumentWhat to give it
setA set of rows: Successors, Upstream, Assignments, FILTER(…).
listA column of that set to rank by: numbers, durations, dates, text or a status. Written through the same set, e.g. Successors[Total float].

Examples

Formula
=ARGMIN(Successors, Successors[Total float])[Task code]

The successor with the least float: the one most likely to be hurt if this task slips.

Formula
=ARGMIN(Predecessors, Predecessors[Start date])[Name]

The name of the predecessor that starts first.

Formula
=LET(u, FILTER(Upstream, Upstream[Status] <> "Complete"), ARGMIN(u, u[Total float])[Task code])

The tightest unfinished task upstream of this one. Name the filtered set with LET, so the column you rank by is read from it.

Formula on resources
=ARGMIN(Assignments, Assignments[Budgeted units])[Budgeted units]

On a resource: its smallest assignment, in hours.

Reach for something else when

You wantUse
The smallest value itself, not its rowMIN
The row with the largest valueARGMAX
The first row of the logic, whatever its valuesFIRST
A row's position among the othersRANK

Common questions

Why does the editor say "ARGMIN needs the set and a column of it"?

The list wasn't read from the set. Rank by a column of the set itself:

The editor refuses this
=ARGMIN(Successors, Predecessors[Total float])[Task code]

Write ARGMIN(Successors, Successors[Total float]). For a filtered set, name it once with LET, as in the third example.

Is there an XLOOKUP or INDEX/MATCH?

No. ARGMIN, ARGMAX, FIRST and TASK give you a row, and […] after it reads any field: what Excel does with a lookup.