我们正处于一个信息大暴发的时代,每天都能产生数以百万计的新闻资讯!
虽然有大数据推荐,但面对海量数据,通过我们的调研发现,在一个小时的时间里,您通常无法真正有效地获取您感兴趣的资讯!
头条新闻资讯订阅,旨在帮助您收集感兴趣的资讯内容,并且在第一时间通知到您。可以有效节约您获取资讯的时间,避免错过一些关键信息。
大家好,我是潜伏在很多Excel交流群里,时不时冒个泡的小爽~
在其中一个群里,我看到这样一个问题:如何批量整理标题和链接?
我简单整理了一下(如下表),大致的需求就是:将左表整理成右表的形式。
▲ 为方便演示,仅展示部分数据
如果是你,你会怎么做呢?
群内的小伙伴各自发表了自己的看法:
用错位筛选?手机号码都有1开头,这个方法可行!
借助单元格引用的方法?这个方法可行!
上面的方法,都是很不错的方法。
唯一的缺点就是:一旦我们新增或者修改数据源内容,所有操作需要再重新操作一遍。
所以本文跟大家分享两种方法,目的是在新增或者修改数据源时,能够动态更新数据,下面就跟我一起看看吧~
❶ Index函数索引法
❷ PowerQueryM函数法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、PowerQueryM函数法
我们先来看看具体的操作步骤:
▋第一步:将数据源导入PQ编辑器中
选中表格区域-选择【数据】选项卡-【自表格/区域】-出现创建表对话框,按住【确定】按钮。
此时表格就导入PQ编辑器啦~
▋第二步:将数据列深化为列表选中数据列
鼠标右键数据列-选择【深化】或者选择【转换】选项卡下【转化为列表】;
PS:深化和转换为列表的目的都是:将当前表中的某列数据提取出来形成列表,方便后续进行操作。
此时就变成列表啦↓↓↓
▋第三步:每两条信息拆解为一个List
单击,fx在右边的编辑栏中添加公式,公式如下:= List.Split数据列2)
此时数据就被拆分成两个元素一条信息啦~
▋第四步:将拆分后的List转化为Table
这一步要用到Table.FromList函数。
公式如下:= Table.FromList(自定义 1,each _,{"姓名","手机号"})
操作动图:
▋第五步:实时更新
利用PQ做法,我们可以做到实时更新~
下面我们来简单介绍一下案例中所涉及的M函数。
❶List.Split:列表拆分=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。
这两种方法在新增或者修改数据源时,都能够动态更新数据!
考考你:
案例中是每两条元素作为一个信息,如果是三条元素,大家会怎么做呢?
以上内容为资讯信息快照,由td.fyun.cc爬虫进行采集并收录,本站未对信息做任何修改,信息内容不代表本站立场。
快照生成时间:2023-03-18 21:45:16
本站信息快照查询为非营利公共服务,如有侵权请联系我们进行删除。
信息原文地址: