永发信息网

一个表格A列3,3.5,4,4.5,5 怎么把小于等于3的数字放在B列,小于等于4的数字放在C列,以此类推

答案:1  悬赏:0  手机版
解决时间 2021-03-22 11:42
  • 提问者网友:無理詩人
  • 2021-03-21 20:26
一个表格A列3,3.5,4,4.5,5 怎么把小于等于3的数字放在B列,小于等于4的数字放在C列,以此类推
最佳答案
  • 五星知识达人网友:低血压的长颈鹿
  • 2021-03-21 21:47
在B1中输入公式:
  =IF(INDEX($A:$A,SMALL(IF(($A$1:$A$100<=COLUMN(C:C)*($A$1:$A$100>COLUMN(B:B))),ROW($A$1:$A$100),2^16),ROW(1:1)))=0,"",INDEX($A:$A,SMALL(IF(($A$1:$A$100<=COLUMN(C:C)*($A$1:$A$100>COLUMN(B:B))),ROW($A$1:$A$100),2^16),ROW(1:1))))
  按Ctrl+Shift+Enter三键输入数组公式,向右拖拉到出现空白单元格,再向下拖拉到所有列都出现空白单元格。自己根据A列数据范围修改中公式100的值到实际行号。追问有没有简单点的方法?我都看不懂追答其实公式的核心就是:
INDEX($A:$A,SMALL(IF(($A$1:$A$100<=COLUMN(C:C)*($A$1:$A$100>COLUMN(B:B))),ROW($A$1:$A$100),2^16),ROW(1:1)))
重复写了一次,就是为了避免在工作表中出现0的显示,用IF来判断,当上述公式取到内容为空(会显示为0)时,不显示内容。
公式中,第1部分$A:$A,就是指定从A列引用数据
第2部分稍复杂点,先看IF条件判断,COLUMN(C:C)——C列的序号——即3,同样COLUMN(B:B)——B列序号——2,所以IF就是要求同时满足A列数据>2,<=3。当公式向右拖时,COLUMN(C:C)变为COLUMN(D:D),COLUMN(B:B)变为COLUMN(C:C),使得下一列取得A列满足条件>3,<=4,依次类推。当满足条件时,就取得数据所有的行号——ROW($A$1:$A$100),不满足条件时,给定一个相当大的数字——2^16——即2的16次方。这样通过IF就把B列中要选择的A列中大于2,小于或等于的3数据的行号取出来了。再用SMALL函数从行号最小的到最大的依次取出——B1单元格中,ROW(1:1)——第1行的行号——1,即从取得的行号提取第1个最小的行号,作为INDEX的第2个参数,也就A列中取得该行号对应的数据。B2单元格中ROW(1:1)变成ROW(2:2)——2,取得第2个小的行号,同样来引用A列中对应的数据。依次类推,当满足小于或等于3的数据提取完后,下一个最小的数就是2^16=65536了,因为行数达到65536时,应该是没数据了,即A655536是一个空折单元格,引用后会显示0,总的公式中就用了最前面的IF来判断,将显示0人为强制显示为空白。C列、D列一样的道理,只是取得的A列的数据如前所说,是满足IF条件不同了——从而依次取得小于等于4、5、6、……的A列数据。
由上面的说明可知,A列的数据并不要求按升序排列。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯