Excel 列表:删除数据表中的空白而不丢失列之间的对应关系

Excel 列表:删除数据表中的空白而不丢失列之间的对应关系

我有来自旧 Word 文档的大数据表,我正尝试将其转换为 Excel 中的可用格式。旧表的第一列包含与其他列的多行关联的“名称”,其数量可能有所不同。直观地解释起来更容易。

我的结构如下所示:

起始数据

我想要获得类似这样的东西(无需 vba):

期望结果

我试过所有办法,但还是卡了好几天。最大的问题是第一列中每个“名称”关联的数据和空白行的数量是随机变量。

任何帮助将不胜感激!

答案1

整理这种杂乱的数据并对其进行重组或重新排序的情况很常见。这是一种通用策略,可以适应重新排序数据和其他挑战。除非我们讨论的是更大的数据集,否则我的策略是:

(1)将我的输出视为一维或二维表格。 (2)计算出表中每行数据对应的行和列位置(3)使用索引/匹配公式相应地填充表格

最好举个例子。下面我们有一些类似结构的虚构源数据(源名称和参考)。

在下一列(“增量”)中,我们跟踪每行数据的“最新”行号和列号。但为了在有空行时跟踪这些行号和列号,我们必须延续前一行和前一列的位置(没有任何增量)。

因此,只要(在此特定情况下)该行的第一列是“Name Of”,行号就会递增。否则,行号保持不变。

类似地,列号每行都会递增,但当它是空白行而不是数据行时,列号不会递增。当行号改变时,列数将重置为 1。

一切都很好,只是现在空白行中出现了重复的行号和列号,因此我们创建另一对完全相同的列,只是我们将重复项删除(“位置”)。您无法一步完成此操作,因为您需要重复项将数据传递到所有行,包括空白行。

在此处输入图片描述 在此处输入图片描述

现在我们已经知道了每行数据的行和列的位置。现在我们必须创建表格。

我们使用索引/匹配公式来执行此操作,匹配我们创建的可唯一标识位置的文本字符串。例如,对于第 2 行第 3 列,我们创建一个字符串“2-3”。(参见标有“索引”的列)

因此,对于表格的第 2 行第 3 列,我们知道我们正尝试匹配索引字符串为“2-3”的一行数据。使用 MATCH() 查找其行号,然后使用 INDEX() 从该行中提取所需的数据。

当没有字符串匹配时(例如,一旦该行的所有数据都已存在,则会出现高列号),将触发错误。我们可以使用 IFERROR() 函数来捕获此错误。

在此处输入图片描述

在此处输入图片描述

不确定这有多清楚...很高兴解释更多...这是一种非常有用的通用技术。

答案2

处理该问题的一种方法:

使每一行都“完整”,并按要求重复名称多次。即,对于与其相连的每一行...完全删除仅有“名称”的行。

这其实很常见,也是“唯一”容易处理的数据格式。例如使用“自动过滤”

自动筛选:选择包括标题行在内的所有数据,然后按住/点击CTRL- SHIFT+L将其打开或关闭。
Menu:Data>Autofilter在 LibreOffice 中也是一样,嗯;不知道 Excel 的菜单项

相关内容