需要每第6行更改一组数据的第一列

问题描述 投票:0回答:2

我有一组数据,其中每 5 行从第 2 列到第 6 列的数据保持不变,并且每 6 行只有第一列发生变化: enter image description here 除了手动执行此操作之外,还有公式或其他方法吗?

到目前为止,我是手动完成此操作,但我需要为第一列的 27 个不同值执行此操作

excel excel-formula
2个回答
0
投票

假设您有第 1 列的值列表,您可以使用:

=INDEX(M$2:M$5,INT((ROW()-2)/5+1))

enter image description here

对于第

B
F
列,您可以从第
=B2
行开始使用
7
,然后向下和横向填充

enter image description here


0
投票

这是另一种方法,假设您有 Microsoft 365(以便使用 REDUCE 等)

在具有足够行和列的单元格中输入以下内容以填充生成的数据:

=LET(
headers,{"Sales Org","Plant","Material Type","Amount","Valid From","Valid To"},
column_data_to_repeat,B3:F7,
sales_org_values,I3:I5,
REDUCE(
headers,
sales_org_values,
LAMBDA(result,sales_org,
VSTACK(result,
HSTACK(TOCOL(DROP(TEXTSPLIT
(REPT(sales_org & ";",ROWS(columns_to_repeat)),";"),0,-1)),column_data_to_repeat))
)))

指定

column_data_to_repeat
sales_org_values
的范围。

主循环是:

通过重复

sales_org
建立一个列:

  1. 通过使用分隔符重复值来构建文本字符串(如果您的数据具有此分隔符,请更改此值):

    REPT(sales_org & ";",ROWS(columns_to_repeat)

  2. 将其拆分为单元格:

    TEXTSPLIT(REPT(sales_org & ";",ROWS(columns_to_repeat)),";")

  3. 删除最后一个单元格(由于额外的分隔符)并将其转换为列:

    HSTACK(TOCOL(DROP(
    第 2 步的结果
    ,0,-1))

  4. 堆叠此列并块以重复:

    VSTACK(result,
    步骤 3 的结果
    ,column_data_to_repeat)

您可能需要使用表格来保存您的销售组织值

希望这对未来的需求有所帮助。

Formula and result

© www.soinside.com 2019 - 2024. All rights reserved.