表1如下:
A B C D E
1 图号 名称 工序 工种 单价
2 1 甲1 5
3 2 甲2 8
4 A001 101 3 甲3 11
5 1 乙1 3
6 2 乙2 2
7 3 乙3 2
8 B002 102 4 乙4 2.3
9 1 丙1 1.2
10 2 丙2 11
11 3 丙3 13
12 4 丙4 2
13 5 丙5 3
14 6 丙6 4.3
15 C003 103 7 丙7 5.3
16 1 丁1 6.6
17 2 丁2 11.2
18 3 丁3 2
19 D004 104 4 丁4 0.3
表2如下:
A B C D E
1 图号 名称 工序 工种 单价
2 1 丁1 6.6
3 2 丁2 11.2
4 3 丁3 2
5 D004 104 4 丁4 0.3
6 1 乙1 3
7 2 乙2 2
8 3 乙3 2
9 B002 102 4 乙4 2.3
10 1 甲1 5
11 2 甲2 8
12 A001 101 3 甲3 11
13 1 丙1 1.2
14 2 丙2 11
15 3 丙3 13
16 4 丙4 2
17 5 丙5 3
18 6 丙6 4.3
19 C003 103 7 丙7 5.3
表2已知A列图号和名称,顺序与表1不同,如何在表2生成C、D、E四列的结果,使之应表1的数据。
——————————————————————————————————————
〖函数解法〗
表2的C2输入数组公式:
=INDEX(表1!C:C,MATCH(INDEX($A:$A,MIN(IF($A2:$A$100<>"",ROW(2:$100)))),表1!$A:$A,)-MATCH("*",$A2:$A$100,)+1)&""
向下再向右复制
上面公式限于图号是文本格式,如果图号带有数字格式的,公式要变:
=INDEX(表1!C:C,MATCH(INDEX($A:$A,MIN(IF($A2:$A$100<>"",ROW(2:$100)))),表1!$A:$A,)-MATCH("*",IF($A2:$A$100<>"",""&$A2:$A$100,0),)+1)
或
=INDEX(表1!C:C,MATCH(INDEX($A:$A,MIN(IF($A2:$A$100<>"",ROW(2:$100)))),表1!$A:$A,)-MIN(IF($A2:$A$100<>"",ROW(2:$100)))+ROW(A2))
也是数组公式