通过不同表的列复制表中的行
这些是我的价值观:
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_order
, Pending_days
, Service_type
, ASC_code
, InOutWty
),当它到达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个部分:
- 对数据中的列进行sorting。
- 在数据中定义范围(这会使事情变得更清晰)。
- 制作所有数据的5 *副本,但部分
part_code
- 将
part_code
matrix转换为vector
开始吧…
但在此之前,让我们区分part_code
列和其余所有表格,我们将分别处理它们。 所以从现在开始,我将调用表格“Info”表格的左侧,右侧将是“part_code”表格
1.在“信息”表中对列进行sorting
那么,因为你在信息表中只有5列,更快的方法是手动sorting。 如果您有更多,您可以将第一行复制转换为列,然后对其进行sorting,然后手动排列列。 可能有一个更聪明的方法,但这不是你问题的本质。 这种sorting对于HLOOKUP
function起作用是很重要的。
2.在数据中定义范围
我会假设你知道怎么做,但是如果没有的话,看看这里 。 我们将定义信息表的所有范围为Info
和零件代码表的所有范围, 而不是第一行作为part_code
。
3.制作Info表中所有行的5 *副本
使用HLOOKUP
和ROW
我们将创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
校正到同一个单元格中,然后将其粘贴到(保持$
!),然后一直拖动它:
就这样!
希望能解决你的问题;)