一张经营资料表原来横向列着一月、二月、三月,调整之后,月份出现在同一列,门店名称却重复了多次。只看重复文字,容易认为记录被复制。Microsoft Learn的Unpivot columns说明提供了另一种解释:取消透视把原来的列转为属性和值的成对记录。[1]

官方用国家与日期组成的矩阵举例。原表中,一列是国家,几个日期各占一列;转换后,国家仍然保留,日期进入Attribute,原日期列下面的数值进入Value。页面明确把Attribute定义为被取消透视的列标题名称,把Value定义为原来位于那些列标题下面的值。两列不是任意新增的备注,而是保留原来“哪一列、什么值”的对应关系。

例如,作者自拟一个没有真实经营金额的资料表:甲门店的一月办理数为2,二月为3。按上述结构表达后,可以形成两条记录,分别是甲门店、一月、2,以及甲门店、二月、3。甲门店出现两次,是因为每条记录需要说明一个月份和值归属于谁,不表示突然有了两家同名门店。这个例子没有实际运行查询,也不代表企业业务数据。

结构变化还改变了月份的放置位置。在横向表中,月份藏在列名里;转为Attribute之后,月份成为一列可以表达的属性。微软的说明正是把一组日期集中到一列,并让相应国家和日期的值另占一列。由此可以按日期属性讨论筛选,而不必将每个月都当作一个新的字段名称。这里讨论资料表达,没有选择生产报表的具体处理方案。

这种行数变化与两张表匹配又不同。上述例子不需要另一张明细表,也没有把一条门店记录与多条外部记录相连接;它是在同一张表内,把原来横向铺开的月份和值重新安排。若接手人只用“行数增多”作说明,就会遗漏是结构重排、明细展开,还是其他原因。判断需要回到具体来源,而不能只看计数前后是否相等。

本稿采用2025年7月10日更新的微软帮助页开头定义与矩阵说明,没有采用后文三种菜单在新增列时的行为比较,也没有根据文档图中的年份组合推断真实时序。本文未清洗或审计经营数据,不由门店名称重复认定错误,更不从数据形状推导业绩变化。理解Attribute保留原列名、Value保留原值之后,团队才能更准确地说明一张表究竟怎样表达业务对象与期间。

信息来源

本文基于上述公开资料整理,未使用来源页面的图片、视频或嵌入媒体。