← Back to projects

Power BI

LinkedIn Survey Analysis

Turned a raw LinkedIn survey export into a Power BI report that surfaced the trends worth acting on, including the ones buried in free-text answers that most summaries throw away.

Role
Data cleaning, modeling, reporting
Stack
Power BI, Excel, Power Query, DAX
Focus
Survey analytics

The problem

Survey exports look tidy until you open them. Multi-select questions arrive as one comma-jammed cell, optional questions leave ragged gaps, and the free-text box collects the most interesting answers in the least analyzable form.

Summarizing only the clean multiple-choice columns would have been fast, and would have thrown away the part of the survey where people actually explained themselves.

What I built

A Power BI report backed by a properly reshaped model rather than a direct connection to the raw export.

The report opens on overall response patterns, then lets a reader slice by respondent attributes to see where a group diverges from the whole. The point was to make disagreement visible, since a flat average across everyone tends to hide the finding.

Power BIPower QueryDAXExcelData CleaningData Storytelling

How it works

The heavy lifting happens in Power Query. Multi-select fields get unpivoted into one row per respondent per selection, which is the only shape that lets you count them honestly. Inconsistent free-text entries get normalized into categories, with the original response kept alongside so nothing is silently rewritten.

Blank answers are treated as their own state rather than as a zero. A question someone skipped is not the same as a question they answered negatively, and collapsing the two quietly distorts every percentage built on top of it.

Measures are written in DAX against that reshaped model, so response rates stay correct even when a filter is applied to a question a given respondent never saw.

What it produced

The analysis put numbers on patterns that had been anecdotal, and it did it in a form someone could interrogate rather than just read.

The free-text normalization is what made the difference. Several of the clearest themes only appeared once open responses were grouped, which is exactly the material a chart-only summary would have dropped.

Full surveyFree text included, not dropped
Segment viewGroup differences made visible
ReusableRebuilds on the next export
What's next?

Let's work together

I'm open to data analyst roles and freelance analytics work. Whether you have a question or just want to say hi, my inbox is always open.

Say hello