通过不同表的列复制表中的行

这些是我的价值观:

Service_order PENDING_DAYS SERVICE_TYPE ASC code INOUTWTY Part_code1 Part_code2 Part_code3 Part_code4 Part_code5 4182864919 18 CI 3440690 LP GH82-11218A GH96-09406A GH81-13594A GH02-11552A GH02-11553A 4182868153 18 CI 4285812 LP GH97-17670B 4182929636 17 CI 4276987 LP GH97-17260C GH02-10203A 4182953067 16 CI 3440690 LP GH97-17940C 4182954688 16 CI 6195657 LP GH82-10555A GH97-17852A GH81-13071A 4182955036 16 PS 6195657 LP GH97-17940C 

我试图编写代码来显示每个部分五次行值。

这是我正在使用的公式:

 =INDEX(A:I;(ROW(1:1)-1)/5+1;IF(COLUMN(A:A)=1;1;MOD(ROW(1:1)-1;5)+1)) 

而它给我的结果就是这样的:

 Service_order PENDING_DAYS SERVICE_TYPE ASC code INOUTWTY Part_code 4182864919 18 CI 3440690 LP GH82-11218A 4182864919 CI 3440690 LP GH82-11218A GH96-09406A 4182864919 3440690 LP GH82-11218A GH96-09406A GH81-13594A 4182864919 LP GH82-11218A GH96-09406A GH81-13594A GH02-11552A 4182864919 GH82-11218A GH96-09406A GH81-13594A GH02-11552A GH02-11553A 4182868153 18 CI 4285812 LP GH97-17670B 4182868153 CI 4285812 LP GH97-17670B 0 4182868153 4285812 LP GH97-17670B 0 0 4182868153 LP GH97-17670B 0 0 0 4182868153 GH97-17670B 0 0 0 0 4182929636 17 CI 4276987 LP GH97-17260C 4182929636 CI 4276987 LP GH97-17260C GH02-10203A 4182929636 4276987 LP GH97-17260C GH02-10203A 0 4182929636 LP GH97-17260C GH02-10203A 0 0 4182929636 GH97-17260C GH02-10203A 0 0 0 

这是错误的。 正如你所看到的值开始显示在第二行。

我想要显示的值是( service_orderPending_daysService_typeASC_codeInOutWty ),当它到达part_code ,我告诉的值是相同的,但部分代码开始改变(part_code1,part_code2,part_code3,part_code4,part_code5 )。

为了向你展示我想要的结果,我创build了这个:

 Service_order PENDING_DAYS SERVICE_TYPE ASC code INOUTWTY Part_code1 4182864919 18 CI 3440690 LP GH82-11218A 4182864919 18 CI 3440690 LP GH96-09406A 4182864919 18 CI 3440690 LP GH81-13594A 4182864919 18 CI 3440690 LP GH02-11552A 4182864919 18 CI 3440690 LP GH02-11553A 4182868153 18 CI 4285812 LP GH97-17670B 4182868153 18 CI 4285812 LP 0 4182868153 18 CI 4285812 LP 0 4182868153 18 CI 4285812 LP 0 4182868153 18 CI 4285812 LP 0 4182929636 17 CI 4276987 LP GH97-17260C 4182929636 17 CI 4276987 LP GH02-10203A 4182929636 17 CI 4276987 LP 0 4182929636 17 CI 4276987 LP 0 4182929636 17 CI 4276987 LP 0 

我哪里错了?

那么,这个答案有4个部分:

  1. 对数据中的列进行sorting。
  2. 在数据中定义范围(这会使事情变得更清晰)。
  3. 制作所有数据的5 *副本,但部分part_code
  4. part_codematrix转换为vector

开始吧…

但在此之前,让我们区分part_code列和其余所有表格,我们将分别处理它们。 所以从现在开始,我将调用表格“Info”表格的左侧,右侧将是“part_code”表格

1.在“信息”表中对列进行sorting

那么,因为你在信息表中只有5列,更快的方法是手动sorting。 如果您有更多,您可以将第一行复制转换为列,然后对其进行sorting,然后手动排列列。 可能有一个更聪明的方法,但这不是你问题的本质。 这种sorting对于HLOOKUPfunction起作用是很重要的。

排序列

2.在数据中定义范围

我会假设你知道怎么做,但是如果没有的话,看看这里 。 我们将定义信息表的所有范围为Info和零件代码表的所有范围, 而不是第一行作为part_code

定义范围名称

3.制作Info表中所有行的5 *副本

使用HLOOKUPROW我们将创build5个副本:

=HLOOKUP(A$11,Info,CEILING((ROW()-ROW($A$11))/5+1,1))

将信息的首行(以您喜欢的任何顺序)复制到一个新的地方,并将上面的公式放在数据应该进入的最左上angular的单元格中(在本例中为A12 )。

然后纠正公式,所以开始时$A$11 ,公式中间为$A$11 ,将成为第一列标题 – 保持$正确的引用相同。 您现在可以将其拖动到最下方,填满表格的所有信息部分:

复制信息表

4.将part_codematrix转换为向量

在你的新表“part_code”的最后一列粘贴这个公式( 源 )在列标题的下方:

=OFFSET(part_code,TRUNC((ROW()-ROW($F$12))/COLUMNS(part_code)),MOD(ROW()-ROW($F$12),COLUMNS(part_code)),1,1)

并再次将所有$F$12校正到同一个单元格中,然后将其粘贴到(保持$ !),然后一直拖动它:

复制part_codetable

就这样!

希望能解决你的问题;)