Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4184|回复: 13

[已解决]Index及offset函数的运用

[复制链接]
发表于 2014-6-17 08:47 | 显示全部楼层 |阅读模式
求助哪位大虾帮下忙:表中有两个数列,分别为数列1、数列2,需要从数列1及数列2中提取一部份数据出来,组成数列3。
可以运用Index公式(数列1提取关键字为“乙”、数列2提取关键字为“丁”)提出所需的数据,然后运用Offset,把提取出的数据结合在一块,成为新数列3。两个公式怎么做到结合运用呢?谢谢
最佳答案
2014-6-17 09:45
本帖最后由 baksy 于 2014-6-17 09:47 编辑
goodlaugh 发表于 2014-6-17 09:40
截图如附件,谢谢你的帮忙!


E2=IFERROR(IFERROR(SMALL(IF((B$2:B$22="乙"),A$2:A$22),ROW(A1)),INDEX(C$1:C$22,SMALL(IF((D$2:D$22="丁"),ROW(C$2:C$22)),ROW(E1)-MAX(E$1:E1)))),"")
F2=IFERROR(IFERROR(INDEX(B$1:B$22,SMALL(IF((B$2:B$22="乙"),ROW(B$2:B$22)),ROW(A1))),INDEX(D$1:D$22,SMALL(IF((D$2:D$22="丁"),ROW(D$2:D$22)),ROW(E1)-MAX(E$1:E1)))),"").

以下是输入公式以后的效果
数列1
数列2
数列3
A
1
1
B
2
2
C
3
3
D
4
4
E
5
5
F
6
6
G
7
7
H
8
8
I
9
9
J
10
10
K
11
A
1
12
B
2
13
C
3
A
D
4
B
E
5
C
F
6
D
G
7
E
H
8
F
9
G
10
H


Book4.rar

6.6 KB, 下载次数: 11

发表于 2014-6-17 09:16 | 显示全部楼层
本帖最后由 baksy 于 2014-6-17 09:19 编辑

E2=IFERROR(IFERROR(SMALL(IF((B$2:B$22="乙"),A$2:A$22),ROW(A1)),INDEX(C$1:C$22,SMALL(IF((D$2:D$22="丁"),ROW(C$2:C$22)),ROW(H1)-MAX(H$1:H1)))),"")
F2=IFERROR(IFERROR(INDEX(B$1:B$22,SMALL(IF((B$2:B$22="乙"),ROW(B$2:B$22)),ROW(A1))),INDEX(D$1:D$22,SMALL(IF((D$2:D$22="丁"),ROW(D$2:D$22)),ROW(H1)-MAX(H$1:H1)))),"")
三键回车( 公式复制后,点一下公式编辑栏的任意位置,先按住 shift、ctrl 两个键,然后敲enter键。)
回复

使用道具 举报

 楼主| 发表于 2014-6-17 09:32 | 显示全部楼层
baksy 发表于 2014-6-17 09:16
E2=IFERROR(IFERROR(SMALL(IF((B$2:B$22="乙"),A$2:A$22),ROW(A1)),INDEX(C$1:C$22,SMALL(IF((D$2:D$22="丁 ...

好象不行呢.有位大虾用的是这个公式:=IFERROR(INDIRECT(TEXT(MOD(SMALL(IF(($B$2:$D$22="乙")+($B$2:$D$22="丁"),COLUMN(A1:C1)*100000+ROW($2:$22)*100+COLUMN(A1:C1)),ROW(A1)),100000),"R0C00"),),"")
回复

使用道具 举报

发表于 2014-6-17 09:35 | 显示全部楼层
goodlaugh 发表于 2014-6-17 09:32
好象不行呢.有位大虾用的是这个公式:=IFERROR(INDIRECT(TEXT(MOD(SMALL(IF(($B$2:$D$22="乙")+($B$2:$D$2 ...

是三键回车了吗?
请上传出错附件。
回复

使用道具 举报

 楼主| 发表于 2014-6-17 09:37 | 显示全部楼层
baksy 发表于 2014-6-17 09:35
是三键回车了吗?
请上传出错附件。

嗯,说公式出现错误.三个键按后就出现这样
回复

使用道具 举报

发表于 2014-6-17 09:38 | 显示全部楼层
goodlaugh 发表于 2014-6-17 09:37
嗯,说公式出现错误.三个键按后就出现这样

附件呢?
回复

使用道具 举报

 楼主| 发表于 2014-6-17 09:40 | 显示全部楼层
截图如附件,谢谢你的帮忙!
QQ图片20140617093925.jpg
回复

使用道具 举报

发表于 2014-6-17 09:45 | 显示全部楼层    本楼为最佳答案   
本帖最后由 baksy 于 2014-6-17 09:47 编辑
goodlaugh 发表于 2014-6-17 09:40
截图如附件,谢谢你的帮忙!


E2=IFERROR(IFERROR(SMALL(IF((B$2:B$22="乙"),A$2:A$22),ROW(A1)),INDEX(C$1:C$22,SMALL(IF((D$2:D$22="丁"),ROW(C$2:C$22)),ROW(E1)-MAX(E$1:E1)))),"")
F2=IFERROR(IFERROR(INDEX(B$1:B$22,SMALL(IF((B$2:B$22="乙"),ROW(B$2:B$22)),ROW(A1))),INDEX(D$1:D$22,SMALL(IF((D$2:D$22="丁"),ROW(D$2:D$22)),ROW(E1)-MAX(E$1:E1)))),"").

以下是输入公式以后的效果
数列1
数列2
数列3
A
1
1
B
2
2
C
3
3
D
4
4
E
5
5
F
6
6
G
7
7
H
8
8
I
9
9
J
10
10
K
11
A
1
12
B
2
13
C
3
A
D
4
B
E
5
C
F
6
D
G
7
E
H
8
F
9
G
10
H


回复

使用道具 举报

 楼主| 发表于 2014-6-17 09:53 | 显示全部楼层
baksy 发表于 2014-6-17 09:45
E2=IFERROR(IFERROR(SMALL(IF((B$2:B$22="乙"),A$2:A$22),ROW(A1)),INDEX(C$1:C$22,SMALL(IF((D$2:D$22 ...

真是太奇怪了,我这里还是不行.
回复

使用道具 举报

发表于 2014-6-17 09:58 | 显示全部楼层
goodlaugh 发表于 2014-6-17 09:53
真是太奇怪了,我这里还是不行.

把出错的excel附件上传吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 20:41 , Processed in 0.342422 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表