我有上千行
这里的数据在电子表格(excel 1图像)中,我需要创建一个表格,其中的数据填充了下面的标题。
发布于 2021-01-19 22:21:34
如果您不想使用VBA或花费时间处理其他自定义查询,您可以这样做(不,需要创建帮助器列):
如果满足以下条件,则创建执行计数的帮助器列:
使用以下公式:
=IF(B2="Facility ID:", COUNTIFS($B$1:B2,"Facility ID:"),"")
然后像这样组织你的数据表:
您可以使用此公式(从单元格I7开始):
=INDEX($A:$E,MATCH($H7,$A:$A,0)+I$4,I$5)
然后,您所需要做的就是向下拖动行并递增计数,只要间距始终保持不变,字段的位置也保持不变,就应该可以工作
发布于 2021-01-22 17:51:32
此解决方案需要支持XLOOKUP和动态数组的Excel版本。
我会添加两列。一个用于计数记录,另一个用于计算记录的行号,如下所示。
E2是=IF(A2="Facility ID:",MAX(E1:$E$1)+1,E1)
,F2是=IF(E2=E1,F1+1,1)
。除了最后一行之外,所有这些公式都会被拖到最下面。这是手动输入的6,因为该记录中缺少典型的第4行和第5行。
那么sheet2看起来是这样的。
A2统计sheet1中数据的总行数。=COUNT(Sheet1!E:E)
第3行和第4行显示每个字段在记录中的位置。
A6开始一个从1到记录数量的列表。=SEQUENCE(MAX(OFFSET(Sheet1!E2,0,0,B1)))
使用动态数组功能溢出到多个单元格。
B6中的公式也会溢出到多个单元格中。
=XLOOKUP($A6#&B$3,OFFSET(Sheet1!$E$2,0,0,$B$1)&OFFSET(Sheet1!$F$2,0,0,$B$1),OFFSET(Sheet1!$A$2,0,B$4,$B$1),"")
我在公式中使用了OFFSET
,这样如果输入了额外的数据,它们就可以更新。
最后,将B6中的公式复制到其他列。
https://stackoverflow.com/questions/65800157
复制