Get contacts listed across for your CRM
Turn a one-row-per-contact list into one row per company, with each contact numbered across. Built for CRM imports that want contacts side by side.
By Operelio team
On this page5
The problem: your CRM wants one row per company
Most contact exports are long: one row per contact, with the company name repeated on every row. Fifty contacts at the same company means fifty rows. That's the right shape for most tools, but some CRM import templates want the opposite: one row per company, with the contacts listed across as numbered columns like Contact 1 name, Contact 1 phone, Contact 2 name, Contact 2 phone.
Rebuilding that layout by hand means sorting by company, copying each contact's details into new columns, and keeping track of which contact goes in which slot. For a few companies it's tedious. For a few hundred it's an afternoon, and one missed paste puts a contact on the wrong company's row.
The Group across mode on the Transpose / Unpivot tool builds this layout in one run.
How Group across works
You pick two things. The group column is the column whose repeated values define a group; every row that shares a value lands on the same output row. The repeating columns are the fields that vary per row, like the contact's name, phone, and email. Each row in a group becomes one numbered set in the output, in the order you picked the fields.
Nothing about the mode is specific to contacts. Group by an order number to put line items across. Group by a student to put test scores across. Group by a property to put tenants across. The example below uses contacts because CRM imports are the most common reason to need this shape.
Columns that are neither the group column nor repeating (a Website or Industry column that's the same on every row of a company) ride along from each group's first row by default. A toggle leaves them out if you only want the group column and the numbered sets.
| Before: one row per contact | After: one row per company |
|---|---|
| Company · Contact name · Phone | Company · Contact name 1 · Phone 1 · Contact name 2 · Phone 2 |
| Meridian · David Garcia · +44 20 7946 0101 | Meridian · David Garcia · +44 20 7946 0101 · Wei Chen · +44 20 7946 0102 |
| Meridian · Wei Chen · +44 20 7946 0102 | Lumen Labs · Karen Wilson · +44 20 7946 0103 · (blank) · (blank) |
| Lumen Labs · Karen Wilson · +44 20 7946 0103 |
How to do it
Six steps from a long contact list to a CRM-ready layout.
Open the Transpose / Unpivot tool and upload your file
Drag and drop your CSV or Excel contact list. Operelio reads the columns and shows a file summary above the mode toggle.
Pick Group across
It's the third mode tab, next to Transpose and Unpivot. Group across requires Pro, Team, or Agency; on Free it shows a Pro chip.
Pick the group column
The column whose repeated values define a group. For a contact list, that's the Company column. One output row per distinct value.
Pick the repeating columns, in order
The fields that repeat per contact: name, phone, email. The order you pick them is the order inside each numbered set, so picking Name then Phone produces Name 1, Phone 1, Name 2, Phone 2.
Decide what the other columns do
Leave the toggle on to bring the remaining columns along from each company's first row, or turn it off to keep only the company column and the numbered sets.
Check the preview, then run
The preview shows the before and after shape, how many sets the widest group needs, and a heads-up if any group is over the cap. Click Group data across, then download the result from the results page.
Which contact becomes contact 1, and other rules
The mode is deterministic, so the same file always produces the same output. Companies appear in the order they first show up in your file, not alphabetically. Within a company, contacts number in file order: the first row in the file for that company becomes contact 1, the next becomes contact 2, and so on. If contact 1 should be the primary contact, sort your file that way before running.
Sets cap at 50 per row, so the output can't grow unreasonably wide. A company with more rows than that keeps its first 50, and the results page tells you how many rows were left out.
Rows with a blank company cell aren't dropped. They group together into one row with an empty company cell, and the results page flags how many there were so you can fix the source data if that matters.
Groups with fewer contacts than the widest one get blank cells in their unused sets. The results page counts those padded cells, so blank cells in the output are expected, not a bug.
Frequently asked questions
Which contact becomes contact 1?
The first row in your file for that company. Contacts number in file order within each company, so sort your file before running if a particular contact should be first.
What happens if a company has more than 50 contacts?
The first 50 rows for that company are kept and the rest are left out. The results page tells you how many groups were over the cap and how many rows were not included.
What happens to rows with a blank company cell?
They group together into one output row with an empty company cell, and the results page flags how many rows landed there. Nothing is silently dropped.
Does this only work for contacts?
No. The mode is generic: group by any column and lay any repeating fields across. Order line items, student test scores, property tenants, anything where several rows share a key and you want one row per key.
Can I undo it?
Your original file is never modified, so you can always go back to it. The Unpivot mode on the same tool converts a grouped-across layout back into one row per record.
What plan do I need?
Group across requires Pro, Team, or Agency. Transpose mode on the same tool is free on every plan.
Ready to get started?
Upload a file and run your first transformation. Free, no credit card required.