我有一个电子表格。 60 行,~100 列。
我希望连接每组 3 列的数据,以生成约 30 列“合并”数据。
例如目前栏目包括“战士1”、“战士2”、“战士3”、“巫师1”、“巫师2”、“巫师3”等。
我希望将每组数据放入每个 I 列中,标记为“战士”、“巫师”等,并将三列中的数据“合并”,并使用分隔符 (:)。我需要包含空单元格。
我知道我可以使用 CONCATENATE(B2, C2, D2) 来组合一组单元格中的数据。
我可以将此公式向下拖动以填充该列。
但是,如果我向侧面(向右)拖动公式,它会将每个值增加 1,而不是我需要的 3。
例如我希望列变成 (B2, C2, D2), (E2, F2, G2), (H2, I2, J2) 等,但我得到 (B2, C2, D2), (C2, D2, E2), (D2、E2、F2)...
最佳答案
您可以使用OFFSET
函数
我们首先假设您的数据跨越 A 列到 CU 列 (1-99),并且“合并”数据跨越 CW 列到 EC 列 (101-133)。
从单元格 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
是对分组依据的列数的引用。如果您有像“战斗机1”“战斗机2”“战斗机3”“战斗机4”“巫师1”“巫师2”“巫师3”“巫师4”这样的系列
......,那么你可以使用 4 而不是 3。101
是“合并”数据开头的 1 索引列。这样,COLUMN()-101 的第一列为 0,第二列为 1,第三列为 2,依此类推。然后乘以上面的 3,得到 0, 3, 6, 9, ...
关于concatenation - 如何将多组列连接成多个新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57485817/