【问题标题】:How Can I Concatenate Many Sets of Columns Into Several New Columns?如何将多组列连接成几个新列?
【发布时间】:2019-08-13 21:59:57
【问题描述】:

我有一个电子表格。 60 行,~100 列。

我希望连接每组 3 列中的数据,以生成约 30 列“合并”数据。

例如目前栏目包括“战士1”、“战士2”、“战士3”、“巫师1”、“巫师2”、“巫师3”等。

我希望将每个集合中的数据放入 I 列中,分别标记为“Fighter”、“Wizard”等,并将三列中的数据“合并”,并带有分隔符 (:)。我需要包含空单元格。

我知道我可以使用 CONCATENATE(B2, C2, D2) 来组合一组单元格中的数据。

我可以将此公式向下拖动,以填充列。

但如果我将公式侧向(向右)拖动,它会将每个值增加 1,而不是我需要的 3。

例如我希望列变为(B2,C2,D2),(E2,F2,G2),(H2,I2,J2)等,但我得到(B2,C2,D2),(C2,D2,E2), (D2, E2, F2) ...

【问题讨论】:

    标签: concatenation libreoffice-calc


    【解决方案1】:

    你可以使用OFFSET函数

    我们将从您的数据跨越 A 列到 CU 列 (1-99) 并且您的“合并”数据跨越 CW 列到 EC 列 (101-133) 的前提开始。

    从 Cell CW2 开始(假设您的标题在第 1 行),写下这个公式(我添加了换行符以便于阅读):

    =CONCATENATE(
        OFFSET($A2, 0, 3 * (COLUMN() - 101)), 
        OFFSET($B2, 0, 3 * (COLUMN() - 101)), 
        OFFSET($C2, 0, 3 * (COLUMN() - 101))
    )
    

    这会将原始数据集的三个相邻列连接在一起,并且当您将公式拖动填充到接下来的 32 列中时,每个合并的列将分别偏移三个单元格,将它们对齐以连接你所有的数据。

    您可能需要在该功能中更改以供您使用的重要部分:

    • $A2 重要的是从作为整个数据集开始的列开始,而不仅仅是与每个合并集相关的列。但除此之外,如果您的数据从 C 列、E 列或 Z 列或其他任何地方开始,只要它引用了第一列,这仍然有效。
    • 3 是对您分组的列数的引用。如果您有像 "Fighter 1" "Fighter 2" "Fighter 3" "Fighter 4" "Wizard 1" "Wizard 2" "Wizard 3" "Wizard 4".... 这样的系列,那么您会使用 4 而不是 3。
    • 101 是“合并”数据开头的 1 索引列。这样,COLUMN()-101 的第一列为 0,第二列为 1,第三列为 2,以此类推。然后将其乘以上面的 3 得到 0, 3, 6, 9, ...

    【讨论】:

    • 加上分隔符,这似乎可以完成这项工作!
    猜你喜欢
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 2019-07-04
    • 1970-01-01
    • 2020-05-22
    • 2018-12-25
    • 2023-02-25
    相关资源
    最近更新 更多