不要再Ctrl V了!一列数据转多列,2招搞定!

大家好,我是瓜叔

我看到这样一个问题:如何批量整理标题和链接?

我简单整理了一下(如下表),大致的需求就是:将左表整理成右表的形式。

▲ 为方便演示,仅展示部分数据

如果是你,你会怎么做呢?

群内的小伙伴各自发表了自己的看法:

用错位筛选?手机号码都有 1 开头,这个方法可行!

借助单元格引用的方法?这个方法可行!

上面的方法,都是很不错的方法。

唯一的缺点就是:一旦我们新增或者修改数据源内容,所有操作需要再重新操作一遍。

所以本文跟大家分享两种方法,目的是在新增或者修改数据源时,能够动态更新数据,下面就跟我一起看看吧~

❶ Index 函数索引法

❷ PowerQuery M 函数法

1

Index 函数索引法

我们先来看看具体的操作~

如下图,在 E3 单元格输入如下公式:

=INDEX($B$2:$B$11,ROW(A1)*2-1)

在 F3 单元格中输入如下公式:

=INDEX($B$2:$B$11,ROW(A1)*2)

只需两个函数公式,就搞定!

下面我们简单说一下公式原理~

INDEX 函数说明:INDEX 函数可以返回指定的行与列交叉处的单元格引用。

=INDEX(区域,行数,[列数],[区域数])

案例中公式如下:

=INDEX($B$2:$B$11,ROW(A1)*2-1)

公式中,数据区域为$B$2:$B$11,姓名列就在绿色区域内 1,3,5,……的位置上。

所以我们需要构造等差序列 1,3,5……,对应的公式如下:

=ROW(A1)*2-1

ROW(A1)表示行数为 1,ROW(A1)*2-1=1*2-1=1。

ROW(A2)表示行数为 2,ROW(A2)*2-1=2*2-1=3。

ROW(A3)表示行数为 3,ROW(A3)*2-1=3*2-1=5。

同理,我们要得到手机号,需要构造等差序列 2,4,6……

等差公式为=ROW(A1)*2,所以整个函数为:

=INDEX($B$2:$B$11,ROW(A1)*2)

思路总结:

通过 Row 函数,构造等差序列 1,3,5……,用 Index 函数索引就可以得到姓名列,通过使用 Row 函数构造等差序列 2,4,6……,用 Index 函数索引即可得到手机号。

到此,Index 函数的方法就介绍完了,下面我们来介绍一个 PowerQuery 的 M 函数法,一定要耐心看下去!

2

PowerQuery M 函数法

我们先来看看具体的操作步骤:

▋第一步:将数据源导入 PQ 编辑器中

选中表格区域-选择【数据】选项卡-【自表格/区域】-出现创建表对话框,按住【确定】按钮。

此时表格就导入 PQ 编辑器啦~

▋第二步:将数据列深化为列表选中数据列

鼠标右键数据列-选择【深化】或者选择【转换】选项卡下【转化为列表】;

PS:深化和转换为列表的目的都是:将当前表中的某列数据提取出来形成列表,方便后续进行操作。

此时就变成列表啦↓↓↓

▋第三步:每两条信息拆解为一个 List

单击 ,fx 在右边的编辑栏中添加公式,公式如下:

= List.Split(数据列,2)

此时数据就被拆分成两个元素一条信息啦~

▋第四步:将拆分后的 List 转化为 Table

这一步要用到 Table.FromList 函数。

公式如下:

= Table.FromList(自定义 1,each _,{'姓名','手机号'})

操作动图:

▋第五步:实时更新

利用 PQ 做法,我们可以做到实时更新~

下面我们来简单介绍一下案例中所涉及的 M 函数

❶ List.Split:列表拆分

= List.Split(list,pagesize)
=List.Split(列表,每次拆几个)

Split 是分开的意思,List.Split 的意思就是将列表按照每 N 个拆开,形成单独的 List。

我们的数据是每隔 2 个元素为一个完整的信息,所以需要用 List.Split 函数进行拆分。

❷ Table.FromList:从列表转换到表

=Table.FromList  ( list, 可选 对列表的处理方式 as list  ,  可选-对应的标题,可选-null 的默认值,可选-额外的值处理方式)

拆分完后,我们需要将 List 转为 Table,所以需要用到 Table.FromList 函数。

= Table.FromList(自定义 1,each _,{'姓名','手机号'})

第一参数:是一个 List,这里的自定义 1 也就是上一步骤 List.Split 拆分后的列。

第二参数:对上一步骤的操作,由于这里没有需要处理的,所以直接写 each _。

第三参数:返回表后的列名,列名为{'姓名','手机号'}。

思路归纳:

将表中的数据列深化为列表,是因为每 2 个元素为一条信息,所以可以用 List.Split 函数将每 2 个元素拆分成一个 List。

最后用 Table.FromList 函数将拆分后的 List 转换为 Table。

到这里,M 函数的做法也就讲完了~

3

总结一下

本文介绍了两种整理错位数据的方法:

❶ Index 函数索引法最常见的做法,这是 Index 函数的经典用法之一,通过构造有规律的索引值进行索引。

❷ PQ 的 M 函数做法,需要认真研究。

利用深化将查询表中的某列数据提取出来形成列表;利用 List.Split 函数对列表进行拆分,使得每 2 个元素形成一个 list;利用 Table.FromList 将 List 转换为 Table。

这两种方法在新增或者修改数据源时,都能够动态更新数据!

考考你:

案例中是每两条元素作为一个信息,如果是三条元素,大家会怎么做呢?

年终福利预告
为了回馈粉丝这一路的陪伴,下期(2月9号)将会送上年终大福利,记得准时关注,不要迟到哦!

你有在看吗↓
(0)

相关推荐

  • Excel一对多查找方法大全

    经常被问道Excel中如果实现一对多查找,我多多少少写过不少了,但是不够完善,今天我们就抽点时间,写过专题,彻底总结一下!这么多方法和思路,你会几种? 最后一种,专门为小白准备,保证人人学得会的方法~ ...

  • 分组时需要求和的数据有几十列,有快捷方法吗?

    - 1. 问题 - 在我以前的文章中,涉及分组依据操作的内容,需要聚合(求和等)的列通常不会太多,因此,手工操作一下也很快,但有朋友还是碰到了需要对几十列进行求和的问题,这个时候,如果还是手工一项项地 ...

  • PQ实战 | 客户下单数据整理!

    需求说明: 文档数据: 需求分析: 1.客户下单的数据有两列,只有种类列对我们是有用的,我们是供货方,只需要统计对应颜色的合计即可 2.种类的数据规则如下:颜色+羊绒毛巾(固定)+数量+条,我们需要颜 ...

  • 【收藏】一组在范围内查找数据的超级简单函数,职场必备

    小伙伴们大家晚上好,今天给大家介绍一组函数,用于解决查找方面问题的神器函数. 下面是A表原始数据图片: 现在领导提供了新的B表,新的B表只有部分楼号,要求取姓名进行特别处理: 这种类型的数据,是将本来 ...

  • 有了List.Split,列表拆分超容易啊!但是,如果没有,怎么办?

    昨天,有朋友有个列表拆分的需求,然后获得方法中有一个步骤的公式用到List.Split这个函数,却在使用过程中就出错了. 这明显就是说没有List.Split这个函数嘛.所以我查了一下微软的在线Pow ...

  • 多表数据汇总查询之4、同一查询条件多值处理

    [前期相关文章] 1.查询条件动态化入门 2.多查询条件动态化 3.与Excel数据有效性合体 本次实现效果: 小勤:对于按条件查询的问题,能不能再改善一下呢?比如现在的货品,有时候想一次查多个的,怎 ...

  • 根据身份证号码查询户口本上所有人的信息

    昨天在群里丢了个问题,是关于一对多查找的,虽然关于查找的话题永远都没有停止过,不过在工作中对于查找来说也是家常便饭,尤其是类似于人力资源这种部门.来看看题,原始数据如下: 需要根据提供的身份证号码查找 ...

  • PQ实战 | 文本中提取数值并求和

    Power Query(以下简称PQ)为了数据清洗提供了大量的函数,基本可以处理日常的各种"脏"数据! 今天我们就来解答一位网友的问题,那就是如何提取一段文本中的数值,并求和,在P ...

  • 又一种数据堆在一起的情况,函数法却更简单了!

    - 1 - 先说一个前段时间发过的文章<数据都堆在一列里,2种操作解法及1种函数解法(含视频)>里面涉及的一个小问题. 首先,里面讲的是类似下面的情况和转换要求: 其中通过List.Spl ...

  • 不要再Ctrl V了!一列数据转多列,2招搞定

    大家好,我是潜伏在很多群里,时不时冒个泡的小爽~ 在群里,我看到这样一个问题:如何批量整理标题和链接? 我简单整理了一下(如下表),大致的需求就是:将左表整理成右表的形式. ▲ 为方便演示,仅展示部分 ...

  • 别再Ctrl V啦!这个工具30分钟帮你干完一天的工作!

    前几天跟朋友吃饭,聊到了这样一个话题:工作中哪个瞬间最让你崩溃? 离下班不到半小时,领导甩过来一份PPT,说今天必须完成: 辛辛苦苦做了大半天表格,Excel却突然卡死,只能关机重来: 一份文件,Wo ...

  • 别再 Ctrl V 了!这些Excel技巧,让你的工作效率提升10倍!

    如果你没有掌握一些Excel技巧,只会 Ctrl+C 和 Ctrl+V,要么因为处理各种数据加班累成狗,要么只能眼巴巴地羡慕隔壁同事因为一张Excel表格,工资翻3倍! 为什么人家干活快.下班早.加薪 ...

  • 不要再Ctrl V了,拆分时间与日期,这四种方法都能轻松搞定

    一.利用公式 首先我们需要明白的是:日期与时间本质上都是数值,只不过,日期是一个整数的数值,时间是一个小数的数值(不大于1) 对于日期与时间混合输入的数据,首先我们可以利用int函数来向下取整,仅仅保 ...

  • EXCEL多列数据合并成一列,别再复制粘贴啦!(下)

    行云里讲堂(ID:xingyunli2022) 践行终身学习,专注个人提升. 整理编辑:枏北 PHONETIC函数是一个连接文本的函数.此函数作用是提取文本字符串中的拼音.汉字.符号等字符. 其语法为 ...

  • EXCEL多列数据合并成一列,别再复制粘贴啦!(上)

    行云里讲堂(ID:xingyunli2022) 践行终身学习,专注个人提升. 整理编辑:枏北 CONCATENATE函数作用是将多个文本字符串,连接成一个文本字符串. 其语法为:CONCATENATE ...

  • EXCEL如何将两列数据合并为一列并在中间加符号

    EXCEL具有多列的功能,那么如何将两列,转化为一列呢,转化了之后,是否可以在两列之间,加上一些符号呢 工具/原料 EXCEL2007 方法/步骤 1 首先在电脑上打开一个新的工作簿,用来输入数据 2 ...

  • 快速把多列数据变为一列数据

    如图1,一张表格中有多列数据,想把这些数据全部复制粘帖到一列,每列数据行数不一样.如果一列列数据选中后复制粘帖,很慢,这里介绍三种方法快速实现. 图 1 方法一:利用剪贴板 首先,我们打开" ...

  • 巧用数据透视表,将20列数据转换为1列,只需复制粘贴就能搞定

    使用数据透视表转换数据的方法,觉得有用麻烦点个"在看"吧 使用数据透视表转换数据的方法,觉得有用麻烦点个"在看"吧 展开