原帖由 shaowu459 于 2011-1-16 15:44 发表
供参考,一种按照课程排列,一种按照班号排列。比较马虎,现在这个应该是可以用的……原来发的都有若干瑕疵……
不规则表转换:
一、单列分别用公式:
O3=INDEX(A:A,MOD(SMALL(IF(B3:L18<>"",ROW(A3:A18)+COLUMN($B:$L)*1000),ROW(1:1000)),1000)) 多单元格数组公式
或:
O3=INDEX(A:A,RIGHT(SMALL(IF(B3:L18<>"",ROW(A3:A18)+COLUMN($B:$L)*1000),ROW(1:1000)),3)) 多单元格数组公式
或
O3=INDIRECT(TEXT(MOD(SMALL(IF($B$3:$L$18<>"",ROW($3:$18)+COLUMN($B:$L)*1000),ROW(A1)),1000),"r0c!1"),) 下拉
P3=INDEX($2:$2,INT(SMALL(IF(B3:L18<>"",ROW(A3:A18)+COLUMN($B:$L)*1000),ROW(1:1000))/1000)) 多单元格数组公式
或
P3=INDIRECT(TEXT(INT(SMALL(IF($B$3:$L$18<>"",ROW($3:$18)+COLUMN($B:$L)*1000),ROW(A1))/1000),"r!2c000"),) 下拉。
Q3=INDEX($B$3:$L$18,MATCH($W3,A:A,0)-2,MATCH($X3,$A$2:$K$2,0)-1) 下拉。
或
Q3=INDIRECT(TEXT(MMULT(--MID(TEXT(SMALL(IF($B$3:$L$18<>"",ROW($3:$18)+COLUMN($B:$L)*1000),ROW(A1)),"00000"),{1,3},{2,3}),{1;1000}),"r0c000"),) 下拉。
二、一个公式右拖下拉:(shaowu459 在610楼提供 )
O3=INDIRECT(INDEX(TEXT(MID(RIGHT(SMALL(IF($B$3:$L$18<>"",COLUMN($B:$L)+ROW($3:$18)*1000)+IF($B$3:$L$18<>"",(ROW($1:$16)+(COLUMN($A:$K)-1)*16)*10^8*COLUMN($A:$K),10^30),ROW(A1)),5),{1,3,1},{2,3,5}),{"R0C1","R2C0","R0C000"}),COLUMN(A1)),)
或
O3=INDIRECT(INDEX(TEXT(MID(TEXT(SMALL(IF($B$3:$L$18<>"",COLUMN($B:$L)+ROW($3:$18)*1000),ROW(A1)),"00000"),{1,3,1},{2,3,5}),{"R0C1","R2C0","R0C000"}),COLUMN(A1)),)
不规则表转换总结.rar
(36.42 KB, 下载次数: 122)
[ 本帖最后由 lhx120824 于 2011-1-16 19:01 编辑 ] |