The Scenario
It's the first week of the quarter and you're building the LP update deck. You need an Excel workbook with every one of your 340 portfolio companies — ARR, stage, assigned partner, last-touch date — to feed the dashboard charts and the table your LP coordinator pastes into the slide template.
The bad version:
- Export the Affinity portfolio list to CSV — discover the export doesn't include your custom fields like ARR or Stage, just the base entity data.
- Manually open each company record, copy the custom field values, and paste them into the workbook one row at a time. You're 40 rows in after 25 minutes.
- Realize the stage values use slightly different labels than what's in the workbook from last quarter and spend another 20 minutes normalizing the text before the charts will render correctly.
The LP update goes out next Friday. Three hours on data extraction is three hours you're not spending on the commentary that actually matters.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Excel workbook. It reads your workbook, understands the structure, and through its built-in Affinity integration it can pull list data — including custom fields — directly into your columns. No field ID lookups, no CSV patching.
Export every company on my Affinity pipeline list with their list entry fields and creation dates into columns A through H in this workbook, one company per row starting at row 2
What You Get
- One row per portfolio company starting at row 2.
- Columns populated: company name in A, ARR in B, stage in C, assigned partner in D, last-touch date in E, creation date in F.
- Custom field values pulled directly from Affinity's list entry data — not just the base entity fields.
- Any company missing a custom field value gets a blank cell rather than an error, so your chart references don't break.
What If the Data Is Not Quite Ready
The stage labels in Affinity don't match what your workbook expects
Pull all companies from my Affinity portfolio list into this workbook and remap the stage values as follows: "Active" → "Portfolio", "Exited" → "Realized", "Written Off" → "Written Off" — keep any unlisted stage values as-is
Some companies are missing ARR values in Affinity
Pull all companies from my Affinity portfolio list and put them in this workbook. For any company where ARR is blank, put "TBD" in column B instead of leaving it empty
You need to join data from two different Affinity lists
Pull companies from my 'Portfolio — Active' list in Affinity into this workbook starting at row 2, then pull companies from my 'Portfolio — Watch List' list into rows below that, adding a column that labels which list each company came from
Full kill-chain: normalize stage labels, fill missing ARR, flag incomplete rows, then write to the workbook
Pull all companies from my Affinity portfolio list into this workbook. Remap stage values to the standard labels in row 1. Replace blank ARR values with 0. Add a "Complete" column that marks TRUE if both ARR and stage are populated. Sort by ARR descending before writing.
The pattern is to ask for the cleanup and the pull in the same prompt — SheetXAI handles the conditional logic before writing a single row.
Try It
Get the 7-day free trial of SheetXAI and open your LP dashboard workbook, then ask it to pull your Affinity portfolio companies with the custom fields you need. If you're also tracking deal activity, see Export Open Opportunities From Affinity Into an Excel workbook or the full Affinity integration overview.
