Cheat sheet

Formulas Biscuit fetches most often

A working reference. Copy it, paste it, get back to your day. No ads, no pop-ups, no chatbot begging for your email.

Tip from Biscuit: ctrl+F is your friend here. I laid it out so you can find anything in under fifteen seconds.
Section 1

Sums and counts

Count rows matching a condition

=COUNTIF(A:A, "Denver")

Returns the number of cells in column A that exactly match "Denver".

Count with a wildcard

=COUNTIF(A:A, "*Denver*")

Uses asterisks for partial matches. Works in Excel and Google Sheets.

Count with multiple conditions

=COUNTIFS(A:A, ">10", B:B, "active")

Every condition-range pair is AND. For OR logic, add two COUNTIFS.

Sum only matching rows

=SUMIF(A:A, "Denver", B:B)

Sums the values in column B where column A equals "Denver".

Sum with multiple conditions

=SUMIFS(B:B, A:A, "Denver", C:C, ">=100")

The value-range goes first in SUMIFS, then the condition pairs. Easy to flip by accident.

Running total

=SUM($B$2:B2)

Drag down. The anchor locks the start, the relative end grows as you go.

Section 2

Lookups

Basic VLOOKUP

=VLOOKUP(A2, Products!A:C, 3, FALSE)

Finds A2 in Products column A, returns the 3rd column. FALSE means exact match.

INDEX/MATCH (better)

=INDEX(Products!C:C, MATCH(A2, Products!A:A, 0))

Biscuit prefers this. It handles column insertions and looks left.

XLOOKUP (newer Excel)

=XLOOKUP(A2, Products!A:A, Products!C:C)

The modern replacement. Cleaner, handles errors better. No Google Sheets support yet.

Approximate match (sorted data)

=VLOOKUP(A2, Brackets!A:B, 2, TRUE)

TRUE means find the largest value less than or equal to A2. Useful for tax brackets.

Two-way lookup

=INDEX(Data!B:Z, MATCH(A2, Data!A:A, 0), MATCH(B2, Data!1:1, 0))

Row and column both matched dynamically.

Section 3

Text and regex

Strip whitespace

=TRIM(A2)

Removes leading, trailing, and duplicate internal spaces.

Title case

=PROPER(A2)

"hello world" becomes "Hello World".

Concatenate with separator

=TEXTJOIN(", ", TRUE, A2:A10)

The TRUE ignores blanks.

Extract domain from email

=MID(A2, FIND("@", A2)+1, LEN(A2))

FIND locates the @, MID takes everything after it.

Regex extract (Google Sheets)

=REGEXEXTRACT(A2, "[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]+")

Pulls the first email address out of any mess.

Regex replace

=REGEXREPLACE(A2, "\s+", " ")

Collapses all whitespace to single spaces.

Section 4

Dates

Today's date

=TODAY()

Updates every time the sheet recalculates.

Days between two dates

=B2-A2

Dates are numbers under the hood. Subtraction just works.

Month name from a date

=TEXT(A2, "mmmm")

Returns "January", "February", etc.

First day of current month

=EOMONTH(TODAY(), -1)+1

EOMONTH is "end of month". Go back one month, add one day.

Start of ISO week (Monday)

=A2-WEEKDAY(A2, 3)

WEEKDAY with type 3 returns 0 for Monday, so subtracting it lands on Monday.

Working days between dates

=NETWORKDAYS(A2, B2)

Excludes Saturdays, Sundays, and optional holidays.

Section 5

Arrays (Google Sheets)

Apply a formula to a whole column

=ARRAYFORMULA(A2:A*2)

No more dragging down thousands of rows.

QUERY with SQL-like syntax

=QUERY(Data!A:D, "SELECT A, SUM(C) WHERE B='active' GROUP BY A", 1)

Pretend you're writing SQL. It actually works.

FILTER

=FILTER(A:B, B:B>100, C:C="active")

Returns matching rows. No ugly array formula tricks needed.

UNIQUE

=UNIQUE(A:A)

Returns every distinct value in column A. Sorts as found, not alphabetically.

SORT

=SORT(A2:C, 2, FALSE)

Sorts by the second column, descending.

Section 6

VBA snippets

Hide all sheets except active

Sub HideOthers()
  Dim s As Worksheet
  For Each s In ThisWorkbook.Worksheets
    If s.Name <> ActiveSheet.Name Then s.Visible = xlSheetHidden
  Next s
End Sub

Quickly collapse a workbook down to whatever you're actually working on.

Remove empty rows in used range

Sub KillEmpties()
  Dim r As Long
  For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
  Next r
End Sub

Walks backwards so row numbers don't shift as you delete.

Open every file in a folder

Sub LoopFolder()
  Dim f As String
  f = Dir("C:\path\to\folder\*.xlsx")
  Do While f <> ""
    Workbooks.Open "C:\path\to\folder\" & f
    f = Dir()
  Loop
End Sub

Classic Dir loop. Perfect when you have a folder full of monthly reports.

Didn't find what you need?

Describe it in the playground, Biscuit picks it up pretty fast.

Tell me what you need in plain English. I'll fetch the formula.
Try the playground