我有一个表格,表示一系列组件及其子组件,以及子组件各自的子组件,等等。它目前看起来像一棵树(一对多关系),但它可能在某些时候改变为类似图形(多对多关系)。不幸的是,它的作者格式很差,看起来像这样:
上述格式很差,因为存在大量数据重复,并且限制为一组(4)层。如果它看起来像这样,我宁愿选择:
上述格式很好,因为数据重复很少,并且不限于一定数量的层。
如果对表格所代表的内容有任何疑惑,这里是数据的图形表示:
从糟糕的格式转换为漂亮的格式很简单,但是有数百个根组件,手动数据输入将非常耗时且乏味。
我怀疑这个问题是独一无二的,我准备自己编写一些VBA代码来将表格解析成漂亮的格式,但我想我确保这不是预卷解决方案的常见问题在我自己推出之前。
是否有技术术语来描述第一个表格中的不良格式?有没有比编写VBA宏更简单的方法来重新格式化数据?
答案 0 :(得分:1)
这可能是一个完全失常,但它适用于您的样本(目前我没有时间打破它!)
添加索引(及其标签)和reverse pivot
(例如,请参阅An excel formula to find a row/column index in array)。
不要向下钻取Grand Total
截距,而是深入了解各层的总数。
并排重新组合表格,删除除Value
之外的所有列,并使用选择性粘贴值将表复制到另一个区域。删除范围上的重复项。每次右侧列中的值不会更改时,删除单元格中的值并将其移动到左侧。从右到左对列重新排序。
答案 1 :(得分:0)
我复制了Tier
表中的每对相邻列(Tier 1
& Tier 2
,Tier 2
& Tier 3
,Tier 3
& Tier 4
)并将它们垂直堆叠成一对列(Subcomponent
& Component
)。
接下来,我选择了两个新列,然后点击Remove Duplicates
功能区标签中的Data
,删除了重复项。
接下来,我必须删除Subcomponent
列中包含空白单元格的所有行。为此,我再次选择了两列,并通过点击Filter
功能区标签中的Data
来过滤数据。我在(Blanks)
列的Filter
菜单中选择了Subcomponent
,并删除了所有可见行。我在过滤器菜单中选择(Select All)
删除了文件管理器。
结果表包含许多空行,所以我再次删除重复项,然后手动将数据向上移动一行以替换剩余的一行空白行。
最后,花了大约半个小时,这可能比我编写宏的时间少,而且手动数据输入的时间肯定更少。