首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

excel多条件淘选

2012-12-20 
excel多条件筛选本帖最后由 aiuwl 于 2011-09-23 23:25:50 编辑筛选出第一个条件一列值不相同第二个条件另

excel多条件筛选
本帖最后由 aiuwl 于 2011-09-23 23:25:50 编辑 筛选出
第一个条件一列值不相同
第二个条件另一列值相同
第三个条件是另一列值重复值有一定的误差范围,例如全是123.123这种格式的数值,相差假如为0.050或是其他指定的范围值。

数据有很多,其实就是分组别的重复数据临筛选。

请高手给段代码或涵数或一个SQL 语句都可以。谢谢了。


2月5日故事 123.123  
2月6日故事 123.124

2月5日小说 199.923  
2月6日小说 199.936



日期也可以是文本或数值形势的。



[最优解释]
回复楼主:
  为了编写VBA代码,我花了近3个小时,我感觉手动排序、筛选比较容易,但要用VBA实现自动化,真不是件容易的事,累死我了!!!! 嘿嘿……
  在编写VBA过程中,为了实现排序的功能,我使用了Excel自带的sort对象,减小了排序的工作量。
  本次“容差排序”算法的步骤(请结合下面链接的附件):
  (1)清除空行
   判断数据表中是否有空行,若有,则删除。其作用:为再次“容差排序”作准备,即数据表中各行要连续,中间无空行。
  (2)整体排序
   对整个数据表排序,主关键字:B列,升序;  次关键字:A列,升序
  (3)局部排序
   B列中值相同的区域对C列排序
  (4)计算容差,分组,局部排序 (这一子过程最复杂,最耗时)
   B列中值相同的区域对C列计算容差值,并分组,然后再对所得到的分组再按A列排序。
  (5)测试,OK。

  最后,说明一下,我使用的Excel版本是Excel2007,请使用Excel2007或更高版本打开,否则,可能会提醒有些对象不支持。

  以上可能废话太多,嘿嘿……   楼主还是先把附件下载下来,试试能不能满足你的要求。

附件: http://dl.dbank.com/c08junx8q4
[其他解释]
用第二列排序、再用第一列排序(两个条件排序)
然后第三列进行条件筛选
[其他解释]
第三个怎么进行条件筛选啊,不能实现吧,我试过,判断的是几千条数据只要差不大于50就相同。
估计涵数都不行,肯定是得用VBA,  甚至EXCEL实现不了,得用数据库吧。
[其他解释]
excel的筛选,是可用自己写公式的

你的所谓电大误差范围,啥意思?不理解。
[其他解释]

引用:
筛选出
第一个条件一列值不相同
第二个条件另一列值相同
第三个条件是另一列值重复值有一定的误差范围,例如全是123.123这种格式的数值,相差假如为0.050或是其他指定的范围值。

数据有很多,其实就是分组别的重复数据临筛选。


  楼主能不能把第三个条件讲的更清楚点,“第三个条件是另一列值重复值有一定的误差范围,例如全是123.123这种格式的数值,相差假如为0.050或是其他指定的范围值。”  这句话中,“另一列值”指哪一列?“有一定的误差范围”指与哪数据相比较下的误差,是平均值,还是重复值????

[其他解释]
123.123
123.124
123.125
。。。。
999.999

全是精确到小数点后三位的数值
筛选出前两个值一个不相同,另一个相同,且第三个条件就是这些数之间的差小于0.050就被筛选出来。

[其他解释]
也就是说第三项也是筛选相同的,但有个条件就两个值相差0.050也算相同。
[其他解释]
明白楼主的意思了,这个问题具有挑战性,值得研究研究!
[其他解释]
希望您能帮我解决这个问题,
[其他解释]
楼主是不是想得到类似下图的效果?(误差:0.0-0.3)

[其他解释]
是啊,太好了。希望能得到您的帮助。
[其他解释]
真有高人啊!佩服佩服!我以为没解了那!太强了
[其他解释]
回复楼主:
  我出示的效果(见#9楼),是我手动排序、筛选出来的,具体VBA算法,我正在编写,明天上传到网上。
[其他解释]
对就是种形式的,高手您是专业的吧。太强了谢谢。
[其他解释]
看样子是不太好弄啊
[其他解释]
真是太神了,的确是高手,还麻烦您费了这那么长的时候研究,最主要还把思路和标注都写上了,真是太谢谢您了。
但还有问题希望您能帮助解决,我看最终排序是按数值排的,但不重复的也排在中间,能不能实现,排在后面或者不显示(删除)。
还有如果我想改变条件的列应该在哪里改啊?谢谢了。
[其他解释]
在我眼里你就是神了,我只明白些简单的东西,我真的挺佩服你的。
------其他解决方案--------------------


回复楼主:
  最近几天放假,可能没有时间研究你最后提出的问题(#16楼),我的QQ:1072975748,加入,共同交流。其实,我也不是什么高手,只是想:提高自己计算机水平的同时,也能帮助别人解决一下在生活中遇到的有关计算机问题!!!
[其他解释]
高手啊您有时间吗?帮我再改改代码吧
[其他解释]
假期结束了,希望您能有时间再帮我看看。

热点排行