说起来这个,Excel 里头要换两列,听着简单吧?哎呦喂,里头的门道,踩过的坑,没经历过的人真不知道那种心累。就为了把 A 列和 B 列的位置颠倒一下,你说我费了多少脑细胞,走了多少弯路?尤其是刚开始接触数据处理那会儿,简直是噩梦。
最直观、最暴力的方法是什么?当然是复制、粘贴呗!你想,把 A 列全选了,Ctrl+C,跑到 B 列这儿,Ctrl+V。把 B 列全选了,Ctrl+C,再跑回 A 列原先的位置,Ctrl+V。听着挺顺理成章?大错特错!你一粘贴到 B 列,原先 B 列的数据直接就没了,盖得干干净净。等你想把 B 列(现在已经没影儿了)的数据复制回来?傻眼了吧,找不着了!那叫一个心惊胆战!手一抖,一天的活儿可能就白干。所以啊,这种简单粗暴的复制粘贴法,但凡这两列数据对你还有点用,就千万别直接这么来。那是自掘坟墓。除非你明确知道其中一列数据压根不要了,只想用另一列去替换它,那另说。但咱们说的是交换,是要让它们俩互换位置,谁也不能少。
那怎么搞呢?稍微聪明一点,但依然笨拙的法子来了:插入辅助列。你不是怕覆盖吗?好,我在 A 列和 B 列中间,或者旁边,随便哪儿,插入一列或两列空白列。记住是插入一整列啊,不是只插入一个单元格。选中列头,右键,插入。嘿,表格里多了一条缝。现在好了,把 A 列的数据,复制或者剪切(用剪切稍微安全点,起码知道原位置空了),粘贴到你刚插入的那个临时列里头。A 列是不是空了?或者数据已经跑到一边去了?接着,把 B 列的数据,整个剪切(强烈推荐剪切!),然后粘贴到原先 A 列的位置。看!B 列的内容跑 A 列去了,而 B 列自己空了。最后一步,把你存在临时列里的 A 列数据,剪切回来,粘贴到原先 B 列的位置。大功告成!别忘了,把那个完成使命的临时列给删除掉。右键列头,删除。
这方法怎么样?安全!每一步都在数据还在的前提下操作,有惊无险。但你想想,如果你的表格有几百行几千行,甚至几万行,你鼠标点来点去,复制、粘贴、剪切、插入、删除,这来来回回得多少次?这感觉,就像让你用勺子把一个游泳池的水舀到另一个游泳池,效率低不说,枯燥乏味,眼睛都看花了,还容易出错,比如选错范围了,复制漏行了,粘贴错位置了。这哪里是办公啊,这是修行!尤其当你着急要这份数据去汇报的时候,磨磨蹭蹭半天就为了交换两列,领导在旁边看着,你心里那个急啊,手上的汗都能把键盘给淹了。
难道就没有更优雅、更快捷的办法吗?当然有!而且就在你眼皮子底下,很多人不知道而已。这方法,一旦学会,你会觉得前头那些都是啥鬼玩意儿。这是一个利用鼠标拖拽结合Shift 键的技巧。听好了,秘诀就在那个 Shift 键!记住!
具体怎么操作呢?首先,选中你想移动的那一列,注意是选中整个列,点击列头上那个字母就行。比如你想把 B 列移到 A 列前面,变成 A 列。好,选中 B 列。鼠标指针会变成一个粗粗的十字或者箭头。关键来了:按住键盘上的 Shift 键!别松手!然后用鼠标左键点住 B 列的列头,你会看到鼠标指针旁边多了一个小方块或者虚线框,表示你正在拖动选定的东西。现在,拖拽着这一列,慢慢移动鼠标。注意看表格,当你拖拽到 A 列的左边、或者 A 列和 B 列中间那条竖线的时候,你会看到一条粗粗的绿色竖线出现了!这条绿线就是告诉你,你如果在这里松手,整列数据就会插入到这个位置。就是它了!当绿线出现在你想插入的位置时(比如 A 列的左侧,也就是最开头的位置),保持 Shift 键按着,松开鼠标左键!
奇迹发生了!整列 B 列的数据,连带着它的格式、公式等等,整体移动到了 A 列的前面,而原先的 A 列和它右边的所有列都自动往后挪了一格,干干净净,一步到位!没有覆盖,没有残留,没有烦人的复制粘贴,更没有临时列的麻烦。简直是丝滑无比!
你可能要交换的是 A 和 B,那就先选中 B 列,按住 Shift,拖拽到 A 列左边。如果想把 A 和 B 换过来,那就选中 A 列,按住 Shift,拖拽到 B 列右边(也就是原先 C 列的位置,这样原先的 B 列就会自动左移到 A 的位置)。灵活运用,原理都是一样的:选中一列,按住 Shift,拖拽到目标列的旁边,看到绿线出现时松手。这个方法,尤其适合交换相邻的两列或者将某一列移动到较近的位置,简直是Excel基础操作里的“葵花宝典”,用好了能省不少事儿。
那如果我要交换的不是相邻的两列呢?比如我要交换 A 列和 F 列?用 Shift 键拖拽当然也可以,你把 A 列拖拽到 F 列旁边,再把 F 列拖拽到原先 A 列的位置。但这中间隔着 B、C、D、E 四列,拖拽的过程中可能会有点长,而且数据量特别大的时候,拖拽可能会有点卡顿。而且来回拖拽两次,虽然比复制粘贴插入删除简单,但还是两步操作。
这时候,稍微进阶一点的选手可能就会想到宏或者 VBA 了。这玩意儿听着挺高大上,其实就是一段小程序,告诉 Excel “你给我把这列和那列的位置换一下”。对于那种需要频繁交换某些列数据,或者处理固定格式的大量表格的情况,写个宏一劳永快,点一下按钮,瞬间完成。比如你可以写个简单的VBA代码,指定列号,让它们的位置互换。
```vba Sub SwapColumns() ' 假设要交换第 1 列 (A) 和 第 2 列 (B) Dim col1 As Long Dim col2 As Long
col1 = 1 ' 第一个列号
col2 = 2 ' 第二个列号
' 检查列号是否有效,等等... (这里简化)
' 剪切第一列
Columns(col1).Cut
' 插入到第二列的左边,完成交换
Columns(col2).Insert Shift:=xlToRight
' 注意:这里可能会有坑,比如如果 col1 > col2,插入位置需要调整
' 更稳健的代码会先复制到临时区域,或者判断 col1 和 col2 的大小关系再操作
' 比如先移动靠右的列,再移动靠左的列
' 举个更通用的交换 A列和 B列的例子 (无论 A, B 谁在前谁后)
' Dim rng1 As Range, rng2 As Range
' Set rng1 = Columns("A")
' Set rng2 = Columns("B")
' rng2.Cut
' rng1.Insert Shift:=xlToRight
' (这段需要调整以处理原A列的位置,可能需要先保存A列到临时区域)
' 最简单的理解方法:
' 比如交换 B列(2) 和 D列(4)
' 先把 D列 剪切 (Columns(4).Cut)
' 然后插入到 B列的左边 (Columns(2).Insert Shift:=xlToRight)
' 这样原先 B C D 的顺序会变成 D B C,达到了 D 和 B 换位的目的
' 但这只适用于把靠右的列换到靠左列的左边。
' 如果是把靠左列换到靠右列,比如 A列(1) 换到 D列(4)
' 把 A列 剪切 (Columns(1).Cut)
' 然后插入到 D列的右边 (Columns(4).Insert Shift:=xlToRight)
' A列就被插入到了原先 D列右边,比如原先 A B C D,剪切 A 后 B C D,在 D 右边插入 A,变成 B C D A
' 这也不是交换啊!所以 VBA 交换列的逻辑稍微复杂点
' 通常做法是:把其中一列复制到一个全新的、空的Sheet或者临时区域。
' 然后把另一列剪切到第一个列的位置。
' 最后把临时区域的列剪切回第二个列的原位置。
' 或者用数组在内存里操作,更高级。
' 对于简单交换相邻两列,上面的 Cut + Insert 配合判断左右关系是可行的
' 比如交换 ColA 和 ColB
' If ColA < ColB Then
' Columns(ColB).Cut
' Columns(ColA).Insert Shift:=xlToRight
' Else ' ColA > ColB
' Columns(ColA).Cut
' Columns(ColB).Insert Shift:=xlToRight
' End If
' 这段 VBa 就是个例子,说明用代码可以实现,但比 Shift 拖拽复杂得多,
' 一般人不用去死磕代码,知道有这个方法就行。
End Sub ``` 你看,连写段VBA都需要考虑好几种情况,所以对于绝大多数人、绝大多数交换两列的需求,Shift 键拖拽法绝对是性价比最高的选择:操作简单,不容易出错,速度快,而且是Excel自带的功能,不需要装任何插件。
当然,还有些额外情况得考虑。你的数据有没有格式?单元格里是纯数据还是包含公式?如果只是简单的纯数据交换,上面说的三种方法(除了第一个暴力法)都没问题。但如果涉及到公式,尤其是相对引用和绝对引用,剪切粘贴或者拖拽可能会改变公式的计算结果,因为它改变了单元格的相对位置。这时候可能需要更小心,比如复制过来后选择性粘贴,只粘贴数值,或者粘贴时保留源格式。或者在VBA里处理公式。但这些都是更深入的数据处理范畴了,对于仅仅交换两列位置的基础需求,掌握 Shift 键拖拽法,已经能解决你日常办公中 90% 的问题了。
所以下次再遇到需要在 Excel 里交换两列数据的情况,别傻乎乎地复制粘贴了,更别苦哈哈地插入删除辅助列了。试试按住 Shift,拖拽你的鼠标。你会回来感谢我的。那种“原来可以这么简单!”的顿悟感,简直能点亮你一整天的好心情。对付 Excel 里的这些小妖小怪,有时候靠的真不是蛮力,而是那么一点点的小技巧,一个被人忽略的按键。记住,Shift 键!它就是你的救星!用起来!
【怎么交换excel两列数据】相关文章:
把CAD图塞进Excel?这问题,听着就有点拧巴。12-05
excel怎么输入时间格式12-05
Excel表格只读模式,这烦人的家伙!到底怎么才能摆脱它?12-05
series在excel里面怎么用12-05
excel成绩名次怎么做12-05
excel指数函数怎么输入12-05
怎么交换excel两列数据12-05
excel打印太小怎么办12-05
excel表格怎么导成图片12-05
excel表格很卡怎么办12-05
excel格式刷怎么连续用12-05
excel怎么制作请假条12-05
新电脑怎么找excel表格12-05