答案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 的菜单项