当前位置: 代码迷 >> Office >> excel多条件淘选
  详细解决方案

excel多条件淘选

热度:7531   发布时间:2013-02-26 00:00:00.0
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算法,我正在编写,明天上传到网上。
------其他解决方案--------------------------------------------------------
对就是种形式的,高手您是专业的吧。太强了谢谢。
------其他解决方案--------------------------------------------------------
看样子是不太好弄啊
------其他解决方案--------------------------------------------------------
真是太神了,的确是高手,还麻烦您费了这那么长的时候研究,最主要还把思路和标注都写上了,真是太谢谢您了。
但还有问题希望您能帮助解决,我看最终排序是按数值排的,但不重复的也排在中间,能不能实现,排在后面或者不显示(删除)。
还有如果我想改变条件的列应该在哪里改啊?谢谢了。
------其他解决方案--------------------------------------------------------
在我眼里你就是神了,我只明白些简单的东西,我真的挺佩服你的。
------其他解决方案--------------------------------------------------------
  相关解决方案