A project manager I worked with kept all active projects in an Excel workbook and wanted a desktop flow to loop through the project names, one by one, to create a folder for each. The rest of the workbook didn’t matter, only the Project Name column. That’s a common need in Power Automate Desktop: take one column out of a worksheet and turn it into a list you can loop through.
In this tutorial, I’ll show you two ways to do it. The first reads the sheet into a data table and pulls out the column. The second copies the cells to the clipboard and splits them into a list. I’ll also show you how to get only the first or the last few rows.
Quick answer: Read the worksheet with Read from Excel worksheet (with First line of range contains column names turned on), then use Retrieve data table column into list with the column name, such as Project Name. The result is a list variable called ColumnAsList. Use %ColumnAsList[0:10]% for the first 10 items or %ColumnAsList[ColumnAsList.Count - 5:]% for the last 5.
The example workbook
The workbook, Project Details 2026, is formatted as an Excel table with five columns: Project Name, Project Start Date, Project Budget, Project Code and Associated Company. Row 1 holds the headers, and the projects start in row 2.

Save the workbook in a local folder while you build the flow. Excel actions in Power Automate Desktop don’t work reliably with files inside a OneDrive or SharePoint sync folder.
Method 1: Read the sheet and retrieve the column (recommended)
This method doesn’t touch the clipboard, so nothing else on the PC can interfere with it, and it handles any number of rows.
Start with Launch Excel, set to and open the following document, and choose the workbook in Document path. The action produces the ExcelInstance variable that the other Excel actions use.

Next, add Read from Excel worksheet. Set Retrieve to All available values from worksheet, expand Advanced, and turn on First line of range contains column names. The data goes into a data table variable, ExcelData, with the headers as column names.
Now add Retrieve data table column into list, which you’ll find under Variables > Data table. Set the data table to %ExcelData% and Column name or index to Project Name (or 0, the index of the first column). The action creates a list variable called ColumnAsList with every project name, in order.
Finish with Close Excel, set to Do not save document. When you run the flow, open ColumnAsList in the Flow variables pane to see the project names, starting at index 0.
Get only the first or last rows
Lists support slicing, so you don’t need a special action to take part of the column. The number after the colon isn’t included:
| You want | Expression |
|---|---|
| The first 10 names | %ColumnAsList[0:10]% |
| The last 5 names | %ColumnAsList[ColumnAsList.Count - 5:]% |
| Everything except the first name | %ColumnAsList[1:]% |
| The number of names | %ColumnAsList.Count% |
Put the expression in a Set variable action, or use it directly as the Value to iterate of a For each loop.
Method 2: Copy the cells and split them into a list
This is the method many older tutorials use, and it’s still handy when you want exactly the cells you’d select by hand. It works by copying the cells to the clipboard and splitting the copied text at each line break.
Step 1: Open the workbook
Add Launch Excel exactly as in Method 1.
Step 2: Select the cells
Add Select cells in Excel worksheet and set Select to Range of cells. The Project Name column is column 1, and the projects start in row 2, because row 1 holds the header. Excel actions count rows and columns from 1, not 0.

The screenshot selects rows 2 to 10, which is nine projects. For the first ten projects, set End row to 11.
Step 3: Copy the cells and read the clipboard
Add Copy cells from Excel worksheet with Copy mode set to Values from selection. Then add Get clipboard text, which stores what was copied in a variable called ClipboardText.


Step 4: Split the text into a list
Add Split text. Set Text to split to %ClipboardText%, Delimiter type to Standard, and Standard delimiter to New line. I renamed the output variable to ProjectNamesList.

Then close the workbook with Close Excel, set to Do not save document:

If you want the list under a friendlier name, a Set variable action can copy it into a new variable, such as ProjectNames:

Run the flow and open the variable in the Flow variables pane. Each project name is a separate item in the list:

Excel adds a line break after the last copied cell, so the list sometimes ends with an empty item. If yours does, remove it with Remove item from list, or check for empty values in your loop.
Get the last 5 values with the clipboard method
The same approach can take the last few rows, as long as the flow knows where the data ends. This time, the workbook has 10 projects, in rows 2 to 11:

After Launch Excel, add Get first free column/row from Excel worksheet. It returns FirstFreeRow, the first empty row, which is 12 here.

The last five projects are in rows 7 to 11, so the start row is %FirstFreeRow - 5% and the end row is %FirstFreeRow - 1%. You don’t need to read the whole sheet or count rows for this. The original version of this flow read the sheet first and calculated the start row from %ColumnData.RowsCount%, which is shown below; it works, but the free-row formula is simpler and easier to check.


Add Select cells in Excel worksheet with Start row set to your start row and End row set to %FirstFreeRow - 1%, keeping column 1 for both the start and end column:

Then copy, read the clipboard, split the text, and close Excel, exactly as before:




The result is a list with the five most recent projects, starting with Remote Work Enablement:

Which method should you use?
For most flows, I use Method 1. It reads the data directly, doesn’t depend on the clipboard, and slicing makes it easy to take any part of the column. The clipboard method is worth keeping for quick, one-off flows, or when you need exactly the cells a person would select, but avoid it on machines where people are working at the same time, because anything they copy during the run ends up in your list.
One more tip: the Create new list action creates an empty list. It’s useful when you want to build a list yourself with Add item to list, but it won’t read values from Excel.
These tutorials cover more Excel and list actions in Power Automate Desktop:
- Extract Data from an Excel using Power Automate Desktop
- How to Get Values from Data Table using Power Automate Desktop?
- Insert Row into Data Table in Power Automate Desktop
- How to Count Rows & Columns in SpreadSheet by Power Automate Desktop?
- Insert Column and Row into Excel Worksheet using Power Automate Desktop
- Variables in Power Automate Desktop
Frequently Asked Questions
How do I get a column from Excel as a list in Power Automate Desktop?
Read the sheet with Read from Excel worksheet, with First line of range contains column names turned on, then use Retrieve data table column into list with the column name. The result is stored in ColumnAsList.
Do Excel actions start counting at 0 or 1?
Excel actions count rows and columns from 1, like Excel itself. Data tables and lists in Power Automate Desktop start at 0.
How do I get the last N rows of an Excel column?
Read the column into a list and use slicing, for example %ColumnAsList[ColumnAsList.Count – 5:]% for the last five items. With the clipboard method, select from row %FirstFreeRow – 5% to %FirstFreeRow – 1%.
Why does my list end with an empty item?
When you copy cells, Excel adds a line break after the last cell, so Split text can create an empty last item. Remove it with Remove item from list, or use the data table method instead.

I have worked with Microsoft technologies for more than 18 years, including SharePoint, Microsoft 365 and the Power Platform (Power Apps, Power Automate and Power BI), at companies like HP, TCS and KPIT. I started EnjoySharePoint in 2011 to share the solutions I build in real projects with readers in the United States, Canada, the United Kingdom, Australia, New Zealand and beyond. Microsoft has recognized this work with the Microsoft MVP award 13 times since 2014.