Excel Β· Finance

How to Build a Month-End Close Checklist in Excel with ChatGPT

Provide ChatGPT with your close tasks, owners, deadline offsets, dependencies, holiday calendar, and status rules, then use it to draft an auditable Excel close tracker. The workflow keeps deadlines formula-driven, completion metrics traceable, and missing ownership/timing inputs visible instead of inventing them.

Choose your situation β€” copy the prompt:
ROLE
You are helping me design an auditable month-end close tracker in Excel.

CLOSE SETTINGS
- Close period: [e.g. July 2026]
- Close anchor date: [e.g. 31/07/2026]
- Standard weekend: [Saturday/Sunday / other]
- Holiday dates to exclude: [paste dates or "none"]
- Status list: Not Started | In Progress | Pending | Complete

CLOSE TASK INPUT
Provide one row per task:
Task ID | Task | Owner | Business-Day Offset | Dependency Task IDs | Notes
[Paste rows]

Rules:
1. Do not invent an Owner, offset, dependency or task.
   If any required field is missing, return "INPUT NEEDED" for that field.
2. Create an Excel Table named CloseTasks with columns:
   Task ID | Task | Owner | Business-Day Offset | Deadline |
   Dependency Task IDs | Status | Blocker / Notes
3. Task ID must be unique.
4. Status must use Data Validation with exactly:
   Not Started, In Progress, Pending, Complete.
5. Deadline:
   - If weekend is Saturday/Sunday, use WORKDAY with the supplied holiday range:
     =WORKDAY(CloseAnchorDate,[@[Business-Day Offset]],HolidayRange)
   - If I use a non-standard weekend, use WORKDAY.INTL and state the weekend argument.
   - Do not invent holiday dates.
6. Do not infer task sequence from task names. Use only the Dependency Task IDs I supply.
7. Add validation checks:
   - blank Owner
   - blank Business-Day Offset
   - duplicate Task ID
   - invalid Status
   - dependency ID not found in Task ID list
8. Add summary formulas using structured references:
   Total Tasks = COUNTIF(CloseTasks[Task],"<>")
   Complete = COUNTIF(CloseTasks[Status],"Complete")
   % Complete = IF(TotalTasks=0,0,Complete/TotalTasks)
   Open = TotalTasks-Complete
9. Do not count blank placeholder rows as tasks.
10. Add an owner summary using CloseTasks structured references:
    Assigned | Complete | Open | % Complete.
11. Keep "Pending" as an open status. Do not assume it means blocked unless Notes/Dependency says so.
12. Do not use VBA or macros.
13. Do not describe the tracker as final sign-off: completion status still requires reviewer evidence.

OUTPUT
1. CloseTasks table
2. Exact formulas
3. Data Validation setup
4. Owner summary formulas
5. Validation/exception checks
6. Short monthly rollover procedure explaining how to preserve the prior close record before resetting statuses

Use tab-separated tables suitable for Excel.

Replace the bracketed section with your task list, then paste the prompt into ChatGPT.

I have an Excel Table named CloseTasks.

Relevant columns:
CloseTasks[Task]
CloseTasks[Owner]
CloseTasks[Status]

Owner list:
[paste the exact owners to include, or tell me my Excel version if you want
a dynamic UNIQUE-based owner list where supported]

For each listed owner, calculate:
- Assigned tasks
- Complete tasks
- Open tasks
- Completion %

Rules:
- Assigned = COUNTIFS(Owner, owner, Task, "<>")
- Complete = COUNTIFS(Owner, owner, Status, "Complete", Task, "<>")
- Open = Assigned - Complete
- % Complete = IF(Assigned=0,0,Complete/Assigned)
- Do not treat blank task rows as assigned work.
- Do not infer that a person with open tasks is "causing" the close delay.
  Only flag an overdue/blocking issue if deadline/dependency evidence supports it.

Use structured-reference formulas and a tab-separated output.

Adjust column letters and row numbers to match your actual spreadsheet layout.

My month-end close tracker has a completion formula that looks wrong.

Current formula:
[paste formula]

Relevant sample rows:
Task | Status
[paste several rows, including a row you believe should count as Complete]

Expected result:
[e.g. 3 complete out of 8 nonblank tasks = 37.5%]

Please:
1. Recalculate the expected numerator and denominator from the sample.
2. Inspect the actual criteria/ranges before assuming the cause.
3. Check for:
   - different status labels
   - leading/trailing spaces or non-printing characters
   - numerator/denominator using different row ranges
   - blank task rows included in the denominator
   - formula pointing at the wrong column/table
4. If legacy status labels such as "Done" exist, do not silently remap them.
   Show the proposed mapping and ask me to confirm it before normalising history.
5. Give the corrected formula using CloseTasks structured references where possible.
6. Give one control formula for Total Tasks and one for Complete tasks so I can verify % Complete independently.

Paste both the formula and sample Task/Status rows. A wrong percentage can come from the criterion, the range, legacy text, or an incorrect denominator.

Before β€” close tasks exist, but timing and accountability are informal
ExcelHomeDataReview
B3
fx
In progress
ABCD
1TaskStatusOwnerDue
2Bank reconciliationDoneFinance team2nd business day
3AP reviewIn progressβ€”3rd business day
4Accrualsβ€”S. Okaforβ€”
5Fixed asset depreciationPendingM. Chen4th business day
6Trial balance reviewβ€”Controller5th business day
Status text is inconsistent, owners/offsets are incomplete, and deadlines are descriptions rather than formulas tied to a close anchor date plus the organisation's holiday calendar.
After β€” structured close tracker with live dates, blockers and completion KPI
ExcelHomeFormulasData Validation
E4
fx
=WORKDAY($B$1,D4,$J$2:$J$10)
ABCDEFG
1Month-End31/07/2026Summary5 tasks2 Complete40%
2#TaskOwnerOffsetDeadlineStatusBlocker / Notes
31Bank reconciliationJ. Patel103/08/2026Complete
42AP reviewM. Chen204/08/2026In ProgressWaiting on 2 vendor statements
53AccrualsS. Okafor305/08/2026PendingBlocked by AP review
64Fixed asset depreciationM. Chen305/08/2026Complete
75Trial balance reviewController406/08/2026Not StartedDepends on tasks 2–4
Live formulas
Deadline (standard Sat/Sun weekend):
=WORKDAY($B$1,D3,$J$2:$J$10)
where J2:J10 contains supplied holiday dates.

% Complete:
=IF(COUNTIF(CloseTasks[Task],"<>")=0,0,
 COUNTIF(CloseTasks[Status],"Complete")/
 COUNTIF(CloseTasks[Task],"<>"))

2 Complete / 5 tasks = 40% βœ“

With Month-End = 31/07/2026 and no holiday in the interval:
WORKDAY(+1) = 03/08/2026
WORKDAY(+4) = 06/08/2026 βœ“

If a supplied holiday falls in the interval, WORKDAY moves the deadline accordingly.
Before β€” master checklist hides workload concentration
ExcelHomeDataFilter
C6
fx
M. Chen
ABCD
1TaskOwnerStatusDeadline
2Bank reconciliationJ. PatelComplete03/08
3Cash rec reviewJ. PatelComplete03/08
4AP reviewM. ChenIn Progress04/08
5DepreciationM. ChenComplete05/08
6Lease entriesM. ChenPending05/08
7AccrualsS. OkaforPending05/08
The task list shows ownership row by row, but not that M. Chen owns 3 tasks and still has 2 open items.
After β€” owner summary shows workload without assigning blame
ExcelHomeFormulasCOUNTIFS
C3
fx
=COUNTIFS(CloseTasks[Owner],A3,CloseTasks[Status],"Complete",CloseTasks[Task],"<>")
ABCDEF
1OwnerAssignedCompleteOpen% CompleteAttention
2J. Patel220100%
3M. Chen31233.3%2 open β€” review deadlines
4S. Okafor1010%1 open β€” review status
5Total63350%
Owner formulas
Assigned:
=COUNTIFS(CloseTasks[Owner],A2,CloseTasks[Task],"<>")

Complete:
=COUNTIFS(CloseTasks[Owner],A2,
          CloseTasks[Status],"Complete",
          CloseTasks[Task],"<>")

Open:
=Assigned-Complete

% Complete:
=IF(Assigned=0,0,Complete/Assigned)

M. Chen: 1 / 3 = 33.3% complete; 2 open βœ“
Before β€” COUNTIF looks for exact text, but status values are inconsistent
ExcelHomeFormulasData Validation
B7
fx
=COUNTIF(B2:B5,"Complete")/COUNTA(A2:A5)
ABC
1TaskStatusCOUNTIF result
2Bank recDoneNot counted
3AP reviewComplete␠Not counted
4AccrualsIn ProgressNot complete
5DepreciationCompleteCounted
6% Complete25%
Only one raw row exactly matches "Complete"; "Complete " can be safely trimmed, while "Done" is a different business label and should not be reclassified without confirming what it meant historically.
After β€” legacy statuses are audited before controlled values are enforced
ExcelHomeFormulasData Validation
C2
fx
=TRIM(B2)
ABCD
1TaskRaw StatusClean StatusCOUNTIF
2Bank recDoneDone β€” review mappingNot counted yet
3AP reviewComplete␠CompleteCounted
4AccrualsIn ProgressIn ProgressNot complete
5DepreciationCompleteCompleteCounted
6% Complete50% confirmed
Corrected logic
First remove accidental spaces:
=TRIM(B2)

"Complete " becomes "Complete".
"Done" remains "Done" until you confirm that legacy "Done"
really means the current status "Complete".

Confirmed Complete rows in this example:
AP review + Depreciation = 2 of 4 = 50%

After you confirm any legacy mapping, normalise the data,
then enforce Data Validation:
Not Started / In Progress / Pending / Complete

Final structured formula:
=COUNTIF(CloseTasks[Status],"Complete")/
 COUNTIF(CloseTasks[Task],"<>")
Why month-end checklists break in Excel
Free-text status
"Done" or trailing spaces vs "Complete" β†’ those rows are not counted
High risk
Hardcoded deadlines
Fixed dates β†’ manual edit every month; WORKDAY should also reference supplied holidays when they affect close deadlines
Efficiency loss
No owner column
Blank or ambiguous owner β†’ responsibility cannot be traced; use the owner convention defined by your close process
Easy fix
No dependency tracking
Task 4 can't start until Task 2 is done β€” no flag means silent blockers
Invisible

Build a month-end close checklist step by step

Build a month-end close checklist with ChatGPT β€” 4 steps
1

Sequence tasks by dependency

Provide explicit Task IDs and dependency IDs from your own close process. Do not assume universal sequencing from task names: the correct order depends on your systems, accounting process and review controls. ChatGPT should preserve the dependencies you supply rather than inventing them.

2

Assign named owners, not team names

Use the ownership convention your organisation actually usesβ€”an individual, role, or controlled team queueβ€”and keep it consistent. Do not let ChatGPT replace a missing owner with a guessed person. Consistent owner values enable the COUNTIFS summary.

3

Set up Data Validation for the Status column

In Excel: select the Status column β†’ Data β†’ Data Validation β†’ List β†’ type exactly: Not Started,In Progress,Pending,Complete. These must match the COUNTIF criterion exactly β€” a row with a different value or trailing space will not be counted.

4

Enter the Month-End Date once and let WORKDAY do the rest

Use one close-anchor date plus an explicit business-day offset per task. For a standard Saturday/Sunday weekend, use WORKDAY with the supplied holiday range; use WORKDAY.INTL if your weekend pattern differs. Verify the first few dates each period.

Tip: Add Conditional Formatting to the Status column β€” green fill for Complete, yellow for In Progress, red for Not Started β€” so the tracker reads at a glance without opening filters.

Build the Month-End Close Checklist

Track workload by team member β€” 4 steps
1

Isolate individual owner names

Use a consistent owner identifier for each task. If your process assigns work to roles or shared queues rather than individuals, preserve that model instead of inventing personal ownership.

2

Create an independent summary block

Designate a separate table matrix outside the main task list to display aggregated totals per person.

3

Apply COUNTIFS syntax

Use ChatGPT's prompt output to dynamically count assigned tasks vs. completed ones based on matching text criteria.

4

Review bottlenecks before sign-off

Review open tasks together with deadlines, dependencies and blockers. An owner's open-task count alone does not prove that person is delaying the close.

Track Progress and Close Exceptions

Troubleshoot broken summary formulas β€” 3 steps
1

Inspect text formatting

Check for leading/trailing spaces, non-printing characters, alternative legacy status labels, blank task rows, and mismatched numerator/denominator ranges.

2

Enforce Data Validation dropdowns

After cleaning and confirming any legacy mappings, apply Data Validation with an appropriate error-alert setting so new entries use the controlled status list.

3

Run the Debug prompt

Paste your formula and sample rows into ChatGPT to diagnose likely range mismatches, text mismatches, or quoting errors.

Frequently asked questions

What tasks should a month-end close checklist include?
A typical checklist covers bank reconciliation, accounts receivable and payable reviews, accrual entries, intercompany eliminations, fixed asset depreciation, revenue recognition, trial balance review, and financial statement preparation. The exact list depends on your organisation's complexity β€” paste your own tasks into the prompt and ChatGPT structures them without inventing extras.
Can ChatGPT generate the checklist from my existing process?
Yes. Provide your existing task IDs, tasks, owners, offsets and dependencies. ChatGPT can restructure those inputs into a tracker, but review the output: a prompt cannot guarantee that an AI never adds or alters something. Missing owner/timing inputs should be flagged rather than guessed.
How do I track completion percentage automatically in Excel?
Use a COUNTIF-based numerator for "Complete" and a denominator that counts only nonblank Task rows. Structured references keep the ranges aligned as the Excel Table changes. Data Validation reduces new status drift, but legacy values should be reviewed before remapping them.
Does this replace close management software?
No. This is for teams that manage the close in spreadsheets and need a faster way to build and maintain the checklist. If you use dedicated close software, this template can serve as a lightweight backup or secondary tracker.

Related Excel workflows