点击上传或拖入表格文件
XLSX、XLS、ODS 或 CSV — 在浏览器中读取,绝不上传关于逆透视
报表之所以是横向送来的,是因为人就是这么读它的:一行一个产品,一列一个月份,合计放在最下面。这对一页打印品来说是正确的形状,对其他几乎所有场合来说都是错的。
任何想要给这些数据作图、透视、筛选或导入的工具,要的都是纵向:每个产品每个月一行,月份是某一列里的值,而不是压在数字上方的标题。
- 横 — 产品 | 1月 | 2月 | 3月
- 纵 — 产品 | 月份 | 销售额,行数是原来的三倍
Excel 可以用 Power Query 做到,但那意味着好几个对话框、一个加载步骤和一次刷新。这里只是两个复选框和一个名称。
使用方法
- 粘贴你的行,或上传一个表格文件
- 勾选要原样保留的列——也就是标识这一行的那些列,通常是头一两列
- 没有勾选的列都会变成行。顺手给两个新列取个名字
- 下载为CSV或Excel,或者复制回去
第一列已经替你勾好了,因为在几乎所有横向报表里,它就是标识列。
空单元格默认会被丢掉
横向的表格通常很稀疏。并不是每个产品每个月都有销售,所以相当一部分单元格是空的——把它们一起带过去,会得到一张主要由「无」构成的纵表。
所以除非你要求,空格会被跳过。把空单元格也保留为行是为那种「空」有含义而不是「缺失」的情形准备的:把「未作答」当成一种真实回答的问卷,或者空档必须可见的排期表。
当报表有两行表头时
打印用的报表常常在真正的标题之上还有一行标题——一个写着 按月销售额 的合并单元格,压在 1月、2月、3月 上面。当作数据读进来,最上面那行就成了表头,真正的标题变成第一行数值,结果就是一份荒唐的输出:一列叫 按月销售额,另一列没有名字。
逆透视无法猜出哪一行是哪一行,因为两行都是文字,也都在数字上方。办法是在粘贴之前把那行装饰性的标题删掉——在表格里点一下,后面的一切就都对了。
底部的合计行也一样。它不是一次观测,所以不属于纵表;把它排除在选择之外,或者从结果里删掉。悄悄把它带过去,只要有人对数值列求和,每个数字就都会翻倍。
人们用它来做什么
- 让横向报表能被数据透视表使用——透视表需要每次观测占一行
- 把按月或按季的列,整理成图表能沿时间轴绘制的形状
- 为导入数据库准备表格——数据库要的是一行一个值
- 把一张预算表格变成明细列表
- 重塑那种每道题都变成一列的问卷结果
- 为 R、pandas 或任何有此预期的分析工具产出整洁数据
值得一提
- 可在 Windows、macOS、Linux、ChromeOS 以及手机和平板上使用——它接收的是粘贴的文本或一个文件,而不是文件夹
- 不上传任何内容。读取和重塑都在页面内完成
- 第一行永远是表头,因为列标题会成为新属性列里的值——没有它们就无法逆透视一张表
- 如果把所有列都勾上,就没有东西可以展开了,因此工具会退回到只保留第一列
- 行的顺序沿用原表:先是第一行的全部数值,然后是第二行的
- 预览显示前 200 行;下载的文件始终包含全部行
相关工具
- 分组汇总 — 相反的方向——把行折叠成汇总
- 行列转置 — 改为把整张表翻转过来
- 拆分与合并列 — 改变列本身的形状
- Excel转JSON — 把纵表带去别的地方