AI Content Creation

How to Rank and Sort Automatically in Google Sheets

Sorting a number column is trivial. Ranking a list by something that is not already a number is where the formulas run out.

By FITS TeamAugust 2, 20263 min read

Two different jobs hide under the same search. One is keeping a list in order as new rows arrive. The other is deciding what order the list should be in at all.

Sheets solves the first one. It has nothing for the second.

The Old Way (SORT and RANK.EQ)

The usual answer is a second tab holding a live sorted copy of the data.

=SORT(FILTER(A2:D, A2:A<>""), 3, FALSE, 2, TRUE)

For a rank number next to each row, RANK.EQ handles it, with the usual tie behaviour.

=ARRAYFORMULA(IF(C2:C="", "", RANK.EQ(C2:C, C2:C, 0)))

The trap is row drift. A SORT output is a read-only array, so people sort the source data in place instead and add their own notes column beside it.

When the source re-orders, formula columns follow the data. Manually typed notes do not. Row 4 now shows the score of one record and the comment about another.

The deeper problem is that both formulas need a number to work with. Ranking leads by how promising they sound, or tickets by how angry they read, gives you nothing to sort on.

The FITS Way (Score First, Then Sort)

With FITS, you create the number that did not exist. Put the score in its own column, keyed to its own row.

=FITS("Score this sales lead from 1 to 100 on how likely it is to close this quarter. Return only the number. Lead: " & A2 & " | Notes: " & B2)

Now SORT and RANK.EQ have something real to work on. Point them at the score column and the ordering maintains itself.

=SORT(FILTER(A2:E, A2:A<>""), 5, FALSE)

Because the score is a formula in the row, it travels with the row. Sorting the source data can no longer separate a record from its own score.

Ties are usually the next complaint. Ask for a tiebreaker in the same formula rather than adding a second sort key.

=FITS("Rate content priority 1 to 100. Break ties by favouring the more urgent deadline. Return only the number. Task: " & A2 & " Due: " & TEXT(C2, "yyyy-mm-dd"))

One number per row, generated from criteria you wrote in a sentence. Everything downstream is ordinary spreadsheet work.

When to Use Each

If the column you want to rank by is already a clean number, SORT and RANK.EQ are free and instant. Reach for =FITS() when the ranking criteria live in a sentence rather than a cell. Related jobs use the same pattern: highlighting the best row rather than the biggest number, classifying free text into categories, and building an editorial KPI dashboard. The full tour is in automating Google Sheets tasks you used to need regex for.

Rank by What Actually Matters

FITS puts plain-English AI formulas inside Google Sheets. Turn your judgment into a score column and let Sheets do the sorting. Free tier included.