Marketing

MKT_FREQUENCY

Calculate Ad Frequency in Excel

Calculate average ad frequency from impressions and reach for media reporting.

Syntax
=MKT_FREQUENCY(IMPRESSIONS, REACH, [NUMERIC])

What It Does

What this function calculates

MKT_FREQUENCY calculates average frequency, or impressions divided by reach. It helps campaign reports show how many times the average reached person saw an ad, while supporting modern Excel ranges, named ranges, Trim References, and spilled arrays.

Syntax

Function syntax

Syntax
=MKT_FREQUENCY(IMPRESSIONS, REACH, [NUMERIC])

Interactive Demo

Try MKT_FREQUENCY

Edit the impressions or reach below to see how MKT_FREQUENCY recalculates the result.

D2=MKT_FREQUENCY(B2,C2)
A
B
C
D
1
Campaign
Impressions
Reach
Frequency
2
3
4
5
6

Arguments

Inputs this function expects

ArgumentRequiredDescriptionExample
IMPRESSIONSRequiredThe number of ad impressions delivered. Can be a direct numeric value, compatible numeric text, single-cell reference, traditional range, named range, trailing Trim Reference, or Microsoft 365 spilled range.120000
REACHRequiredThe number of unique people, users, households, or accounts reached. Can be a direct numeric value, compatible numeric text, single-cell reference, traditional range, named range, trailing Trim Reference, or Microsoft 365 spilled range.40000
NUMERICOptionalOptional. Leave blank for presentation-ready text output. Enter 1 to return a numeric value suitable for calculations. The formula checks whether NUMERIC is supplied with ISOMITTED(NUMERIC), not whether the value specifically equals 1.1

Example

Example calculation

IMPRESSIONS120000
REACH40000

Expected result3x

Impressions divided by reach. Use numeric mode when frequency needs to feed pacing, saturation, or threshold formulas.

Sample Data

Copy/paste-ready sample data

Sample Campaign Data

Copy and paste this campaign dataset into Excel starting at A1, then test the function against the metric columns.

Paste starting in A1

ImpressionsReachCampaign
5000025000Search Brand
8400042000Paid Social
3600018000Display Prospecting
12000040000Video Awareness
100000No Reach Check
Example Formula
=MKT_FREQUENCY(A2:.A600,B2:.B600)

Expected outputWith the sample data pasted at A1, the formula spills formatted text results: 2x, 2x, 2x, 3x, and 10000x. Add ,1 for numeric frequency values. The zero-reach row is intentionally visible for diagnosis.

Traditional ranges, trailing Trim References, named ranges, and spill references are supported when impressions and reach have compatible dimensions.

Result

What the output means

Returns frequency as formatted text with an x suffix by default, or a numeric value when NUMERIC is supplied. Aligned ranges spill one result per row. Zero reach is substituted with 1, which prevents divide-by-zero errors but can create a non-standard frequency.

Function Definition

LAMBDA definition

LAMBDA
=LAMBDA(IMPRESSIONS,REACH,[NUMERIC],IF(ISOMITTED(NUMERIC),
ROUND(IFERROR(VALUE(IMPRESSIONS),"")/IFERROR(VALUE(IF(REACH=0,1,REACH)),""),2)&"x",
ROUND(IFERROR(VALUE(IMPRESSIONS),"")/IFERROR(VALUE(IF(REACH=0,1,REACH)),""),2)))

Installation

Add this function to Excel

In Excel, go to Formulas > Name Manager > New. Enter MKT_FREQUENCY as the name, paste the full LAMBDA into Refers to, and save. Use =MKT_FREQUENCY(A2,B2) for one row, =MKT_FREQUENCY(A2:A20,B2:B20) for a traditional range, =MKT_FREQUENCY(A2:.A600,B2:.B600) for trailing Trim References, =MKT_FREQUENCY(A2#,B2#) for spilled ranges, and =MKT_FREQUENCY(A2:.A600,B2:.B600,1) for numeric output.

Troubleshooting

Common errors

#SPILL! means Excel cannot place the dynamic-array result; clear blocked cells below or beside the formula. #NAME? usually means the function was not saved in Name Manager or the name was typed differently. Numbers stored as text are generally handled with VALUE(), but non-numeric labels, extra symbols, or incompatible text can still return blanks or unexpected results. If ranges are mismatched, align the numerator and denominator ranges before using dynamic arrays. When the denominator is zero, this function substitutes 1 before division to avoid divide-by-zero errors; that can create unusually large or non-standard results and should be reviewed. Omit NUMERIC for formatted text output; enter 1 for numeric output. Because the formula uses ISOMITTED(NUMERIC), any supplied third argument triggers numeric mode.

Custom Function Request

Need a function that isn't here?

Tell me what you're trying to calculate.

Request a Custom Function