Cellwise Try it free

Excel for your field

Excel for nonprofits and volunteer groups

For small nonprofits, PTAs, churches, clubs and volunteer groups that track gifts and grants in a spreadsheet instead of an expensive donor database. The formulas below answer the questions a board, a funder or a development director asks every month: how much each campaign has raised, how far it is from goal, how many donors you really have, who still needs a thank-you, and whether grant spending is on pace. Every example runs on the small gift log shown here.

General spreadsheet help, not accounting, legal or tax advice. Follow your funder's terms and your accountant's guidance for gift receipts and grant reporting.

Sample data

Every result on this page comes from this sheet, calculated by the same engine the Cellwise app uses. Change a number and watch the formulas react.

ABCDEFGH
1DateDonor IDCampaignAmountMethodMonthlyThankedYear-End goal
2Oct 3, 2026D-1042Year-End Appeal250OnlineNoYes10000
3Oct 5, 2026D-1007Gala1500CheckNoYesAppeal ends
4Oct 9, 2026D-1042Year-End Appeal25OnlineYesYesDec 31, 2026
5Oct 12, 2026D-1118Year-End Appeal100OnlineNoReport date
6Oct 15, 2026D-1007Year-End Appeal500CheckNoYesNov 4, 2026
7Oct 20, 2026D-1203Gala750OnlineNo
8Oct 24, 2026D-1150Food Drive60CashNoYes
9Oct 28, 2026D-1118Food Drive40OnlineYes
10Nov 2, 2026D-1210Year-End Appeal2000CheckNo
11Nov 4, 2026D-1042Year-End Appeal25OnlineYes

What Excel does for nonprofits

Total each campaign

Keep one row per gift, with the campaign typed the same way every time, and SUMIF does the rest: it adds the Amount column only where the Campaign column matches. Swap the campaign name for a cell reference (for example a list of campaigns in another column) and copy it down to build a summary table.

Most wrong totals come from inconsistent labels: "Year-End Appeal", "Year End Appeal" and "YE appeal" are three different campaigns to Excel. Use Data > Data Validation > List on the Campaign column so people pick from a list.

=SUMIF(C2:C11,"Year-End Appeal",D2:D11)

Result: 2900

The Year-End Appeal has raised 2,900 from six gifts so far.

Show progress to goal

Divide what a campaign has raised by its goal and format the cell as a percentage. This is the number for a board report, a thermometer graphic or a social post.

Keep the goal in its own cell (H2) rather than typing 10000 into the formula, so the goal can change without anyone hunting through formulas.

=SUMIF(C2:C11,"Year-End Appeal",D2:D11)/H2

Result: 0.29 shows as 29% with Percent format

2,900 of a 10,000 goal is 29%.

Work out what you need to raise each week

With the gap to goal and the days left, you can turn "we are behind" into a number the team can plan around. Dates in Excel are day numbers, so the end date minus the report date is the days left; divide by 7 for weeks.

Most year-end giving arrives in the last weeks of December, so a weekly target is a planning tool, not a forecast. Compare it with last year's gifts by week if you have them.

=ROUND((H2-SUMIF(C2:C11,"Year-End Appeal",D2:D11))/((H4-H6)/7),0)

Result: 872

7,100 still needed over 57 days (about 8 weeks) is roughly 872 a week until December 31.

Count unique donors, not gifts

Ten gifts is not ten donors. Retention and donor counts in grant applications and annual reports are about people, so count each donor ID once. UNIQUE removes the repeats and COUNTA counts what is left.

Use a donor ID (or an email) rather than a name: "Pat Lee" and "Patricia Lee" are one person but two names. UNIQUE needs Excel 2021, Microsoft 365 or Google Sheets.

=COUNTA(UNIQUE(B2:B11))

Result: 6

6 donors gave the 10 gifts. D-1042 gave three times and D-1007 and D-1118 twice each.

List who still needs a thank-you

A quick, personal thank-you is one of the best predictors of a second gift, and it is the easiest task to let slip. FILTER pulls the donor IDs where Thanked is empty, UNIQUE drops repeats so nobody gets two letters, and TEXTJOIN puts them on one line.

Mark the Thanked column as soon as the letter, call or email goes out, and this list becomes your to-do list.

=TEXTJOIN(", ",TRUE,UNIQUE(FILTER(B2:B11,G2:G11="")))

Result: D-1118, D-1203, D-1210, D-1042

Four donors are waiting for a thank-you: D-1118, D-1203, D-1210 and D-1042. D-1210's 2,000 gift should go to the top of the pile.

Monthly giving for one month

Recurring donors are the steadiest income a small nonprofit has, so track them on their own. SUMIFS adds amounts that meet every condition: Monthly is Yes, and the date is on or after October 1 and before November 1.

Build date conditions with DATE and & (">="&DATE(2026,10,1)) instead of typing a date as text; it works no matter how your computer formats dates.

=SUMIFS(D2:D11,F2:F11,"Yes",A2:A11,">="&DATE(2026,10,1),A2:A11,"<"&DATE(2026,11,1))

Result: 65

Recurring gifts brought in 65 in October: 25 from D-1042 and 40 from D-1118.

Report a typical gift with the median

One big gift drags the average up. Here the average gift is 525 (5,250 / 10), but most gifts are far smaller. MEDIAN returns the middle gift once they are sorted, which is a much more honest "typical gift" for planning an ask amount or a donation page.

Report both if you like: the average tells you about total revenue, the median about your typical donor.

=MEDIAN(D2:D11)

Result: 175

The median gift is 175, a third of the 525 average, because the 2,000 and 1,500 gifts skew the average.

Practice: 8 exercises

Use the sample data above. Type a formula and press Check: it is graded by a real spreadsheet engine, the way Cellwise grades lessons.

  1. 1How much has been raised across all campaigns?

    Show answer

    =SUM(D2:D11) = 5250. The ten gifts add up to 5,250.

  2. 2How many gifts came in for the Gala?

    Show answer

    =COUNTIF(C2:C11,"Gala") = 2. Two rows have Gala in the Campaign column.

  3. 3How much has the Food Drive raised?

    Show answer

    =SUMIF(C2:C11,"Food Drive",D2:D11) = 100. 60 + 40 = 100.

  4. 4How much came in by check?

    Show answer

    =SUMIF(E2:E11,"Check",D2:D11) = 4000. 1,500 + 500 + 2,000 = 4,000, most of the money from three gifts.

  5. 5How much does the Year-End Appeal still need to reach the goal in H2?

    Show answer

    =H2-SUMIF(C2:C11,"Year-End Appeal",D2:D11) = 7100. 10,000 - 2,900 = 7,100 to go.

  6. 6What is donor D-1042's total giving in this log?

    Show answer

    =SUMIF(B2:B11,"D-1042",D2:D11) = 300. 250 + 25 + 25 = 300 across three gifts.

  7. 7How much has come in since November 1, 2026?

    Show answer

    =SUMIFS(D2:D11,A2:A11,">="&DATE(2026,11,1)) = 2025. Only the gifts on November 2 (2,000) and November 4 (25) count: 2,025.

  8. 8How many gifts of 500 or more have not been thanked yet?

    Show answer

    =COUNTIFS(D2:D11,">=500",G2:G11,"") = 2. D-1203's 750 and D-1210's 2,000 are both waiting, so 2. These are the calls to make today.

Free templates for nonprofits

Guided project: Volunteer hours report

Total each volunteer's hours, value their time, pull program hours for a grant report and pick who to thank.

6 steps in the Cellwise app. Each step checks your formula in a real grid, with hints when you get stuck. Part of Cellwise Plus.

Open guided projects

Guides for these formulas

FAQ

Is Excel good enough for a small nonprofit's donor tracking?

For a few hundred donors, yes, if you keep one row per gift, use donor IDs, and type campaigns from a fixed list. Move to a donor database when you need automated receipts, online giving sync or many people editing at once.

How do I count donors instead of donations?

Use =COUNTA(UNIQUE(B2:B11)) on the donor ID column. It counts each donor once, however many gifts they made. In Excel 2019 or older, use =SUMPRODUCT(1/COUNTIF(B2:B11,B2:B11)) on a range with no empty cells.

How do I track volunteer hours in Excel?

Log one row per shift with the volunteer, program, date and hours. SUMIF totals each person, SUMIFS totals a program in a date range for a grant report, and multiplying total hours by an hourly value gives the value of volunteer time.

How do I show fundraising progress as a thermometer?

Put the raised amount and the remaining amount (goal minus raised) in two cells, select them and insert a stacked column chart, then color the remaining part light gray. Conditional Formatting > Data Bars on the % of goal cell is a quicker alternative.

Excel for other fields

Updated