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.
- Select the column you want to move.
- 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.
- 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.
- 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.
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
- Select the entire column by clicking on the column header.
- 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.
- 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.
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:
- Drag several columns using the mouse (in my opinion, this is the fastest way).
- Cut and paste each column individually (probably not the best approach if you have to move a lot of columns).
- Copy, paste and delete (allows moving several adjacent columns at a time).
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:
- 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.
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".
- Copy selected columns by pressing Ctrl + C or right click the columns and choose Copy.
- 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.
- 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:
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:
Or, drag-and-drop the columns on the pane with your mouse. Both methods work for adjacent and 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:
And finally, a couple of nice bonuses:
- Click this icon to auto fit the width of the selected columns.
- 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
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!
Thanks for your guideline
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.
Thanks for your help!
Thanks for drag and drop.
Works with finite columns and finite rows but not for entire selection.
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).
Thanks so much -- exactly what I needed, and very simple, too!
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 support@ablebits.com. Please include a link to this blog post and your comment number.
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.
Thanks a lot the drag and drop helped.
Thanks so much!
Thanks so much for the help.
Thnxx... Help me a lot..!!!
thank you so much! this will save me a lot of time!
The Drag & Drop solution is detailed good to quickly catch up.
THanks
SS JEYakumar
Thanks a lot! Drag-and-drop worked.
how to get next column values from another sheet while drag?
Hello Joel,
If you want to avoid getting an empty column in the place of the moved one, then you can either use the cut-and-paste option described in the blog post:
https://www.ablebits.com/office-addins-blog/swap-excel-columns/#move-columns-cutpaste
Or work with Column Manager:
https://www.ablebits.com/office-addins-blog/swap-excel-columns/#column-manager
Thanks, very helpful! :)
very much useful data. Thanks a lot
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.