每年公司行政人事部都会对公司的活动经费进行规划,对预算进行审核。
不同的部门,在不同的月份,活动经费的数额可能会有所不同。
活动经费是指举办活动所需的各种费用支出比如活动的所有费用,比如人员费用,场所费用,设备费用等
为了便于注册,查看和打印,他们将使表单看起来如下图所示。
这样看起来更直观,有些堂兄妹也喜欢用这种风格做桌子。
但如果需要更快速的分析活动经费的分配,组织成一维表格格式,然后用透视表来分析,可能更合适。
如何整理以上数据。
如果你是Office365,可以直接使用Vstack函数垂直拼接不同的数据区域。
=VSTACK一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月)
注:对应区域已提前命名。
如果不是Office365,直接用传统的Excel函数很难制作出来这时候,我们就需要用到数据整理的工具——powerquery
我简单介绍一下它的做法。
温馨提示:本文会涉及到几个简单的M函数,不知道M函数的朋友不用担心有印象就好
PQ要求Office2016及以上版本m是PQ中使用的函数
1.特定操作
我们预处理,导入表,并过滤掉列中的标题和空值。
单击部门筛选器的下方三角形,取消选中和(空),然后单击(确定)。
对于有多个区域的表,我们可以通过使用PowerQuery以各种形式进行合并下面我要介绍的方法是按照每行的方式进行合并
接下来,我们执行表转换处理。
步骤1:将行转移至列表
使用表格以形成表格中每一行的列表
桌子ToList:根据行方向将表格形成列表
=表ToList table,each_)将表中的每一行组成一个列表,each_可以对每一行执行进一步的操作
第2步:删除每一行中的空值。
列表RemoveNulls:从列表中删除null
=列表删除列表中的空值
第三步:拆分每个列表。
我们可以看到,在每个列表之间,三个数据为一组。
所以我们直接用链表Split函数来拆分数据
列表。拆分:列表拆分
=列表。拆分列表,一次多个)
拆分的意思是分开,列出Split的意思是每n个就把列表拆分一次,形成一个单独的列表
第四步:翻桌子。
按行将每个列表转换成表格,这里我们使用表格FromRows函数
桌子FromRows:将list形成的列表转换成具有行方向的表格
=表FromRows如果没有写入第二个参数,默认的表标题是Column1,Columns2
怎样才能得到自己需要的表格标题。
要获取标题行,我们可以先用Table获取标题列表列名,然后列表FirstN包揽前三名
桌子ColumnNames:获取表格中的标题
=表ColumnNames table)可以获取表中的所有标题并返回一个列表
列表。FirstN:获取列表中的第一个n
=列表。FirstN列表,第n个)
我们将书面标题函数粘贴到表的第二个参数上FromRows函数,此时,拆分转换已经完成,最后可以合并表了
第五步:合并。
将处理后的数据上传到表中。
2.延伸和扩展
以上是按照每行进行转换合并,那么按照每列进行合并应该怎么做呢。
其实和之前的思路是一样的,只是用的函数略有变化。
如下图:
将表中每一列转换成一个列表,
删除空值,
3列被拆分,
循环,逐列转表(表。FromColumns),
最终合并
3.写在最后
本文的目的是合并具有相同间隔的多区域表的数据。
可以手动复制粘贴,但是数据更改后,不能自动更新。
利用Office365中新的Vstack功能,我们可以在垂直方向上直接拼接多个区域但是由于版本限制,大部分人都没有这个功能
数据排序最常用的工具是PowerQuery使用它,基本的界面操作就可以完成大量的排序工作,但是如果稍微复杂一点,就需要丢掉M函数了
这篇文章对于没有M函数基础的小伙伴来说可能有点难,但是如果我们的数据是标准化的,我们其实不需要这么做。
所以大家最好把数据的记录标准化,这样可以减少很多不必要的工作。
。