How to swap columns by dragging and other ways to move columns in Excel

In this article, you will learn a few methods to swap columns in Excel. You will see how to drag columns with a mouse and how to move a few non-contiguous columns at a time. The latter is often considered unfeasible, but in fact there's a tool that allows moving non-adjacent columns in Excel 365 - 2010 in a click.

If you extensively use Excel tables in your daily work, you know that whatever logical and well thought-out a table's structure is, you have to reorder the columns every now and then. For example, you might need to swap a couple of columns to view their data side-by-side. Of course, you can try to hide the neighboring columns for a while, however this is not always the best approach because you may need to see data in those columns as well.

Surprisingly, Microsoft Excel does not provide a straightforward way to perform this common operation. If you try to simply drag a column name, which appears to be the most obvious way to move columns, you might be confused to find that it does not work.

All in all, there are four possible ways to switch columns in Excel, namely:

How to drag columns in Excel

As already mentioned, dragging columns in Excel is a bit more complex procedure than one could expect. In fact, it's one of those cases that can be classified as "easier said than done". But maybe it's just my lack of sleight of hand ability :) Nevertheless, with some practice, I was able to get it to work, so you will definitely manage it too.

Suppose, you have a worksheet with information about your company's products and you want to quickly swap a couple of columns there. I will use the AbleBits price list for this example. What I want is to switch the "License type" and "Product ID" columns so that a product ID comes right after the product name.
A worksheet where you need to swap a couple of columns.

  1. Select the column you want to move.
  2. Hover the mouse pointer over the edge of the selection until it changes from a regular cross to a four-sided arrow. You'd better not do this anywhere around the column heading because the cursor can have too many different shapes in that area. But it works just fine on the right or left edge of the selected column, as shown in the screenshot.
    Hover the mouse pointer over the edge of the selected column until it turns into a four-sided arrow.
  3. Press and hold the Shift key, and then drag the column to a new location. You will see a faint "I" bar along the entire length of the column and a box indicating where the new column will be moved.
    Press and hold down the Shift key and drag the column to a new location.
  4. That's it! Release the mouse button, then leave the Shift key and find the column moved to a new position.

You can use the same technique to drag several columns in your Excel table. To select several columns, click the heading of the first column you need to move, press and hold Shift, and then click the heading of the last column. Then follow steps 2 - 4 above to move the columns, as shown in the screenshot.
Drag several columns in Excel using the mouse.

Note. It is not possible to drag non-adjacent columns and rows in Excel.

The drag and drop method works in Microsoft Excel 2016, 2013, 2010 and 2007 and can be used for moving rows as well. It might require some practice, but once mastered it could be a real time saver. Though, I guess the Microsoft Excel team will hardly ever win an award for the most user friendly interface on this feature :)

Swap Excel columns by cutting and pasting

If manipulating the mouse pointer is not your technique of choice, then you can change the columns order by cutting and pasting them. Please keep in mind that there're a few tricks here depending on whether you want to move a single column or several columns at a time:

How to move one column in Excel

  1. Select the entire column by clicking on the column header.
  2. Cut the selected column by pressing Ctlr + X, or right click the column and choose Cut from the context menu. You can actually skip step 1 and simply right click the column's heading to choose Cut.
  3. Select the column before which you want to insert the cut column, right click it and choose Insert Cut Cells from the pop-up menu.
    Select the column before which you want to insert the cut column and choose Insert Cut Cells from the pop-up menu.

If you are more comfortable with Excel shortcuts and keyboard, then you may like the following way to move columns in Excel:

  • Select any cell in the column and press Ctrl + Space to select the whole column.
  • Hit Ctrl + X to cut the column.
  • Select the column before which you what to paste the cut column.
  • Press Ctrl together with the Plus sign (+) on the numeric keypad to insert the column.

How to move several columns in Excel

The cut / paste method that works just fine for a single column does not allow switching several columns at a time. If you try to do this, you will end up with the following error: The command you chose cannot be performed with multiple selections.

To reorder a few columns in your worksheet, choose one of the following options:

Swap multiple columns by copying, pasting and deleting

If dragging columns with a mouse does not work for you for some reason, then you can try to re-arrange several columns in your Excel table is this way:

  1. Select the columns you want to switch (click the first column's heading, press Shift and then click the last column heading).

    An alternative way is to select only the headings of the columns to be moved and then press Ctrl + Space. This will select only cells with data rather than entire columns, as shown in the screenshot below.
    Selecting only cells with data rather than entire columns

    Note. If you are re-arranging columns in a range, either way will do. If you are to swap a few columns in an Excel table, then select the columns using the second way (cells with data only), otherwise you may get the error "The operation is not allowed. The operation is attempting to shift cells in a table of your worksheet".

  2. Copy selected columns by pressing Ctrl + C or right click the columns and choose Copy.
  3. Select the column before which you want to insert the copied columns and either right click it and choose Insert copies cells, or simultaneously press Ctrl and the plus sign (+) on the numeric keypad.
    Select the column before which you want to insert the copied columns and choose Insert copies cells.
  4. Delete the original columns.

Of course, this is a bit longer process compared to dragging columns, but it may work for those who prefer shortcuts to fiddling with the mouse. Regrettably, it does not work for non-contingent columns either.

Change the columns order in Excel using VBA

If you have some knowledge of VBA, you can try to write a macro that would automate moving columns in your Excel sheets. This is in theory. In practice, most likely you would end up spending more time on specifying which exactly columns to swap and defining their new placements than dragging the columns manually. Besides, there is no guarantee that the macro will always work as expected and each time you would need to verify the result anyways. All in all, a VBA macro does not seem to be well-suited for this task.

Re-arrange columns with Column Manager

If you are looking for a fast and reliable tool to switch columns in your Excel sheets, the Column Manager included with our Ultimate Suite is certainly worth your attention. It lets you change the order of columns on the fly, without manual copying / pasting or learning a handful of shortcuts.

With the Ultimate Suite installed in your Excel, click the Colum Manager button on the Ablebits Data tab, in the Manage group:
Column Manager for Excel

The Column Manager's pane will appear in the right side of the Excel window and displays a list of columns that are present in your active worksheet.

To move one or more columns, select them on the pane and click the Up or Down arrow on the toolbar. The former moves the selected columns to the left in your sheet, the latter to the right:
Moving columns in Excel

Or, drag-and-drop the columns on the pane with your mouse. Both methods work for adjacent and non-adjacent columns:
Dragging non-adjacent columns

All the manipulations that you do on the Colum Manager pane are simultaneously performed on your worksheet, which lets you visually see all the changes and have full control over the process.

Another truly wonderful feature is the ability to move a single column or multiple columns to the beginning (far left) or to the end (far right) of the table in a click:
Move columns to the end or to the beginning of the table.

And finally, a couple of nice bonuses:
Autofit column width - Click this icon to auto fit the width of the selected columns.

Insert a new column - Click this icon to insert a new column.

I have to admit that I really love this little smart add-in. Together with the other 70+ tools included in the Ultimate Suite, it makes common operations in Excel not only faster and easier, but actually enjoyable. Of course, you should not take my words for granted because I've got used to them and therefore am sort of biased :)

So, go ahead and download a trial version to see for yourself.

60 comments

  1. Absolutely helpful. I was struggling to find a way to swap columns on Excel!

  2. Mantul! this really helps me

  3. VERY USEFUL, THANKS.

  4. Thank you for this article! I was wondering if it could even be done! :D (jk) Keep up the good work!

  5. Thanks for this. I was copying and pasting the entire column like a rookie.

  6. Helpful hint, thank you. However your final picture showing results after dragging the column is showing the pre-move screenshot. Looking at the screenshots, nothing has happened.

  7. Thanks alot

  8. Thanks so much. In older versions it was alot easier to move the column. I have no idea why MS made it so hard. But, this works. I just have to remember how to do it when I need it.

  9. If you have a lot of columns to reorder, fastest way is to have a row at the top of your data with the order you want the columns in. Select the entire range (or section to be reordered), including your top row that you inserted, click on sort; in options, change from right to left instead of top to bottom, and sort by the row with the ordered numbers.

    • holy crap you are a life saver!

    • I agree with Molly! Wow that is SO easy! LOL I had so many columns to reorder and I was thinking how LONG it would take using ANY of the techniques listed in the article. Tried this and in less than maybe 1 minute, I had it all re-organized EXACTLY as I needed. Thank you so much Mimi!! Also, if you are in my shoes and needing to do this with multiple imports over time periods, you can easily save your 'top line' as a template to reuse multiple times. Just an amazing time-saver!

  10. Great!
    Excellent Guide.

  11. Nope! Doesn't work at all.

  12. "Moving a column" is not the same as *SWAPPING* 2 columns.

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)