Start with one question and one measure

The practice workbook asks which support channel had the largest decline in first-contact resolution (FCR) from Q1 to Q2. FCR is the number of eligible tickets resolved on first contact divided by the number of eligible tickets with a known Yes or No outcome. A move from 75% to 50% is a 25-percentage-point decline. The denominator matters as much as the headline rate.

For your own file, decide the measure, population, grouping, period, and output before uploading it. “Which channel's FCR fell most from Q1 to Q2 among completed tickets?” gives ChatGPT a testable task. “Find insights” leaves it to choose the metric and filters, so a plausible answer may address a question you never intended to ask.

Question partRule for the practice workbookWhat to settle in your own file
MeasureResolved on first contact divided by eligible ticketsWhich column is the outcome, and what counts as success?
PopulationCompleted tickets with a Yes or No outcomeDo cancelled, test, or blank records belong?
ComparisonEmail, Chat, and PhoneAre the categories defined consistently?
PeriodUse the supplied Quarter fieldWhich field defines the reporting period?
OutputNumerator, denominator, rate, and Q2 minus Q1 changeWhich result must someone else reproduce?

Prepare a safe analysis copy

  • Keep the original workbook unchanged.
  • Remove names, contact details, account identifiers, secrets, and unrelated confidential columns from the copy if your organization has approved use of ChatGPT for the remaining data. Check hidden sheets and comments too.
  • Keep a stable record ID and original row order. Give tables and columns descriptive names.
  • Document units, date formats, category definitions, and what a blank means in each important field.
  • Identify formulas, hidden sheets, filters, merged cells, and pasted totals that could be counted twice.

If you cannot establish upload authority, use the synthetic workbook in this guide or an approved local analysis tool. A field named Revenue could mean gross, net, invoiced, or collected revenue; put its definition in the workbook or analysis brief before asking for a comparison. OpenAI's spreadsheet cleaning workflow likewise keeps the source unchanged and has the reader inspect any cleaned copy.

Attach the workbook and profile it first

Download the practice XLSX file below. In a ChatGPT conversation that accepts file attachments, attach the file and send the first prompt. OpenAI's dataset workflow starts with an inventory of attached files before analysis. Attachment controls and available file features can vary by account or workspace; the checkpoint here is that ChatGPT confirms it read both sheets before you rely on its answer.

Workbook profiling prompt
Inspect the attached chatgpt-excel-analysis-practice.xlsx workbook. Do not answer the business question yet.

List every sheet, its purpose, data-row count, column names, and apparent types. Read the Data_Dictionary sheet and report its rules for duplicate Ticket_ID values, allowed Status values, blank First_Contact_Resolved values, the Quarter field, and the Handle_Minutes outlier. Identify the affected ticket IDs and any issue that needs a decision before calculating FCR. Do not silently fill blanks, discard outliers, or infer a quarter from Date.

For this file, the profile should find 53 ticket rows, nine data columns, two repeated ticket IDs, one blank FCR outcome, one Cancelled row, one Training row, and a 240-minute handle-time value. If the sheet count, IDs, or row counts differ, inspect the actual file and resolve the mismatch before continuing.

What the profiling pass found in our test workbook

On August 18, 2026, our team opened a temporary ChatGPT web conversation for the workbook trial. The model selector named GPT-5.6 Sol, and the reasoning control was set to Fast. The synthetic file had two sheets: Ticket_Data with 53 data rows and nine columns, and Data_Dictionary with definitions, valid values, cleaning rules, and the analysis question. No row represented a real person or support case. This records one result on one workbook; it does not predict how another file, account, or model will behave.

Before upload, we created an answer key. The profile had to find the second copies of E-Q2-03 and C-Q1-02; the blank outcome on E-Q2-UNKNOWN; the Cancelled and Training rows E-Q2-CANCEL and E-Q1-TRAIN; and the 240-minute handle time on P-Q2-08. A reader can find these IDs in the downloadable file and check them against ChatGPT's profile.

ChatGPT workbook profile identifying duplicate ticket IDs, a missing FCR value, excluded statuses, and a handle-time outlier
The profiling pass found both duplicates, the blank FCR value, the two non-completed records, and the known 240-minute outlier before calculating a conclusion. Credit: Grow AI Skills editorial test capture. Open full-size image.

The profiling response found every planted issue and stopped before answering the business question. It also noticed that the date cells were stored as Excel serials but formatted as dates, found no formulas, and confirmed that category spellings matched the dictionary. If your profile differs, resolve that difference before asking for a conclusion.

Set the row rules before calculating

The dictionary says to keep the first occurrence of each Ticket_ID, include Completed records only, exclude a blank First_Contact_Resolved value from both numerator and denominator, and use the supplied Quarter field. These are rules for this workbook. If two rows in your own data share an ID but disagree on the outcome or date, investigate which row is authoritative instead of automatically keeping the first.

The 240-minute handle-time value stays in the data because the dictionary does not authorize removing it. It has no effect on FCR, which uses the Yes or No outcome. It would matter if the question changed to average handle time. Defining the measure first prevents an irrelevant cleanup choice from changing the population.

CheckObserved in this fileRule for the FCR question
Repeated IDsTwo second occurrencesKeep the first copy of each ID
StatusOne Cancelled and one Training rowCount Completed only
OutcomeOne blank Email Q2 outcomeExclude it from both sides of the rate
Handle timeOne 240-minute Phone Q2 valueKeep it; handle time is not the FCR measure
PeriodDates and a Quarter columnGroup by the supplied quarter

Ask the full analysis question

Once the profile agrees with the workbook, send a complete request tied to its actual field names. A filled prompt makes it easier to see whether the answer followed the dictionary. It also avoids burying a cleaning decision in an earlier chat message that a colleague cannot inspect.

Analysis prompt
Using Ticket_Data and the rules in Data_Dictionary, answer: Which support channel had the largest deterioration in first-contact resolution from Q1 to Q2?

Keep the first row for each Ticket_ID in the workbook's original order. Use Status = Completed. Exclude rows where First_Contact_Resolved is blank; count Yes in the numerator and Yes or No in the denominator. Use the supplied Quarter field. Retain the 240-minute Handle_Minutes value because this question does not use handle time.

Return one row per Channel with Q1 resolved/eligible, Q1 FCR, Q2 resolved/eligible, Q2 FCR, and the Q2-minus-Q1 percentage-point change. Name every excluded Ticket_ID and explain why. Show the formula or calculation steps. State what this small workbook cannot establish about the reason for a change. If you cannot inspect a sheet or verify a rule, stop and say which part is unresolved.

Read the result with its denominators

The recorded ChatGPT response matched the independently calculated answer. Email had the largest decline: six of eight eligible tickets were resolved on first contact in Q1, compared with four of eight in Q2. That is 75.0% versus 50.0%, a change of minus 25.0 percentage points. The other channels give context without changing the ranking.

ChatGPT Excel analysis showing FCR numerators, denominators, rates, quarter changes, and cleaning steps
The final table matched the independent calculation and exposed every numerator and denominator instead of returning only a ranked conclusion. Credit: Grow AI Skills editorial test capture. Open full-size image.
ChannelQ1 resolved / eligibleQ1 FCRQ2 resolved / eligibleQ2 FCRChange
Email6 / 875.0%4 / 850.0%-25.0 points
Chat7 / 887.5%6 / 875.0%-12.5 points
Phone5 / 862.5%6 / 875.0%+12.5 points

The response named the two repeated rows removed, the two status exclusions, the blank Email outcome excluded from both sides of the rate, and the choice to use Quarter rather than derive a period from Date. It retained the handle-time outlier because that field was irrelevant to FCR.

Each channel-quarter cell has only eight eligible tickets. A one-ticket difference moves its FCR rate by 12.5 points, so the ranking describes this file without proving a stable change in channel performance. The workbook has no issue type, severity, staffing, queue volume, or policy-change information. It cannot establish why Email declined.

In the original trial, the conclusion, six fractions, six rates, three changes, and cleaning sequence matched a key calculated before upload. One successful synthetic workbook does not establish a general error rate. Recheck every decision-relevant output in your own analysis.

Recalculate the answer in Excel

Use the untouched original for reference and add two helper columns to an analysis copy of Ticket_Data. The existing columns run from A through I; data rows run from 2 through 54. In J1, type Keep_First. In K1, type Eligible_FCR. Enter the formulas below in row 2 and fill them through row 54 before sorting. The first-copy rule depends on the original row order.

Excel helper formulas
J2: =COUNTIF($A$2:A2,A2)=1
K2: =AND(J2,E2="Completed",OR(F2="Yes",F2="No"))

Column J marks the first occurrence of each ticket ID. Column K keeps only first-copy, completed tickets with a known Yes or No outcome. You should get 48 TRUE rows in K: 53 original data rows minus two repeated copies, two non-completed records, and one blank outcome. If you get another count, inspect the affected IDs rather than changing the expected answer.

For Email Q1, these COUNTIFS formulas reproduce the first numerator and denominator. Change "Email" to "Chat" or "Phone", and "Q1" to "Q2", for the other five cells. Divide each numerator by its denominator, then subtract Q1 from Q2 for each channel.

Excel check for Email Q1
Resolved: =COUNTIFS($D$2:$D$54,"Email",$C$2:$C$54,"Q1",$K$2:$K$54,TRUE,$F$2:$F$54,"Yes")
Eligible: =COUNTIFS($D$2:$D$54,"Email",$C$2:$C$54,"Q1",$K$2:$K$54,TRUE)

The formulas return 6 and 8; 6/8 is 75%. For Q2, Email returns 4 and 8, so 4/8 - 6/8 = -0.25, or minus 25 percentage points. If a channel-quarter denominator is zero in your own data, report its rate as unavailable instead of dividing by zero or calling it a 0% rate.

See how common mistakes change the answer

The table changes one rule at a time from the correct Email result. These figures were recalculated from the downloadable workbook for this revision; they are sensitivity checks, not additional ChatGPT trial results. Each mistake produces a credible-looking number, which is why the numerator and denominator belong in the final report.

Email cellCorrect ruleIf one rule is mishandledWhat changed
Q24 / 8 = 50.0%5 / 9 = 55.6%The second E-Q2-03 copy was counted
Q24 / 8 = 50.0%4 / 9 = 44.4%The blank outcome was treated as No
Q24 / 8 = 50.0%5 / 9 = 55.6%The Cancelled ticket was included
Q16 / 8 = 75.0%6 / 9 = 66.7%The Training ticket was included

The identical 55.6% values in two rows come from different errors. A final rate alone would hide that distinction. Ask ChatGPT to list included and excluded ticket IDs whenever duplicate handling, blank-value treatment, or status filtering could change the result. Then spot-check the source rows in Excel.

Adapt the method to different Excel questions

A rate comparison is only one spreadsheet task. Before reusing the prompts, identify the shape of the question and change the validation method with it. The examples outside the FCR trial below are either arithmetic from the same workbook or instructions for files with those features. They are not claims that the August ChatGPT session tested those situations.

When the question is a total or average

Specify the unit, rows to include, and whether the result should be a sum, mean, median, or weighted average. In this workbook, the Phone Q2 handle times for the eight eligible tickets have a mean of 48.4 minutes and a median of 21.5 minutes. The 240-minute P-Q2-08 value drives much of that gap. If that row were removed, the mean of the remaining seven would be 21.0 minutes. Keep the recorded value unless you establish that it is erroneous or explicitly run a with-and-without sensitivity analysis. For FCR, its handle time never enters the calculation.

When blanks have different meanings

A blank outcome can mean “not recorded,” “not applicable,” or “No,” depending on the business process. The practice dictionary says to exclude its one blank FCR value; it does not say to convert it to No. For a sales workbook, a blank discount might legitimately mean zero, while a blank sale price could mean the transaction has not closed. Put the meaning in the workbook or analysis brief. If it is unknown and could change the result, show the affected row count and pause the conclusion.

When the workbook contains multiple data tables

The practice file's second sheet is a dictionary, so no join is needed. If your workbook instead has separate Orders and Customers tables, identify the key in each, check whether it is unique where expected, count unmatched rows, and test whether a join multiplies transactions. Ask for row counts before and after the join and a list of unmatched IDs. A join that turns one order into several rows can inflate revenue while leaving a tidy-looking result. OpenAI's dataset workflow recommends profiling candidate keys and trial joins before accepting a merged file.

When formulas, pivots, or hidden sheets matter

Ask which cells are inputs, formulas, pasted values, and totals. Compare a formula result with the source rows that feed it; do not count both a detail table and its summary row. If a conclusion depends on a hidden sheet, inspect and authorize that sheet before upload. If the workbook displays a formatted date but an analysis shows a serial number, check the cell value and format in Excel before assuming the date changed. The practice workbook had formatted date cells and no formulas, so the original trial does not establish how ChatGPT would handle a formula-heavy model.

When the file is large or poorly structured

Require ChatGPT to report how many sheets and data rows it actually read, not just how many it expected. Ask for the first and last record IDs and counts for the groups used in the answer. If part of a workbook is missed, isolate the relevant table or export a documented CSV copy, then reconcile its row count and totals with the source. Do not describe a partial read as a complete analysis. The same check applies if merged cells, a pasted report header, or several tables on one sheet make fields ambiguous.

Separate the finding from a possible cause

“Email FCR fell from 75.0% to 50.0% in this file” is supported by the 6/8 and 4/8 counts. “Email support became worse because staffing changed” is a hypothesis the workbook cannot test. Issue mix, customer difficulty, staffing, queue volume, policy changes, and reporting behavior are absent. A useful handoff names those missing variables and says what additional data could distinguish the explanations.

When ChatGPT's answer is hard to verify

What you seeWhat to ask or check nextWhen to stop
Only a ranked conclusionAsk for the numerator, denominator, filters, and source row IDs behind every resultThe rows used cannot be shown
A sheet or row count differsCompare the named file and sheet with the source; check whether headers or totals were counted as recordsThe population cannot be reconciled
A blank was filled automaticallyRestore the original value and apply the documented blank rule; recalculate both sides of the rateNo owner can define the blank
A join changes row countRequest key-uniqueness, unmatched-ID, and before-and-after row-count reportsUnexplained row multiplication affects the measure
Your Excel result disagreesCompare one channel-quarter cell row by row, starting with duplicates and excluded statusesThe mismatch remains unexplained
The result sounds causalAsk which columns support the explanation and which alternative causes remain openThe claimed cause is absent from the data

For a stubborn disagreement, ask ChatGPT to show the exact included ticket IDs for one cell, such as Email Q2, with Ticket_ID, Status, Quarter, and First_Contact_Resolved. Compare that short list with the analysis copy. “Double-check the answer” is less useful because it does not expose the inputs.

Save a result another person can reproduce

Keep the original workbook, the authorized analysis copy, the question, the dictionary or field definitions, the row decisions, the final counts, and the independent Excel check together. A chat transcript can explain the work, but it should not be the only place the rules live. The downloadable CSV has a row for each of the nine handoff checks below.

CheckEvidence to keepStop if
SourceOriginal workbook version or hash and named analysis copyYou cannot identify the file analyzed
AuthorityApproval for the fields sent to the toolUpload permission is unresolved
DefinitionMeasure, population, grouping, period, and blank ruleA field has competing meanings
ProfileSheet and row counts, duplicates, blanks, and outliersA material issue is unexplained
FormulaFilters, numerator, denominator, and calculationOnly the final number is visible
RecalculationIndependent Excel formula, pivot, or script resultThe independent value disagrees
InterpretationObservation separated from possible causeThe file cannot support a claimed cause
LimitationSmall cells, exclusions, and unresolved questionsA missing caveat could reverse the decision
HandoffFiles and instructions another reviewer can useThe result depends on an inaccessible chat

If a definition or independent calculation remains unresolved, report the counts you verified and the gap you could not close. Wait to make a ranked business recommendation until the disputed rows or rules have an owner.