如何压缩 Excel 表中多行中不规则分布的数据

如何压缩 Excel 表中多行中不规则分布的数据

实际表:数据不规则地分布在几行上,因此部分行是空的

日期 文本
日期_1 文本_1A
文本_1B
日期_3 文本_3A
文本_3B
文本_3C
日期_6 文本_6A
文本_6B
日期_8 文本_8A
文本_8B
文本_8C
日期_11 文本_11A
文本_11B
日期_13 文本_13A
文本_13B
文本_13C

所需表

日期 文本
日期_1 文本_1A 文本_1B
日期_2 文本_2A 文本_2B 文本_2C
日期_3 文本_3A 文本_3B
日期_4 文本_4A 文本_4B 文本4C
日期_5 文本_5A 文本_5B
日期_6 文本_6A 文本_6B 文本_6C
  • 如果有规律的间隔,我会使用 CONCATENATE 函数。不幸的是,它是不规则的。
  • 大约有 8'000 行。
  • 我有带 Excel 的 Microsoft 365。此外,我还可以访问 LibreOffice 或 Ubuntu 上的命令行。
  • 如果这个问题已经有人问过了,您能否提供链接或者指出相关的搜索标签,因为我没有找到任何东西。

回应 Scott Craner 的补充信息:最好将数据填入集合的第一行。

答案1

使用 LET、SCAN、BYROW 和 LAMBDA:

=LET(
    d,A2:A16,
    t,B2:B16,
    f,SCAN(a,A2:A16,LAMBDA(a,b,IF(b<>"",b,a))),
    u,UNIQUE(f),
    CHOOSE({1,2},u,BYROW(u,LAMBDA(a,TEXTJOIN(" ",TRUE,FILTER(t,f=a,""))))))

f是标准化日期的完整数组,它基本上用上面的值填充任何空单元格。

然后我们得到一个唯一的列表,逐行浏览并将文本列中的文本连接到唯一的日期。

几点注意事项:

  1. 无法保证在 8,000 行上能正常运行。进行如此多的计算可能会陷入困境。

  2. 单元格可容纳的字符数有限制,为 32,767 个。如果任何 TEXTJOIN 输出超过该限制,则会导致错误。 在此处输入图片描述

相关内容