今天这位朋友询问道:在Excel中如何批量实现每相邻两行之间的互换位置?
问题原形模拟图如下图所示:
下图左图中的数据有一定的规律,即一行显示文字,一行显示文字的拼音,文字行在上,拼音行在下,现在我们想要批量快速实现的效果是:拼音行位置在上,文字行位置在下,即批量实现每相邻两行数据之间的快速互换,实现下图右图的效果。
当小编听到这个问题时,同样给我的感觉也是无从下手,大脑短路,好像并没有什么好的思路。首先想到的是不是可以用VBA代码来解决,但是从网上查阅了大量的资料,并没有相关的问题模型解释。功夫不负有心人,小编终于摸索出了解决的方案,采用的方法是用【辅助列+自定义排序法】轻松的解决了这个看似棘手的问题。
思路步骤1|添加序号列
首先我们在E列加一列辅助列,将E1单元格命名为“辅助列1”,然后在E2:E7单元格填充一列顺序序号。在E2单元格输入数字1,选中E2单元格右下角向下拖动填充,选择“填充序列”选项即可完成。如下图所示:
思路步骤2|序号的每两行互换
我们在F列再加一个辅助列,我们将F1单元格命名为“辅助列2”.
在F2单元格输入公式:
=IF(ISEVEN(E2),E2-1,E2+1)
下拉填充公式后,即可实现E列的序号每相邻两行内容快速互换。
ISEVEN函数在Excel中是判断该单元格数字是否为偶数的函数,如果为偶数,则返回TRUE,非偶数即返回FALSE。
这个IF+ISEVEN嵌套函数的整体含义是:
(如果IF)E2单元格的数字判断为(偶数ISEVEN),返回的结果为E2-1,否则,返回的结果为E2+1。(这是IF函数最简单的逻辑关系)
思路步骤3|合并序号至一个单元格并用逗号隔开
我们在F列继续加辅助列,我们将G1单元格命名为“辅助列3”。
在G2单元格输入函数公式:
=TEXTJOIN(",",1,F2:F7)
即可快速将F列序号快速合并到G2单元格内,并且数字之间用逗号进行了间隔。
Textjoin函数基本语法:
Textjoin函数可将字符串、单元格或单元格区域进行连接,连接后为文本格式。
=Textjoin(分隔符,是否忽略空单元格,连接的数据区域)
Textjoin函数基本参数:
第1个参数是分隔符,可以缺省,可以唯一值,可以多个值。
第2个参数用来控制是否忽略空单元格,True或缺省为忽略,False则不忽略,
第3个参数是需要连接的数据区域范围。
思路步骤4|G2单元格转换为数值格式
我们选中G2单元格数据,右击“复制”,再次右击“选择性粘贴-值”,将G2含公式的单元格快速转换为数值格式。
思路步骤5|自定义排序完成最后转换
我们鼠标双击G2单元格,选中单元格内容,右击复制内容。
然后选中A1:E7单元格数据区域进行排序,点击“开始”选项卡,点击“排序”按钮,弹出“排序”的对话框,主要关键字选择“辅助列1”,次序选择按“自定义序列”的方式进行排序,随即弹出“自定义序列”的对话框。
在“输入序列”框中将刚才复制的G2单元格的内容粘贴到此处,点击“添加”按钮,即可将这种自定义的序列添加到左边的“自定义序列”列表中,选中列表中的此种排序方式,最后点击“确定”按钮。我们惊喜的发现:Excel批量实现每相邻两行之间的互换位置效果。
至此,我们完成了所有的操作,小编啰啰嗦嗦用了相对较长的篇幅对步骤进行了介绍,目的在于让粉丝们更加细致的学会这个技巧。如果操作熟练的话,前后不过1分钟的时间。我们发现一个看似小小的问题包含了这么多常见的基础知识点,足以可见Excel基础知识的重要性。每一个看似棘手的难题,都可以通过一个一个基础的知识点组合运用解决。
这篇技巧讲解了“Excel批量实现每相邻两行之间的互换位置”,我们同样可以运用这几步实现“Excel批量实现每相邻两列之间的互换位置”,道理是一样的,大家不妨自己操作一下试一试,如果你在职场中遇到了这种问题,你会选择什么方法解决呢?