Excel中如何提取一定值域范围内与之相对于的数据列?

欲提取A列值域为[1,4]范围内所对应的B、C列数据,使其为两独立数据列。数据筛选的方法除外,希望是函数方法。
谢谢各位热心解答!

A B C
Time 位移 荷载

0 0 0

0.01 0.008047 13.1488

0.02 0.016094 26.2976

0.035 0.028165 46.0216

0.0575 0.046272 75.6079

0.09125 0.073431 119.99

0.14188 0.11417 186.566

0.21781 0.175278 286.44

0.31781 0.25575 417.98

0.41781 0.336222 549.542

0.51781 0.416695 681.123

0.61781 0.497167 812.722

0.71781 0.577639 944.34

0.81781 0.658111 1075.97

0.91781 0.738583 1207.63

1 0.804721 1315.84

1.01 0.796674 1302.64

1.02 0.788626 1289.47

1.035 0.776556 1269.72

1.0575 0.758449 1240.09

1.0912 0.73129 1195.65
…………
…………
…………

空列中输入数组公式:
=INDEX(B:B,SMALL(IF(($A$2:$A$100>=1)*($A$2:$A$100<=4),ROW($2:$100),4^8),ROW(A1)))&""
按CTRL+SHIFT+回车键结束公式,下拉。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-24
在D1中输入或复制粘贴下列公式之一
=IF(AND($A1>=1,$A1<=4),VLOOKUP($A1,$A:$C,COLUMN(B1),),"")
=IF(($A1>=1)*($A1<=4),VLOOKUP($A1,$A:$C,COLUMN(B1),),"")
下拉填充追问

您好,首先感谢您热心回答,您的两个公式都很好,可以得到我要的数据显示。但是,你的公式选出的数据只能放在他原有的对应的行,不能提取显示在前面行里面,如从D1开始显示提取的结果,请问还可以有更好的改进方法吗?谢谢您了!

追答

好的方法就是用INDEX+SMALL函数
=INDEX(B:B,SMALL(IF(($A$2:$A$100>=1)*($A$2:$A$100<=4),ROW($2:$100),4^8),ROW(A1)))&""
按CTRL+SHIFT+回车键结束公式,下拉。

相似回答