Open your Microsoft Teams attendance report

Teams gives you a file Excel can't open. This fixes it — in your browser, without uploading anything. Get a clean, sortable attendance table, per-person attendance percentages, a pass/fail split, and CSV or Excel export.

Why won't it open in Excel? The report is UTF‑16 encoded and tab-separated despite its .csv extension, with three stacked tables inside — so Excel shows one garbled column. This tool reads the format Teams actually produces.

100% private. Your report is parsed entirely in your browser — attendee names and emails are never uploaded to any server.

How the tool works

1

Drop in your Teams report

Upload the file exactly as Teams gave it to you — UTF-16, tabs, three sections and all. The parser detects the encoding, delimiter, and language automatically.

2

Set your threshold

Choose a percentage (default 80%) or a minimum number of minutes, and pick what to measure against — the scheduled meeting length, the actual session, or a custom duration.

3

Export or certify

Sort, search, and filter the results, download a clean CSV or Excel file, copy the passing emails — or send certificates to everyone who passed with CertFusion.

Why won't the Teams attendance report open in Excel?

The file Teams downloads is a .csv in name only. Under the hood it is UTF-16 encoded (most files are UTF-8), the values are separated by tabs rather than commas, and the document contains three different tables stacked on top of each other — a meeting summary, a participant list, and a join/leave activity log — each with a different number of columns.

Excel takes the .csv extension at its word, assumes commas and a single table, and shows you one column of garbled text. Nothing is wrong with your file — Excel is just reading it with the wrong assumptions. This tool reads the format Teams actually produces, splits the three sections correctly, and gives you a clean table you can actually use.

How to convert a Teams attendance report to Excel

  1. Drop the downloaded meetingAttendanceReport.csv into the tool above — no re-saving or importing wizards needed.
  2. Review the parsed table: one row per participant, with join/leave times, total attended time, and attendance percentage already calculated.
  3. Click Excel (.xlsx) to download a proper spreadsheet — attendance data on one sheet, the meeting summary on a second.

Prefer to stay in Excel? The manual route is Data → Get Data → From Text/CSV, then setting the encoding to Unicode (UTF-16) and the delimiter to Tab — but you'll still have three tables tangled in one sheet, and you'll repeat those steps for every meeting. The tool handles all of it in one drop.

How to read the three sections of the report

Every Teams attendance report contains three stacked sections:

  • 1. Summary — the meeting title, start and end times, scheduled duration, and average attendance time.
  • 2. Participants — one row per person: first join, last leave, total in-meeting duration, email, and role.
  • 3. In-Meeting Activities — one row per join/leave event. Someone who dropped and reconnected three times appears three times here.

The subtlety is in section 3: someone joined from a laptop and a phone at the same time gets overlapping rows, and naively summing them double-counts their time. This tool merges overlapping intervals per person (and flags every row where that changed the number), which is the honest figure to use for certification decisions.

How to calculate attendance percentage from a Teams meeting

The calculation is simple in principle:

  1. Pick the denominator — usually the scheduled meeting duration from the Summary section (most CPD/CE bodies use this), or the actual first-join-to-last-leave span.
  2. For each person, add up their attended time across every join/leave session — merging any overlapping sessions from multiple devices.
  3. Divide: attendance % = attended time ÷ meeting duration × 100, capped at 100%.
  4. Compare against your threshold — 80% is the most common requirement for certificates and CPD/CE credit.

In practice, doing this in a spreadsheet means wrestling with the UTF-16 encoding, splitting the sections apart, parsing durations like 1h 5m 3s into numbers, grouping the rejoin rows, and de-duplicating device overlaps. The tool above does the whole pipeline instantly and shows its work in the warnings panel.

Where to download the attendance report in Teams

  • During the meeting: open the participants panel, click the three-dot menu, and choose Download attendance list.
  • After the meeting: the report appears in the meeting chat — look for the Attendance card and click Download — or open the meeting event in the Teams calendar and use the Attendance tab.
  • For webinars: open the event in the calendar and download the registration + attendance reports from the event management page.

Only organizers (and co-organizers) can download attendance, and it must be enabled in your organisation's meeting policies. Once you have the file, drop it into the tool above exactly as Teams saved it.

Frequently Asked Questions

Why does my Teams attendance report look like gibberish in Excel?

The file is UTF-16 encoded and tab-delimited despite the .csv extension, with three separate tables inside. Excel assumes UTF-8, commas, and one table, so everything lands in a single garbled column. Drop the file into this tool instead — it reads the real format and exports a clean .xlsx or .csv Excel will open perfectly.

Is my attendance data uploaded to a server?

No. The report is parsed entirely in your browser with JavaScript — attendee names and emails never leave your machine. Parsing, filtering, sorting, and exporting all happen locally, with no uploads, no storage, and no tracking of your attendee data.

How is the attendance percentage calculated?

Each person's attended time is divided by the meeting duration. You choose the denominator — scheduled duration (the CPD/CE standard), the actual session span, or a custom number of minutes — and whether attended time sums every session or merges overlapping ones. The threshold can be a percentage or a minimum number of minutes.

What happens if someone joined from two devices at once?

Teams logs each device as separate join/leave rows, and adding them up double-counts the overlap — some people can show more attended time than the meeting was long. This tool merges overlapping intervals per person by default and flags every row where the merge changed the result, so your numbers hold up to scrutiny.

Does it work with non-English Teams exports?

Yes. Teams translates the report into your tenant's language — German, French, Spanish, Japanese, Chinese and more. The parser doesn't rely on English header text: it detects sections by structure and columns by their content, and understands localized durations like "1 Std. 5 Min." or "1小时5分" and regional date formats.

Guests and dial-in participants have no email — what happens to them?

They stay in the table with their attendance calculated, flagged as external or dial-in. They're counted under "Cannot certify (no email)" because a certificate can't be emailed to them — but you'll see exactly who they are, so nothing disappears silently.

Turn your attendance list into certificates

CertFusion emails personalised, verifiable certificates to everyone who met your attendance threshold — no mail merge, no manual list-building.

Issue Certificates with CertFusion