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.



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

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

  4. 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.

  5. Thanks alot

  6. 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.

  7. 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!

  8. Great!
    Excellent Guide.

  9. Nope! Doesn't work at all.

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

  11. Thanks! This actually explained it better than Microsoft itself! Microsoft says to use the Ctrl key, when the Shift key is what's needed.

  12. Thank You!

  13. Same as question #27. I copy and paste from an external source into a new workbook several times a day. Can the re-ordering sequence be saved to that I do not need go through the whole process with each new workbook ? For this ability I will buy your program, otherwise I might as well keep dragging them manually.

  14. Thank you for publishing this!!

  15. Is it possible to move one column to another column in Pivot?? If possible, pls suggest steps..

  16. for Example
    4,5 coulam is merge but fornt coulam is unmerge same acetic lot of coulam,

    problem is that merge value and unmerge value is different how could i merge all coulam

    Thanks Arif

  17. how can put numbers orderly by dragging without mouse

  18. Great!, thanks!

  19. Thank you very much, that exactly what I was looking for.

  20. Hello,

    I was wondering if it were possible to drag and drop to the right instead of dropping down. I have a data table that follows columns on one sheet and a data table that follows rows on another sheet. I want to have the data from the column table appear on the rows table. I have been manually pressing = for each cell to connect to the reference cell. Once I had a few cells filled in, I tried to drag to the right in the hopes that it would follow the reference cells down the column on the other sheet, but no go... If you have any suggestions I would appreciate it. :)

  21. Hi, I want a corresponding column which follows after another to be arranged in the order of the previous column when I change it to 'Smallest to Largest' if that makes sense?

    Any help appreciated cheers

  22. This is such a great help!

  23. In a typical table is there another option to hide/unhide columns?

    For example, can I define a view with columns I want shown, name the view(s), then select views I have defined?

    Would be easier when you have multiple views; just click the "view name" and there you have it. rjm

  24. Cool, but is it possible to save the column shift routine to redo the same process every now on then on similar workbooks without having to manually move all the columns?

  25. While performing the function, a dialogue box appears saying:
    Do you want to replace the contents of the destination cells?

    Could you help me in this regard?

    • Hello Nimish,

      This may happen if you hold down CTRL when pointing to the border of the column. Dragging the column while holding the CTRL key copies the selected column(s) to another location. To move the column, be sure to hold SHIFT while dragging the column.

  26. Thanks for useful information.


  27. Very helpful, Thank you!

  28. Hi,
    How about moving columns in groups (column wise) or next to a particular column using formula? Can it be done that way?
    Thank you so much in advance.

  29. Oh, thank you! That worked perfectly.

  30. Thanks a lot drag & drop works nicely for me :)

  31. Thank you so much. I should have checked here first. Your advice is clear and simple. Exactly as it should be. I appreciate your work!

  32. Thanks for your guideline

  33. I really appreciate your work! Actually, I'm a visually impaired person and I regularly use Computer in all my professional as well as in personal tasks. I thank you for providing the shortcut keys for keyboard users like me to perform swap columns commands in excel with keyboard.

  34. Thanks for your help!

  35. Thanks for drag and drop.
    Works with finite columns and finite rows but not for entire selection.

  36. Doesn't work in a table. Convert it to a range first.

    • >> Doesn't work in a table. Convert it to a range first.
      I found that limitation too. But, if there is no other content above or below the table, you can just select and manipulate the ENTIRE COLUMN (not just the segment that lies within the Table).

  37. Thanks so much -- exactly what I needed, and very simple, too!

  38. I would like column arranged according to the values of another column in exel sheet

    • Hello,

      Could you please describe your task in more detail? If possible, send a sample spreadsheet with the data and the expected results to Please include a link to this blog post and your comment number.

  39. I want to no how can we move only selection row...?

    • Hello Abdul,

      You can move the selection or the selected row the same way: point to the border of the selection until it looks like a 4-sided arrow, and drag it to the necessary place in your worksheet.

  40. Thanks a lot the drag and drop helped.

  41. Thanks so much!

  42. Thanks so much for the help.

  43. Thnxx... Help me a lot..!!!

  44. thank you so much! this will save me a lot of time!

  45. The Drag & Drop solution is detailed good to quickly catch up.

    SS JEYakumar

  46. Thanks a lot! Drag-and-drop worked.

  47. how to get next column values from another sheet while drag?

  48. Thanks, very helpful! :)

  49. very much useful data. Thanks a lot

  50. Mega fail. Just use a SHIFT key while dragging a fully selected column(s).

    • Hi Olin,

      Dragging a selected column(s) with the SHIFT key is one of the options, maybe the fastest one. The aim of this article was to cover _all_ possible ways.

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 :)