← Al Davies, 250 High Street

Copy a SharePoint list to another site with its data

The "From existing list" option copies columns and views but not the rows. To copy the data too, save the list as a template with Include Content, export to Excel and import it on the new site, or copy the items with a Power Automate flow.

Microsoft's page says: "the actual content of the original list isn't copied." Start with the smallest list and the simplest way.

Menu and action names in Microsoft 365 change from time to time. The exact names may differ on your screen. The Microsoft pages behind each step are listed at the end.

What "copy a list" really copies

If you try the new-list option, you see the columns appear, and then find an empty list. That is how it is built to work.

Microsoft's page on creating a list from another list says: "the entire list structure is copied, including views, formatting, and columns." It also sets two limits: "You can't create a new list from an existing list that has more than 80 list views." And: "Lists that contain automated rules will only include the first two rules in the new list." So check your views and rules before you start.

Microsoft's page on list templates adds: "List templates can be used only on the same type of site or workspace from which they were created." Copying the structure is still useful. It gives you the same columns on the new site. Then you only need to fill it with rows.

The four ways side by side

Our advice, not a Microsoft rule: the effort ratings are my own judgment.

What you see on screen in Way 1: the Save as Template page has a box labeled Include Content. If it is ticked, the rows go into the template.

Pick a way

Before you start

  1. Write down the row count of the source list.
  2. Make a copy of the data first. See "How to back up a SharePoint list before someone wrecks it".
  3. Check that you can create lists on the new site. If you cannot, ask the site owner.
  4. Make a note of the columns that hold people, choices with several values, and attachments. These are the columns that cause trouble.
  5. Plan for permissions. A copied list does not bring over who can see what. Set that on the new site yourself.

Way 1. Save the list as a template with content

A template stores the columns, formulas and formatting. It can also store the rows. Microsoft's page says: "A template saves fields, formulas, and formatting, and optionally, data as well." To keep the rows, tick the Include Content box on the Save as Template page.

Steps:

  1. On the source list, open the list settings and choose Save list as template.
  2. Give the template a name and file name.
  3. Tick Include Content.
  4. Save it, then go to the template gallery.
  5. On the new site, create a list from that template.

Know the limits. Microsoft states: "The default limit when saving a list template with data is 50 MB." The page also says that if you do not see the option, your SharePoint admin may have turned off custom scripts, and that "SharePoint group-connected team sites currently don't support list templates." The template also does not carry security settings, and a calendar overlay needs to be added again by hand.

If the option is missing, do not try to change admin settings yourself. Ask your admin, or use Way 2.

Way 2. Export to Excel, then create the list from the file

This works well for a one-time move of a plain list.

Steps:

  1. Open the source list. Use a view that shows all the rows you want, because the export follows the view you have open.
  2. On the command bar, choose Export, then Export to Excel. For a file that is not linked to the list, choose Export to CSV. Microsoft notes that the CSV limit is 30,000 rows.
  3. Open the file. Check that the row count matches your note.
  4. Make sure the data sits in an Excel table. Microsoft's page says: "If the spreadsheet you are importing doesn't have table, follow the prompts on the screen to create a table in Excel."
  5. On the new site, create a list from the Excel file, pick the table, and choose the columns to bring in.

Microsoft states: "You can use tables with up to 5,000 rows to create a list." For a list that already exists on the new site, see "Add Excel rows to a SharePoint list you already have". If the export itself fails, see "SharePoint list export to Excel fails or misses rows".

What can go wrong: the import guesses column types from the sheet. A choice column may become plain text. A people column may become text. Check each column after the import and fix the type before you share the list. Attachments do not come along in an Excel file.

Way 3. Copy and paste in grid view

For a short list, this is the fastest way. Create the new list from the existing list so the columns match (see the first section). Then:

  1. Open the source list and choose Edit in grid view.
  2. Select the cells you want and copy them.
  3. Open the new list in grid view and paste into the first blank row.

Microsoft's page says: "Make sure all values match their column type." It also says: "You can't attach a file to a list item in Edit in grid view.". The page does not give a maximum number of rows you can paste at once, so paste in batches of a few dozen and check each batch.

Way 4. Copy items with a Power Automate flow

Use a flow when the list is large, when you must repeat the copy, or when other ways fail. Microsoft's connector page lists the actions you need. It describes Get items as "Gets items from a SharePoint list." and Create item as "Creates a new item in a SharePoint list."

One way to start:

  1. Open https://make.powerautomate.com and create an instant cloud flow with a manual trigger.
  2. Add the SharePoint action Get items. Choose the source site and list.
  3. Open Advanced options and set Top Count to a number above your row count, up to 5,000. Microsoft's page says: "The default item limit is 100." It also says: "If you are using the default options, and simply specifying the site address and list or library name, Power Automate returns 100 items from the list or library." Without Top Count you copy only 100 rows.
  4. Open the action's Settings and turn Pagination on. Microsoft says that on lists over 5,000 items a filter query can return no records, and the fix is to "enable Pagination on Get items from the action settings menu". Set the threshold to at least your row count. Microsoft also says: "If you go beyond 5,000 item limit, Power Automate fails and generates an error dialog." For lists that large, copy in slices with a Filter Query on a date or ID range. See "Power Automate Get items stops at 100 rows: how to get them all".
  5. Add Apply to each over the Get items output.
  6. Inside the loop, add Create item. Pick the new site and list.
  7. Map each field. Fill the Title column first. Title is required by default in a new list, so Create item fails without it. If your source list uses Title for something else, you can rename the column or turn off Require in column settings.
  8. Run the flow on five rows first. Open the new list and compare the values to the source.
  9. Then run the full copy.

Special columns:

Add a Compose step that counts the items you copied. At the end, compare the count to your note.

Check the copy

  1. Compare row counts between the lists.
  2. Open ten rows picked at random and compare every field.
  3. Check people, dates and choices in particular.
  4. Rebuild lookups, views you need, and permissions.
  5. Keep the old list, read-only if you can, for a few weeks.

What to avoid

When to get help

You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.

Tell me what's still manual

I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.

See trackers I built: Tools I built

FAQ

Copy a SharePoint list with content to another site?

Save the list as a template with Include Content ticked, then create a list from it on the new site. Microsoft's page notes the default limit with data is 50 MB and that group-connected team sites do not support list templates.

Copy list items to another site?

Use a Power Automate flow with Get items and Create item, or export to Excel and create a list from the table, which Microsoft limits to 5,000 rows.

Why is my copied list empty?

The "From existing list" option copies structure only. Microsoft's page says the content of the original list isn't copied.

Why can I not save my list as a template with content?

Microsoft's page gives three reasons: the default limit with data is 50 MB, custom scripts may be turned off by your admin, and group-connected team sites do not support list templates.

Does the copy keep who can see each item?

No. Microsoft's page says saving a template does not save security settings. Set permissions on the new list yourself.

My flow copied only 100 rows. Why?

Get items returns 100 items by default. Set Top Count in Advanced options and turn Pagination on in the action's Settings.

Sources